the work · the 2022 storefront

Built to stand out from the salon next door.

Showing the room

We studied how nearby salons built their sites, then went the other way.

We visited the space and shot the photography ourselves. We placed an interior shot on the landing page and a portrait of Jessica further down. A new client knows the room and the stylist before they walk in.

Writing for search

We built the page copy around local search keywords. About six months later, Google started sending organic traffic on its own.

The booking math

Clients book through Calendly. Between November 2022 and 15 October 2026, Calendly tracked 5,238 appointments, roughly $114,450 at menu prices. That is booked value, not collected revenue.

The 2026 tune-up

We rebuilt the menu in September 2026 so all 17 services state their price first. We set the footer phone number so it actually dials, and we pointed the social links at live profiles.

We can see the booking button click, but tracking stops at the Calendly window.

captured 2026-08-10 at 1512px, scaled to 900px. the pages as they lived that day, not as they may live now.

five pages · built from scratch · as they lived · captured 2026-08-10
home
services
artists
about
book
Five pages from scratch. As they lived 2026-08-10.

post-flight imagery · the system, close up

Typography specimen: one italic word per headline
One italic word per headline, across all five pages.
Promotional graphic produced from the Salon Interior Kit
The kit at work: one system across offers.
Service module with price table and booking link
Services Section: A list of the salon's services and prices
Salon Interior Kit style-guide sheet
Marketing kit, wine accent sampled from the salon wall.

Live booking with services broken down on the website

Booking menu now leads with the price on every service.
Every service card opens with its price.

She came back.

One stylist. When we built the site, the salon was one stylist. By 2026 she had a team of three.

The offer. A few years earlier we told her we could start email marketing and social media marketing when she wanted that.

The ask. She held the site for a few years. Then she came back and asked for review replies, then email, then social.

the work · review replies

Google Yelp Review Replies For Reputation Management

Live replies. We posted owner replies on Google and Yelp. More than 40 are live.

The edit. Below are two views of the same change. About two weeks after our reply, the reviewer moved this Google review from 2 stars to 4 stars. The complaint text is the same. One of 59 tracked ratings moved.

The same edit, shown two ways. 1 of 59 tracked ratings moved.

Before, 2 stars. After, 4 stars. Same review, same reply.
Before: 2 stars, at the time of our reply, 2026-08-25.
After: 4 stars, "Edited 2 weeks ago." Review text identical.

public record · verbatim, attributed

"The owner, Jessica, is a magician with scissors! She suggests things that work for your hair, facial structure, and lifestyle."

patricia l. · 5 stars · public yelp review · 5/17/2025

"Jessica always answers the phone (day or night) and somehow manages to fit me in every time. Highly recommend!"

alex s. · 5 stars · public yelp review · 8/19/2022

Public reviews. Google: 4.2 stars / 219. Yelp: 3.9 stars / 86. The quotes above are public Yelp reviews, not a quote from Jessica.

the work · people who already sat in the chair

Win Back Campaign For The 2/3 Customers That Never Returned

Calendly bookings. Clients booked through Calendly from November 2022 to July 2026. Those bookings filled the list.

Findability. Google Business Profile and Google Search helped people find the salon.

Who stayed away. Two of three clients never came back. 1,807 people stayed away six months or more, each with an email still on file.

Revenue. Online bookings hovered around $30K a year for the three years since we set up the site. That is what organic traffic brought in. The owner also takes walk-ins and phone appointments, so the salon's total revenue could not be measured.

The first wave. We split the list before a send. The first wave was 2,225 emails. That wave also wrote to people who were still coming in. 1,807 is people. 2,225 is emails.

the book we had built

2,235Unique clients · Calendly · Nov 2022 to Jul 2026
1,807Lapsed six+ months · Calendly bookings · email on file · Nov 2022 to Jul 2026
32%Ever returned · two of three never came back

Result. 29 appointments from 22 inboxes booked after an email reached them, through 15 October 2026. $874.75 at website prices.

Matched by email address. No control group. Not money collected.

Every sent campaign, with open and click rates. Captured 3 October 2026.

Appointments booked after an email reached the inbox

These 29 appointments were logged against the sends: when the email reached the inbox, how long they had been away, and when they booked.

ServiceAppointmentsWebsite price
Women's haircut8$199.92
Men's hair cut13$194.87
Balayage1$130.00
Color and highlight1$110.00
Up do2$90.00
Color highlight1$79.99
All-Over color1$39.99
Kids, boy2$29.98
All 29 appointments29$874.75
Names and emails blurred
NameEmailAwayCampaignReached themBookedAppointmentServiceWebsite price
Name hiddenEmail hidden1,123 daysWin-back, lost batch 59 Aug 2026, 10:20 pm22 Aug 2026, 3:56 pm23 Aug 2026, 10:00 amWomens Haircut$24.99
Name hiddenEmail hiddenlater visit, same personWin-back, lost batch 59 Aug 2026, 10:20 pm30 Aug 2026, 9:47 am31 Aug 2026, 12:30 pmColor Highlight Service$79.99
Name hiddenEmail hiddenlater visit, same personWin-back, lost batch 59 Aug 2026, 10:20 pm5 Sep 2026, 1:44 pm6 Sep 2026, 12:30 pmColor and Highlight Service$110.00
Name hiddenEmail hidden915 daysBack to routine, week 317 Sep 2026, 3:52 pm17 Sep 2026, 4:43 pm30 Sep 2026, 5:15 pmMen's Hair Cut$14.99
Name hiddenEmail hidden868 daysWin-back, lost batch 37 Aug 2026, 2:20 pm24 Aug 2026, 3:26 pm24 Aug 2026, 4:30 pmKids - Boy$14.99
Name hiddenEmail hidden575 daysFriday cuts, lost batch 12 Sep 2026, 1:07 am12 Sep 2026, 5:07 pm14 Sep 2026, 12:00 pmWomens Haircut$24.99
Name hiddenEmail hidden531 daysFriday cuts, lost batch 11 Sep 2026, 11:06 am17 Sep 2026, 11:27 am18 Sep 2026, 10:45 amWomens Haircut$24.99
Name hiddenEmail hiddensecond person on this emailFriday cuts, lost batch 11 Sep 2026, 11:06 am17 Sep 2026, 11:29 am18 Sep 2026, 12:00 pmWomens Haircut$24.99
Name hiddenEmail hidden496 daysWin-back, lost batch 37 Aug 2026, 2:20 pm16 Aug 2026, 9:11 am16 Aug 2026, 11:15 amKids - Boy$14.99
Name hiddenEmail hidden491 daysWin-back, lost batch 59 Aug 2026, 10:20 pm14 Sep 2026, 1:01 pm14 Sep 2026, 3:00 pmMen's Hair Cut$14.99
Name hiddenEmail hidden455 daysBack to routine, week 114 Sep 2026, 6:18 pm1 Oct 2026, 3:36 pm2 Oct 2026, 9:15 amMen's Hair Cut$14.99
Name hiddenEmail hidden398 daysFriday cuts, lapsed30 Aug 2026, 9:44 pm25 Sep 2026, 2:26 pm25 Sep 2026, 5:30 pmWomens Haircut$24.99
Name hiddenEmail hidden349 daysFriday cuts, lapsed30 Aug 2026, 9:44 pm30 Sep 2026, 10:48 am1 Oct 2026, 12:00 pmAll-Over Color$39.99
Name hiddenEmail hidden334 daysWin-back, lapsed4 Aug 2026, 12:20 pm3 Sep 2026, 1:21 pm19 Sep 2026, 4:00 pmUp Do$45.00
Name hiddenEmail hiddensecond person on this emailWin-back, lapsed4 Aug 2026, 12:20 pm3 Sep 2026, 1:24 pm19 Sep 2026, 3:00 pmUp Do$45.00
Name hiddenEmail hidden296 daysWin-back, lapsed4 Aug 2026, 12:20 pm12 Aug 2026, 6:43 pm14 Aug 2026, 1:30 pmWomens Haircut$24.99
Name hiddenEmail hidden296 daysBack to routine, week 114 Sep 2026, 6:18 pm11 Oct 2026, 11:48 am11 Oct 2026, 1:00 pmMen's Haircut$14.99
Name hiddenEmail hidden278 daysBack to routine, week 114 Sep 2026, 6:18 pm30 Sep 2026, 9:34 am30 Sep 2026, 12:15 pmMen's Hair Cut$14.99
Name hiddenEmail hidden273 daysWin-back, lapsed4 Aug 2026, 12:20 pm15 Aug 2026, 6:58 am15 Aug 2026, 9:00 amMen's Hair Cut$14.99
Name hiddenEmail hiddenlater visit, same personWin-back, lapsed4 Aug 2026, 12:20 pm19 Sep 2026, 4:27 pm19 Sep 2026, 5:45 pmMen's Hair Cut$14.99
Name hiddenEmail hidden249 daysWin-back, lapsed4 Aug 2026, 12:20 pm4 Aug 2026, 1:10 pm5 Aug 2026, 4:15 pmMen's Hair Cut$14.99
Name hiddenEmail hidden212 daysPromo launch3 Aug 2026, 1:10 pm13 Aug 2026, 8:47 am14 Aug 2026, 2:45 pmWomens Haircut$24.99
Name hiddenEmail hiddensecond person on this emailPromo launch3 Aug 2026, 1:10 pm13 Aug 2026, 8:49 am14 Aug 2026, 4:00 pmMen's Hair Cut$14.99
Name hiddenEmail hidden210 daysPromo launch3 Aug 2026, 1:10 pm6 Aug 2026, 11:45 am6 Aug 2026, 5:15 pmMen's Hair Cut$14.99
Name hiddenEmail hidden190 daysPromo launch3 Aug 2026, 1:10 pm5 Aug 2026, 9:47 am6 Aug 2026, 1:00 pmBalayage$130.00
Name hiddenEmail hidden178 daysPromo launch3 Aug 2026, 1:10 pm20 Aug 2026, 6:52 am20 Aug 2026, 9:00 amMen's Hair Cut$14.99
Name hiddenEmail hidden170 daysPromo launch3 Aug 2026, 1:10 pm14 Aug 2026, 9:32 am14 Aug 2026, 12:30 pmMen's Hair Cut$14.99
Name hiddenEmail hiddenlater visit, same personPromo launch3 Aug 2026, 1:10 pm10 Sep 2026, 8:30 am10 Sep 2026, 9:45 amMen's Hair Cut$14.99
Name hiddenEmail hidden100 daysFriday cuts, lapsed30 Aug 2026, 9:44 pm11 Oct 2026, 8:53 pm16 Oct 2026, 3:30 pmWomen's Haircut$24.99
22 emails, 29 appointments$874.75

All 29 appointments. Name and email columns blurred.

Placeholder text shown blurred. No client data is on this page.

An email click became a booking, tracked to the campaign.

the work · a paid test, then the organic grid

A measured test, then the shop window.

The test. One campaign, one ad set, four ads, from 3 to 30 September 2026. 18,746 impressions, 1,058 link clicks, $159.15 spent (final figures, read 6 October 2026). Two bookings carry the ad's tracking tags: a balayage booked 30 September and a men's haircut booked 1 October. At menu prices that is at least $104.99 in services. The balayage is listed "$90+", so the true figure is higher. We do not know what either client paid, and menu prices are not money collected. No tagged booking has come in since 1 October. We count only bookings that carried the ad's tracking, so two is a floor. The campaign ended on its scheduled date.

Two bookings made through the Facebook ad, with the ad's tracking tags: a Full Foil Balayage booked 30 September 2026 and a Men's Haircut booked 1 October 2026. Each card shows the public menu price. The balayage is listed from $90. Client details are redacted. Menu prices, not money collected.

The shop window. We run Instagram and Facebook on a planned cadence. Every Instagram post has alt text. We review each draft before it goes out. Social is the shop window.

Paid

Four ads in one ad set: clicks and spend per ad, 3 September to 2 October 2026.
Reach and impressions per ad, 3 September to 2 October 2026.
The ad set in total: 18,746 impressions, $8.49 per thousand, 3 September to 2 October 2026.
Mid-run reporting, 1 to 22 September 2026: 13,112 impressions, 726 clicks, $107.78. Final totals are above.
Mid-run delivery by platform, 1 to 22 September 2026: Facebook took most, Instagram the rest. Booking results are in the text above.
Traffic sources for September 2026, human sessions. The paid test is the largest source, Google search the next. Totals are in the tiles under Impact at a glance.

Organic

Instagram as a visitor sees it: real work, one tap to book.

the outcome · no revenue claim

We counted what we could. Here is what we cannot prove.

Public traffic. We took a crawler out of the public traffic numbers. Engagement went down when the crawler left. That is the figure we will defend.

Analytics overview, September 2025 to 5 October 2026, human traffic only, with one crawler removed. Totals are in the tiles under Impact at a glance.
transmission · report the number you can defend
Report the number you can defend. Retire the one the crawler invented.

impact at a glance · dated and sourced

Impact at a glance.

1,807Lapsed win-back pool · Calendly export Nov 2022 to Jul 2026
321Online bookings since 22 July 2026 · $7,242 of bookings at menu prices · as of 15 October 2026 · Calendly
5,238Lifetime online bookings since November 2022 · $114,450 of bookings at menu prices · as of 15 October 2026 · Calendly
2★ → 4★One Google review, raised about two weeks after our reply · complaint text unchanged · 2026-09-09
43.31%Active launch open (110/254) · sent 29 July 2026 · read 6 October 2026 · Brevo counts automated opens, so this is an upper bound
5,066Emails sent / 22 campaigns · 29 July to 29 September 2026 · as of 15 October 2026, no sends since 29 September
8,786Human sessions · September 2025 to 5 October 2026 · includes September 2026 sessions from the paid test
1,724Human sessions in September 2026. More than half came from the paid test. Without paid social: 736 sessions, 69.6% engaged. All September sessions: 86.5% engaged. GA4 can count one session under more than one value, so the with-paid and without-paid figures are computed separately.
63.6%mobile (468 of 736) · September 2026 human sessions, paid social excluded
24Pages discovered · Search Console verified 2026-09-01

Every figure dated and sourced. Booking values are menu prices, not money collected, because the booking tool takes no payment. Values use the current website menu, with Up Do at its $45 floor. Older bookings are priced at today's menu. Bookings are not attributed to our work. Crawler-corrected web numbers supersede the 2026-07-31 contaminated baseline. Email open rates include automated opens (Apple Mail privacy, bots) and are upper bounds. The September session figure includes a paid test and is shown both ways.

Jessica · owner · Hair Studio G10

In the client’s own words.

Jessica · owner · Issaquah, WA
Studio Lucky Bamboo has done so much for our salon. They built our website in 2022 with online booking, and since then more than 5,000 appointments, over $100,000 at our menu prices, have been booked through it. They answer our reviews on Google and Yelp, including the hard ones, and they emailed our past customers, and some who had not been in for a long time came back. Recently they also ran our Facebook and Instagram ads, and they keep working so people searching for us on Google can find us. They are easy to work with, and they explain everything so I understand.

Jessica, owner, Hair Studio G10, Issaquah WA

The next chapter is being measured.

If your own client list is sitting on file with nothing to say to it, we can look at it together. A conversation about the list, not a contract.

full page