Booking got easier. Cost per
conversion fell by more than 60%

Company overview

Hair System Salons sells hair systems and related products online, with in-person services offered through its studios. After the first location proved the model, the company began expanding to five studios across the US.

My role

Senior AI Product Designer

Talk, talk & TALK to stake holders and users, Find problems, research, design and write production code, test & deploy solutions.

Tools

Cursor and Claude Code

Next.js, React, TypeScript, Supabase, Claude, Vercel, Klaviyo, Resend, GA4, Google Ads, Figma.

Duration

Apr – late Jun 2026, (11 weeks)

Team

Dinesh Reddy RevunuruClaude Code

Intro

Project overview

Most new customers discover the business through paid Google ads, usually while researching privately. The owners had already noticed a shift in user behavior: people were doing most of their research and learning everything they could before contacting the studio.

Once customers had made a decision, the website gave them three ways forward. They could call the studio, struggle with a third-party booking widget embedded in the website, or talk to a chatbot that appeared to take a booking but only emailed their details to the owner. The chatbot felt like the most comfortable option, but the experience quickly fell apart. Customers received no confirmation, while the owner still had to read their emails, call them back, and enter each appointment by hand. Google could not track which ads became bookings either. Together, these problems were dragging the business down.

Fixing the booking system was only the visible part. I needed to make the experience easier for customers, remove the manual work from the owner, and make every booking measurable for the business.

Business goals

  • Move the new-customer return rate from 40% toward the owners’ target of at least 80%.
  • Connect paid ads to confirmed appointments and lower the cost per new customer that's as good a best competitors.
  • Customers should get confirmation notifications and reminders about their appointments.
  • Support more bookings and scalable systems as the business grows.

The problem

First-time customers researching hair replacement needed a private way to understand their options and confirm an appointment. Every way in asked them to pick a service they could not name, sign into an account, or wait for a callback. Behind the same handoff, the business lost bookings, time, and the data to fix it.

The solution

I designed and built one connected path, from research to a confirmed appointment and the next visit. Conversational guidance helped customers understand their options. A predictable booking flow handled the commitment, so every booking recorded its conversion and triggered the follow-up.

  • The assistant. Answers in the brand’s voice, guides the service pick, and books before the visitor leaves the page.
  • The booking platform. Built underneath it, because the existing one could not take a booking from someone without an account.
  • The migration. 210 stylist notes and 483 photos that existed in no export, loaded behind a match ladder that flagged the ambiguous ones for a person.
  • The retention machine. Email and SMS, because a first visit only roughly breaks even.

The outcome

from $105

$40

cost per new customer

the number the owners had been asking for

from 40%

72%

new customers who came back

against a target of 80%

86

bookings through the assistant

in two months

Measured in Google Ads and the client’s own booking data, April to late June 2026, and reviewed with the owners rather than self-reported.

Helping customers choose without knowing the language

First-time customers knew they wanted help, but not which of the seven services to book. I added a “Help me choose” path that asks two simple questions and narrows the list to the options that fit. Customers who already know what they want can skip it entirely.

Making sure every booking ends with certainty

A booking is not complete until the customer knows it worked. The confirmation shows the service, date, time, and address, and only promises an email after one has actually been sent. Returning customers are recognized by email and can finish in four taps.

Answering the question without overstepping

The assistant can explain a service and help customers understand their options. It does not decide whether someone should get a hair system. That judgment stays with the stylist, so the assistant offers a free consultation instead.

Keeping sign-in out of the way until it is useful

The old system required an account before showing an available time. I moved sign-in until after booking, when customers have a reason to use it. The same six-digit email code opens their appointment history, with the service, date, stylist, and a number to call if something changes.

Making space for the questions people ask in private

Do I have to shave my head? What will it cost? Will it irritate my scalp? These are personal questions customers may feel more comfortable typing than asking aloud. The assistant answers clearly, without pushing for a sale, and opens the booking flow only when the customer is ready. The conversation below is real—and it ended in a booking

A real customer conversation in the admin transcript, marked Booked. The customer asks whether they have to shave their head, what it costs, and whether a system will irritate a scalp that sweats. Each answer ends by pointing at the free consultation, and the last message opens the booking form.

Demo mode: Your verification code appears on screen, and no appointment is created.

Try Tara for yourself

This demo runs the same code as the assistant on the client’s website. Ask a question, choose a service, and complete the booking flow using live availability.

The chatbot was only the beginning.

What looked like a chatbot problem turned out to include booking, measurement, and retention. Solving those pieces together taught me where I do my best work: finding the point where a better customer experience also creates a healthier business.