UI designs with fun background
Swiggy Queue
skills
Information Architecture, Low-fidelity Prototyping
tools
Figma, Whimsical
team
Solo

As a screening test for their summer internship program, the team at Razorpay put forth a design challenge. Candidates had to design the UI for a scheduling and subscription feature for the Indian food delivery app Swiggy, to create weekly and monthly subscriptions. Created user persona and prototypes. I iterated on different UIs and customer user journeys to find a lean solution for better integration into the app's existing information architecture and design system.

My goals for the design:

- Ensure that the feature finds a logical place in the existing IA, while following Swiggy's design system
- Cover as many use cases as possible
- Cover whole journey from discovery to order delivery
- Pay attention to first time user experience for the feature

My personal goals:

- Being my first design casestudy, I focused on completing the project end-to-end while gaining as much knowledge as possible
- Learn Figma techniques and case study presentation
UI designs in a collage

Context

Swiggy is India's largest online food ordering and delivery platform. Apart from food delivery, Swiggy also provides on-demand grocery deliveries under the name Instamart and an instant package delivery service called Swiggy Genie.

Design thinking framework

I followed a five step framework that I thought best suited a beginner like me:

1. Empathize: Research and interviews
2. Define: User personas and stories
3. Ideate: Iterations of design solutions
4. Prototype : Creating a low-fi prototype
5. Test

Problem Statement

A lot of people depend on food delivery services for their meals. During an open ended research it was revealed that a lot of regular users feel that while there are a lot of options for them to order from there is a disconnect between when they have time on hand and when they actually want food. The product team wants to solve for this disconnect by building a feature to schedule orders and extend it to create weekly and monthly subscriptions.

Why this problem?

Food delivery usually takes 40-50 mins during peak hours when restaurants have the most orders. Not to mention the traffic that prevails in metropolitan cities. Assuming the average lunch break is an hour in most places, the user has to place the order such that it gets delivered at lunchtime (say placing the order 30 minutes before lunch). If the person is busy with some work and forgets to place the order, they have to wait during the lunch break which falls into the peak hours.

Giving people the privilege of scheduling the food when they have time on their hands will not only help them plan their day comfortably but also motivate exploring restaurants at one's leisure.

Swiggy previously tried tackling this problem using 'Swiggy Scheduled':

" With Swiggy Scheduled, users can now place their orders in slots of 30 minutes, a minimum of two hours and maximum of 48 hours in advance. The firm has not added any charges for this pre-ordering service. In case of cancellation, the users can do so on the app itself, any time before the order becomes live. "

Empathizing with the end-user

To find out how this problem actually impacts users, I interviewed a few people to gain more insight:

- Breakfast is the most skipped meal
- Lunch and dinner are the most ordered meals
- People usually skip meals because of time constraints
- Cost and delivery time are the main factors of consideration
- Delay of delivery and price hike during peak hours are issues
- People who eat-out regularly prefer lunchbox services or local messes, as food is consistently priced and timely
- But these people miss out on exploring other types of cuisines.

Defining the problem

I created a persona, whose shoes I can put myself in to better empathize. Here, Navya is a Software Engineer who works through the day and forgets to order food within her lunch break. This leads to her either skipping meals, or choosing dishes that have least delivery time that she wouldn't have chosen otherwise.

User persona
User story before scheduling

Ideating the solution

The current user flow of ordering in the Swiggy app is as follows:

Current ordering flow

When I started designing the solution, I had a very narrow vision. I only considered how the user would schedule the orders. My first iteration flow only added one extra step to the existing flow, that is to allow users to schedule their deliver in the Cart.

First iteration proposed flow

Iteration One

But I soon realized this posed a number of problems. Say, Navya wants to order her favorite dish, a Mexican shawarma from Zaitoon. As she's about to confirm her order in the cart page, she notices the scheduling option. She decides to give it a whirl, seeing as she orders the dish almost once every week. But as soon as she selects the date and time, the app lets her know that the dish is only available from 6pm everyday. She has no way of checking out dishes available at 6pm either.

Feature Discovery

Discovery of the scheduling feature was a major issue, as users would only find the feature when they reach the cart. This seems counterproductive as no one would decide to schedule food when they want to order food for now.

Updated Menu

The menu the user browses will only show items available at that point in time. There is no way for user to know which restaurants and dishes are available at the time the user schedules the food.

Unavailability Issues

Item and restaurant unavailability might occur when user selects date and time of delivery, at which point they might feel disappointed that an error has occurred. This might be worse if user decides to subscribe to a dish for multiple days.

So this warranted for one major change that affected the whole flow.

Getting the time and date of delivery upfront from the user.

After considering the edge cases, I came up with the following flow:

Final iteration flow

Prototyping the solution

1. Main Flow

I decided to provide the feature, which I named 'Swiggy Queue', a separate position on the existing Information Architecture to improve discoverability. It can be accessed through the main navbar. Modelling after Swiggy's package delivery feature Genie, I created the UI for Swiggy Queue.

🧠 To reduce the number of inputs the user has to give, the location is automatically filled in from when the user logs into the app.

I used a calendar icon for the navbar icon, and also used a clock and calendar illustration to convey the use of Swiggy Queue better.

Swiggy Queue Page

Selecting schedule period

Users can select a single or multiple days for delivery. I also added a constraint that users cannot schedule orders less than 2 hours from that point in time.

🧐 The UI indicates that there is 15 minute buffer period in the selected time of delivery, so as to give users a realistic timeframe

After user selects the location, date, and time, a few commonly applied filters show up for the user to access. Navya can now easily apply filters she needs.

Selecting location, date, and time on the Swiggy Queue page

Changing schedule when browsing

Navya can now browse through a selection of restaurants and dishes that are available at the chose date(s) and time. She can also easily choose to order normally by clicking 'Order Now'.

😊 Giving users the option to change their decision at any point in the flow increases flexibility
Changing the schedule when browsing

Billing

The cart section is by far the most detailed section of the design.

Firstly, users can review and edit their scheduling in the cart page. But, we let them know that doing so might result in some items being unavailable at the chosen time. ( Editing in the cart page will be discussed soon. )

Another angle I addressed this is through the coupons. I created a coupon called 'QUEUEIT', modelled after 'SWIGGYIT'. It is automatically applied on scheduled orders. Now Navya can save more on her regularly ordered dish by scheduling it!

💡 This  incentivizes users to schedule meals regularly and brings in regular orders for the restaurants also

Thirdly, the payment method can be chosen by the user. By choosing to pay upfront for all the orders, Navya can avoid paying by cash on every delivery.

Fourthly, users can choose what happens when some items are unavailable in their order at the time of preparation. By choosing 'Send priority notification', users can be informed on such a case where either the restaurant is closed for delivery or item is out-of-stock/removed from the menu. ( Notifications will be discussed soon. )

Finally, on confirmation of order users are notified that they can manage their orders in the Swiggy Queue section.

Billing page after scheduling

2. Editing and Cancelling Orders

After ordering, Navya can view and edit her orders easily. She can add those extra pickles for that day's order alone. The orders scheduled are indicated by a yellow clock icon.

Post Order Editing Flow

If the order has any issues, such as the item being unavailable or restaurant being closed due to unforseen circumstances, the order is marked with a red exclamation and is brought to the users attention.

Navya has already paid for her order though. In that case, she will be refunded for that order. She can also choose the cancel the subscription if she wishes.

Post Order Cancelling Flow

3. Changing preferences in Cart

As I said before, if users choose to change the location, date, and time of delivery of scheduled orders in the cart page, it might lead to some unavailability issues, either the dish not being available at the given time, and/or restaurant not delivering at the selected time or location.

If Navya does change the time of delivery of her shawarma, she can easily reset her changes to when it was available before.

🥰 By allowing users to undo their actions, we promote experimentation and engagement
Editing location, time, and date of delivery in the cart

4. Notifications

Users can choose priority notifications to be informed about their scheduled orders on the day of delivery, 30 minutes before confirmation. They will also be notified incase of item unavailability or any delays. A numbered bubble also appears on the Queue icon in the navbar.

Here, Navya can see a countdown timer on her notification screen for when the order will be confirmed. She can choose to edit the order before confirmation.

Order Notifications

5. Discovery

The main issue with my initial iteration was that the feature had very low discoverability. So for my third iteration, I prioritised it.

- After the update, Navya will be notified about Swiggy Queue with a dialog box and a 'NEW' bubble on the Queue icon in the navbar.
- A few cards will also be placed in the home page that emphasize the various benefits of scheduling orders.
- If Navya decides to browse Swiggy at midnight, she will be notifed that she can schedule food for later too!
- She can also find scheduling options while browsing restaurants, or browsing a menu in a restaurant.
Feature Discovery

What next?

User story after scheduling

Metrics to consider

1. Number of people using the feature
2. Hotspots to see where they discover and use the feature
3. Subscription frequency
4. Cancellation frequency
5. Number of people who make use of 30 minute confirmation warning

Business Opportunities

1. Restaurants can offer pre-designed meal plans for a discounted price
2. Can make use of ‘Health Hub’ to promote healthy meal packages
3. Attract users with ‘no delivery charge’ for scheduled orders
4. Get free meal packs with Premium every month

Learnings and Takeaways

I started my journey in UI/UX design in January of 2021. I decided to learn by doing and this was my first ever design project. Working within an existing design system took away lot of the complications and design decisions that would've otherwise presented. Working with a clearly defined problem statement also reduced the workload of research and pain point discovery.

The process seemed very straightforward and linear to me at first. But after my first iteration, I realized design is cyclical and iterative, no where near as linear as I thought. I constantly went back to previous phases of the process to question my designs and come up with better solutions.

adarshyahari@gmail.com