
Yelp Reservations & Waitlist
In the US, Yelp has been one of the best ways to find great restaurants for a long time. Imagine you’ve done your research and found two potentially perfect restaurants with 4.5 stars in San Francisco’s Mission district and all the reviews recommend getting a reservation ahead of time. How do you do that? On one page: you have to call and talk to someone. On the other: you can easily book an online reservation right from their Yelp page. For me, online reservations are always the best booking experience, and for my first two years at Yelp I was one of the designers responsible for making Yelp’s reservation experience as slick as possible.
company
Yelp
location
San Francisco, CA
role
Product Designer
Responsibilities
UX & UI
Prototyping
User Research
tools used
Sketch
InVision
Principle
Getting more butts in seats
Yelp’s foray into the reservations market was a shrewd choice. In the mid-2010s, Yelp’s leadership saw a surge in popularity for online reservations platforms like OpenTable and Resy and thought that it would be perfect for Yelp users to be able to book reservations in the same place they look for restaurants. Yelp initially partnered with OpenTable for a time, but eventually that business relationship soured, so instead Yelp acquired a San Francisco-based startup called SeatMe for $12.7M. For such a young company, SeatMe had a stellar front-of-house table management app, but they weren’t able to drive much traffic to their restaurants.

The Yelp Reservations table management system circa 2016
In the summers of 2014 and 2015, I was working as a Yelp intern on the SeatMe team right as they were integrating their platform into Yelp and eventually rebranding into Yelp Reservations. I worked on creating some simple but important parts of the experience, like a printable ‘cover report’ that summarizes all of the guests that a restaurant can expect in day and a configurable widget that restaurants can put on their website to drive additional traffic. Both of these features are still in use today, with only a few changes introduced along the way.
When I started full-time at Yelp in 2016, I was tasked with focusing on the diner experience for making reservations. There had been a lot of focus on making the front-of-house app a stellar experience so that it was easy to pitch it to restaurants, but beyond a simple module on a restaurant’s Yelp page, there wasn’t much happening to nudge our users towards making a reservation.
The first few projects I worked on were quick wins meant to improve conversion and do what restaurants need most: get butts in seats. One was a no-brainer: add a search filter allowing users to look for reservations at a specific time across all restaurants in an area. This puts users into a high-intent reservation search flow, where the specific restaurant is less important than finding a slot for a certain party size at a certain time. We made the choice to call out which reservations are available around the specified time directly from the search results screen, so it’s easy for users to scan all the listings and make an informed choice with minimal back-and-forth. We needed this high intent search to work seamlessly on both desktop web and mobile, since plenty of people use their computers when trying to make reservations, so we maintained the same approach with some visual differences on each platform.

We also learned from restaurant feedback that the widget experience was falling short of expectations because of some technical issues. Many users were complaining that the widget was broken and not completing the reservations they were trying to make, so we needed to rebuild the widget on new architecture and make a more reliable solution. We also decided that instead of handling all of the booking interaction and edge cases inside of the widget, we would redirect users into a very speedy (and responsive) microsite where users could complete their reservation and see even more available times.

The Yelp Reservations widget for restaurant websites
While opening a microsite does lead to a context shift from one site to another, we saw from our A/B testing data that booking conversion from the microsite experience was far higher than from the widget alone. It was also good from a development point of view, since it was easier for us to maintain the microsite instead of building many complex interactions into an iframe widget (which is essentially a website in a small frame on another website). Since we were already rebuilding it, we took this opportunity to make our widget more refined and include a dark mode variant, which was great for restaurants using a darker color palette on their websites.

Our responsive microsite for reservations. Super fast and consistent across device types.
The last significant improvement I tackled was the reservations module on a business details page, which is basically a business’s main presence on Yelp. Reservations are important to many restaurants and bars since they drive paying customers into the location, but they aren’t the only way Yelp can help businesses. A large percentage of Yelp listings also feature food delivery options, and users might also want to write a review, look at a menu, look up directions, go to the website, call the business, etc. While reservations are undoubtedly important, they’re just one piece of a bigger pie, and we needed to find a way to feature reservations prominently without undercutting our other business verticals.
We experimented with a few different variations of the reservations module, but many of them ended up being too prominent and took up a big chunk of space on the page, pushing other important actions and info down further. In the end, we opted for a simple module that links to the same microsite the widget uses, but with one key difference: logged in Yelp users would have all of their information prefilled and would be able to complete their reservation in a single click.
We collaborated with the delivery teams and our VP of Product to establish a stack ranking system to prioritize how we display Yelp features, including reservations and delivery. Since reservations drive pure profit for restaurants, we stacked that first, with delivery below, and all other actions further below that. This also carried over to search results, where we focused on one primary action (i.e. ‘Book a table’ or ‘Order delivery') for each listing and gave other possible actions a minimal visual treatment.

A waitlist with less waiting
Keeping up the theme of shrewd acquisitions, Yelp acquired a company called NoWait in 2017. NoWait’s product was simple: an online waitlist for restaurants that users could join from afar. Imagine planning a brunch at a local spot that doesn't take reservations, but you can see that they have an expected wait of ~30 minutes and join the waitlist while you take the bus over. NoWait was surging in popularity in San Francisco and a few other urban hubs, so it looked like a perfect complement to reservations and food delivery as a way to get more people using Yelp to get food.
NoWait’s product was simple: an online waitlist for restaurants that users could join from afar.
As with all acquisitions, it takes time for the products to become truly integrated, but I found the process of integrating NoWait into the Yelp consumer experience to be very smooth and very fun. We changed the name to Yelp Waitlist for the sake of simplicity, and integrated modules for waitlist customers into business pages showing live wait times and a button to join the waitlist. We also looked at combining the waitlist and reservations modules into one dynamic block, but some quick user testing showed that it this was just overcomplicating something that should be simple.

Yelp Waitlist kiosk. Diners can join the waitlist either from their phone or at the kiosk.
You might have already sensed a potential issue with an online waitlist: how do you know if someone is really going to show up? This was an issue that NoWait was dealing with frequently, since people would ‘double dip’ into multiple waitlists on a busy night and just go wherever they got a spot first, artificially inflating the wait times and frustrating front of house staff elsewhere. We made efforts to combat this issue in a couple of key ways: enforcing geographic proximity to the restaurant location, and restricting users to only entering one waitlist at a time.
In 2018 I moved to Yelp’s Hamburg office and shifted my focus to Yelp for Business Owners, but I’ve been keeping tabs on what the Reservations and Waitlist teams have been working on since then. The core consumer-facing experiences for both products are very similar to what they were like when I was working on them, but I know that under the hood the team combined both the reservations and waitlist restaurant apps into one slick iPad app called Guest Manager. Knowing the complexity of the former SeatMe and NoWait restaurant apps, I can tell you that this was a Herculean effort that took a ton of design, engineering, and customer support work. Big congratulations to everyone who made this happen!
Yelp has also invested a lot of time and resources into expanding into other verticals. Restaurant reviews are definitely where Yelp started and how it became popular in the US, but Yelp has now established itself as a reliable way to find service professionals like plumbers, painters, notaries, etc. While I’m not able to use Yelp much here in Europe because not enough businesses use it, I’m always excited to check it out and see what they’ve added every time I’m back in the US.
other contributions
Led design learning lunches for the Yelp Reservations team
Conducted rapid-iteration user research to understand diner preferences and behavior for both reservations and waitlist
Co-edited and wrote for the Yelp Design Blog
Credits
Design managers
Yoni De Beule
Taron Ghazaryan
Josh Mahoney
Product Designers
Tim Plummer
Silas Godfrey
Amy Ton
Matt Baird
Andrew Yee
Justin Salsburey
Product Managers
Stephanie Teng
Rachael Schachtler
Craig Moxley
Aditi Ganpule
Soundarya Chandar
Jasper Sone
leadership team
Brian Phillips
Guang Yang
Vishwas Prabhakar