35%
review response rate at restaurants using the feature, up from 13%
I led design for OpenTable’s first generative AI product, bringing AI-powered review responses to 53K restaurants receiving diner reviews each month. I shaped the product strategy with my PM and partnered with data science to define how the model should respond in a restaurant’s voice, translating model capabilities into an experience restaurants could trust and use.
I drove research and design from kickoff to launch in just 3 months, establishing the product direction and validating the experience with restaurants. OpenTable became the first among its direct competitors to bring generative AI to market.
35%
review response rate at restaurants using the feature, up from 13%
54%
of replies used genAI, 24% above goal
45%
of adopting restaurants generated a response 4 or more times
1st
among OpenTable’s direct competitors to launch a genAI feature
The goal was to help restaurants save time and to strengthen OpenTable’s position as a trusted technology partner. Reviews was a good first use case for a few reasons.
It was a contained area we could ship quickly without rethinking the whole Reviews experience. It had plenty of data to train the model on. And replying to reviews was repetitive work that restaurants struggled to keep up with, but each reply still needed to feel personal and right for the guest.
~115K
reviews with comments each week
~53K
restaurants with reviews each month
~28K
review responses written each week
13%
of reviews received a restaurant response
This is the reply experience restaurants used at the time. It was part of a larger Reviews overhaul I led earlier that year.
I started by studying how Grammarly, Google, and Birdeye handle generated replies.

Swipe to see the full image →
From there, I explored four directions: auto-populating a draft, showing it in a modal, placing a Generate button on the review, and placing it inside the reply box.

Swipe to see the full image →
Then engineering and data science raised a constraint. The Reviews dashboard already had performance issues, with load times over 60 seconds for large restaurant groups, so responses couldn’t be generated in real time. My research showed managers check reviews about once a day, so I proposed generating drafts in a daily batch as the minimum. Engineering confirmed it fit our timeline.
Batching meant some reviews wouldn’t have a draft yet. With auto-populate, a manager could open one of those reviews, see an empty box, and think the feature was broken. So I made Generate an action that only appears when a draft is ready.
This also gave restaurants control while AI was still new to them. They choose when to generate, review the draft, and edit it before sending. I built it on an existing input from our component library, which saved engineering time so we could launch sooner and start learning from real data.
The final design
With my PM, I defined five guiding principles: responses should be authentic, appropriate, relevant, inclusive, and helpful. We added requirements and a list of things to avoid, and data science used them to prompt the model.
We refined them through testing. When early drafts started offering diners free appetizers, we added a rule against offering anything with monetary value.

Swipe to see the full image →
To validate that the AI’s outputs sounded like real restaurants, I surveyed 368 diners, asking them whether 9 review responses were written by a human or AI. For 8 of 9 replies, most participants guessed wrong or were split on whether a person or AI wrote it.

The survey results gave us confidence to release to an initial beta of 10 restaurants. I interviewed managers at those 10 restaurants to learn how they perceived the new feature. Overall, they rated quality 4.5 out of 5, which met our exit criteria. They also felt the feature sped up their process, but many outputs were too formal, so we retrained the model to open with “Hi” or “Thanks” in place of “Dear.”
The AI can catch things that I might have missed.
From there, we launched to a second beta with 2,000 restaurants where we successfully met our 3 exit criteria.
44%
of active restaurants generated more than 10 responses
Goal: 30%
22%
average edit distance
Goal: under 60%
66%
of in-product feedback was a thumbs up
Goal: under 60% thumbs down
35%
review response rate at restaurants using the feature, up from 13%
54%
of replies used genAI, 24% above our goal
30%
of active restaurants generated a response
45%
of those restaurants generated a response 4 or more times
Brand voice. Beta restaurants kept editing drafts to sound more casual, and at the time we retrained the model toward a warmer default. Today I’d let each restaurant set its own voice, and have the model learn it over time.

Swipe to see the full image →
Quick edits. After a draft generates, restaurants could make it more formal, more casual, warmer, or more detailed, or type their own instruction.

Swipe to see the full image →
More proactive AI. Models can now generate in real time and make fewer errors. The AI could find opportunities, like 12 reviews praising the steak, and draft a reply for each. Restaurants would still see every draft and could ask for changes before anything goes out.

Swipe to see the full image →