Chatbot for Hairdresser Marketing: Offers, Win-Backs and Ad Replies

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Chatbot for Hairdresser Marketing: Offers, Win-Backs and Ad Replies.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Chatbot for Hairdresser Marketing: Offers, Win-Backs and Ad Replies.

A hairdresser can use a chatbot for three marketing jobs: answering people who tap a message ad within seconds, sending an offer to anyone who asks for it by comment or DM, and re-opening conversations with lapsed clients. Instagram only lets a bot reply after the person messages or comments first, so win-backs go by WhatsApp template, SMS or email.

That one rule shapes the whole plan. A bot answers quickly and cheaply, but on Instagram it cannot start conversations, so each job below sits on the channel that allows it. ManyChat's AI features begin on its Pro plan, and Meta's own agent is billed by usage, at roughly 4 to 5 cents a message. Booking flows are left out here and have a tutorial of their own.

Follow me on Instagram@sagnikteaches

Who your bot may message, and for how long

Meta's developer documentation sets the ground rules for Instagram messaging, and ManyChat's help pages turn them into flow settings. With one exception, covered below, an app may message an Instagram user only after that user has messaged the account, and for most actions the reply window lasts 24 hours. These are the situations a salon meets:

Connect on LinkedInSagnik Bhattacharya
What the person didWhat you may sendFor how long
Sent you a DMAutomated and manual replies24 hours from their last message
Commented on a post or ReelOne private reply to that commentWithin 7 days of the comment. A follow-up works only if they answer, within 24 hours of the answer. ManyChat notes that a comment trigger does not by itself open the 24-hour window
Tapped "Send message" on a click-to-Instagram adYour first message, then repliesMeta says the window may last up to 7 days from that first message; ManyChat tells you to send within 24 hours. Plan for 24
Went quiet for more than 24 hoursA person may reply by handUp to 7 days after their last message. ManyChat states that automated messages are not allowed in this period
Quiet for more than 7 daysNothing automated on InstagramManyChat's help page says message tags were a Messenger feature that Meta deprecated on 9 February 2026, and that Meta paused admission to the Instagram DM List beta in February 2024

This is why a lapsed client who last wrote to you in the spring cannot be nudged by an Instagram bot. Stage 3 below uses the channels that can reach her. The three stages are listed in the order I would build them, because the ad-reply flow teaches you the most for the least risk.

Subscribe on YouTube@sagnikteaches

Stage 1: an ad-reply flow for a click-to-message ad

A click-to-message ad opens a DM instead of a web page. The person who taps it is a warm lead, and the bot's job is to answer in seconds, at any hour, while a stylist is busy with a client. Allow about three hours for a first build: 30 minutes for the copy, 90 for the flow and 60 for testing.

  1. Fix one offer and one end date. For example, a gloss and trim at $75 (usually $85), Tuesday to Thursday, until 30 November. One offer keeps the flow short and the numbers readable.
  2. Set the ad up in Meta Ads Manager. ManyChat's page says the Instagram ads trigger works only with ads created in Ads Manager, not boosted posts, and only for Traffic, Engagement or Sales campaigns, with the conversion location set to message destinations or Instagram Direct.
  3. Build the flow in ManyChat. Start an automation with the "User clicks an Instagram Ad" trigger. The first message needs at least one button or quick reply, and it cannot use variables such as the first name. Link the ad to the automation through its message setup.
  4. Offer three buttons. "What's included", "Price for my hair length" and "Check availability". Each leads to a short answer taken from your fact sheet (the customer-service tutorial shows how to write it).
  5. End every branch the same way. A booking link that shows live availability, or a button that hands the chat to a stylist. Add a final fallback so a free-text question gets a human, or an AI reply on Pro, never silence.
  6. Test before spending. Ask two people to tap the ad from their own phones and play every branch. Then switch the ad on.

The first message might read: "Thanks for tapping the ad. Gloss and trim, $75 (usually $85), Tuesday to Thursday, until 30 November. What would help most?" followed by the three buttons. Keep it under 45 words.

A common mismatch wastes ad money: the ad promises something the first message does not repeat. If the ad says "$75 gloss and trim", the first DM must say "$75 gloss and trim", with the same end date and the same days, in the first two lines. A client who sees a different number in the chat assumes the ad was bait, and she leaves.

The numbers for one $120 ad, start to finish

Here is an illustrative ten-day run for a small salon. Every figure is assumed, so replace them with yours as soon as you have real data.

StepCount or amountHow it follows
Ad spend$120Ten days at $12 a day
People who tapped "Send message"41$120 divided by 41 is $2.93 per conversation
Answered the hair-length question2356% of conversations
Tapped the booking link1127% of conversations
Booked8Two later cancelled
Attended6Six clients at $75 is $450 takings
Contribution per client$38$75, less $30 stylist commission (40%), less $7 product
Marketing cost$149$120 ads plus $29 for one month of ManyChat Pro on annual billing
Cost per attended new client$24.83$149 divided by 6
Result on first visits$796 clients at $38 is $228, less $149

On the first visit alone, each client contributes $13.17 more than she cost to win ($38 less $24.83). The return that matters comes later. Suppose three of the six rebook at the full $85: at $34 commission and $7 product, each adds $44, which is another $132 with no ad cost. If none rebook, the run still clears $79 before overheads such as rent, which is useful to know before the second run.

Stage 2: offers by comment keyword

A keyword flow turns an ordinary Reel into a lead source. The caption says "Comment GLOSS for this month's offer", and ManyChat's comment trigger sends the commenter a private reply. Meta's rules for that reply are specific: it must go within 7 days of the comment, and only one message can be sent to each commenter. After that, the conversation continues only if the person answers, and your follow-up must go within 24 hours of the answer.

So design the private reply to earn a tap. An illustrative version:

Hi [first name], here is the offer you asked about: gloss and trim, $75 (usually $85), Tuesday to Thursday until 30 November. Would you like the details, or the booking link?

Two buttons, "Details" and "Booking link", give her something to press, and pressing opens the window in which the bot can talk freely. If she never taps, you have lost nothing, and Meta's one-message limit means there is no second attempt to worry about.

Three habits keep keyword flows honest. Put the end date in the message and switch the trigger off the day the offer ends, because a flow that still sells last month's price causes arguments at the till. Keep the booking price identical to the message, since a mismatch is the commonest complaint. And give people a way out, such as "reply STOP and I won't message again", which the bot should honour by tagging the contact and never sending them offers again. For the set-up screens, see the ManyChat Instagram keyword and opt-in tutorial.

Stage 3: win-backs you are allowed to send

A lapsed client has not messaged you recently, so the Instagram route is closed. Three routes remain, each with its own conditions:

  • Text message or email from your booking app. Most salon software has a campaign tool. Check what each text costs and whether the client opted in when she booked.
  • WhatsApp template message. Meta's pricing documentation says marketing messages are charged per message, at rates that vary by the message category and the recipient's country calling code, and that you can message only people who have opted in to hear from you. ManyChat lists WhatsApp broadcasts and automations as Pro features. The WhatsApp app versus API tutorial explains the set-up choice.
  • A manual reply inside 7 days. If a client wrote to you recently and went quiet, a stylist can answer by hand within the 7-day window. It is slow, but it is allowed.

Decide who counts as lapsed from each client's own rhythm, not a fixed 90 days. A six-weekly colour client is lapsed at about nine to twelve weeks; a quarterly trim client at about six months. The rebooking tutorial shows how to build that interval table from your diary. Then send at most three messages, spaced out:

Message 1 (about 1.5 times her usual gap): "Hi [first name], it's been a while since your last colour at [salon]. If you'd like to book with [stylist], this link shows what's free this month: [link]. No pressure, and reply STOP if you'd rather not hear from us."

Message 2 (about twice her gap): "Hi [first name], [stylist] has two Tuesday-morning slots next week and will add a gloss to any colour booked then, at no extra charge. Shall I send the link?"

Message 3 (about three times her gap): "Last note from us, [first name]. If you've found a new stylist, that's fine. If you'd like to come back, the link is here whenever you want it: [link]. We won't message again unless you do."

Message 2 must describe a real gap and a real extra, never invented scarcity. What matters most is what happens next. When she replies, a 24-hour window opens, and the bot can handle the common answers: "yes please" gets the link, "I've moved away" gets a thank-you and a tag so she is never messaged again, a question about price or timing is answered from the fact sheet, and "I wasn't happy last time" goes straight to the manager, as any complaint should.

Permission comes first, and the cheapest moment to get it is when the client books. A tick-box line on the booking form does the job: "Tick if you'd like occasional offers and reminders from [salon] by text, email or WhatsApp. You can opt out at any time by replying STOP." Rules on consent for texts and email differ between countries, so check yours, and record when and how each client agreed. Without that record, a win-back list is only a list of people you hope will not mind.

The sums for a win-back run are small and easy to check. Take an illustrative salon with 600 clients in its booking app, of whom 140 count as lapsed by the rule above. Only 85 of them ticked the opt-in box, so 85 receive message 1. Say 12 reply and 7 of those book a colour at an average of $95, with a contribution of about $50 after commission and product. That is $350. The message cost is the number of messages times your rate card's price, and even at a generous 10 cents each, 85 messages would cost $8.50. The 55 who never opted in stay out of the run, and the next job is to raise the opt-in rate at booking, not to message them anyway.

Writing the messages with AI, and what to fix

AI is useful here for variety, not for facts. Give it the offer details as the only permitted facts and tight rules:

You write short Instagram DMs for a hair salon.
Facts you may use, and nothing else: gloss and trim, $75 (usually $85), Tuesday to Thursday only, valid until 30 November, any stylist, cannot be combined with other offers.
Write five first messages for people who tap "Send message" on our ad.
Rules: under 45 words each; end with one question; mention the end date; no claims about repairing, healing or damage; no urgency that is not in the facts; British English; address the person as [first name].

A typical result is usable but needs editing. In an illustrative run, three of the five were fine. One said "only a few spots left", which is not in the facts, so it goes. One promised that the gloss "repairs damaged hair", a claim you cannot support and should not make. One left out the end date, which breaks the rule you set. The check before any message goes live takes two minutes: price and dates match the booking page, the stylists named are working those days, no health or damage claims, and no scarcity you cannot prove.

Meta's own agent for ad replies: cost and where it works

Meta's Business Agent answers customers' questions on its apps without a flow. Its WhatsApp product page says it is available to eligible businesses in select markets, with more markets launching soon, and names Messenger, WhatsApp and the ads you create as the places it can answer. Instagram is not on that list, although Meta's June 2026 announcement described a global roll-out in the WhatsApp Business app. Those statements do not line up neatly, so look for the setting in your own account before planning around it.

The cost is clearer. Meta's pricing documentation says it charges $2.00 per million tokens, which it puts at roughly 4 to 5 cents per message, with a simple four-message enquiry at about 16 to 20 cents, and a payment method must be on file. Messages from ads that click to WhatsApp sit inside a free entry-point window of up to 7 days, but the page says Meta still charges for Business Agent messages inside it. If the 41 conversations in the example had come through a click-to-WhatsApp ad instead, and the agent is available to your account, 41 times 16 to 20 cents is $6.56 to $8.20.

That looks cheaper than $29 for ManyChat Pro, and for plain question-answering it may be. Meta's pages describe answering questions about hours, prices, discounts and payment, then handing over to a person. They do not describe offer flows with end dates, keyword triggers or win-back sequences, so treat the agent as the answering layer and a flow builder as the campaign layer. If you only need the answering layer, the pay-as-you-go agent is worth a trial.

Five ways these flows break

  • A live ad locks its automation. ManyChat's page says you cannot edit an automation linked to an active ad: pause the ad, edit, then reactivate. Plan changes between ad runs, not during one.
  • The first message fails. It needs a button or quick reply and no first-name variable. If it never arrives in testing, check those two things first.
  • The contact count jumps. ManyChat counts anyone who interacts in the billing month as an Active Contact. Pro includes 2,500; beyond that, overage is $0.05 a contact on monthly billing or $0.038 on annual, so a viral Reel that brings 3,000 interactions adds 500 extra contacts, about $19 to $25. Automations keep running, ManyChat warns you at 70%, 90% and 100% of the limit, and you can cap overage in Settings, then Billing, then Subscription.
  • The offer outlives its date. The keyword still answers in December. Put the shut-off date in your diary when you launch.
  • The bot and a stylist both reply. The client receives two answers, often contradicting each other. Decide who owns a conversation once a person steps in, and check how your tool pauses the bot.

Reading the results after two weeks

Keep one small table per campaign and fill it from the booking app, not from memory. Ask every new client how she found you, or add a source tag to the booking, so attribution does not depend on guesswork.

NumberWhy it mattersWorry if
Conversations started and cost eachShows whether the ad earns attentionCost per conversation climbs while the offer stays the same
Share who answer the first questionShows whether the opening message worksFewer than half answer: shorten the message
Booking link taps against bookingsShows where the page loses peopleMany taps, few bookings: check the booking page on a phone
Attended against bookedShows no-show dragMore than one in four miss: add a deposit or reminder
Rebooked within eight weeksShows whether the offer brought regulars or bargain huntersNone rebook: the offer attracted discount seekers

If the first run roughly breaks even and some clients rebook, build the keyword flow next. If it loses money, change the offer or the audience before adding any more automation. A bot makes a weak offer cheaper to run; it does not make it better. When the basics work, the ManyChat pricing tiers tutorial shows what each step in contact numbers will cost.

Questions about salon marketing bots

Can I message all my Instagram followers about an offer?

Not with a bot. Meta's rules let an app message an Instagram user only after that person has messaged the account, plus one private reply to a comment. Reach followers who have not written to you through posts, Reels and Stories with a keyword prompt, and use email, SMS or an opted-in WhatsApp list for clients you already know.

Does ManyChat include AI on every plan?

No. ManyChat's help pages list AI-powered automation as a Pro feature, with higher tiers above it. Essential ($14 a month on annual billing, $17 monthly, up to 250 active contacts) covers unlimited automations, lead capture and tags. Pro is $29 annual or $39 monthly for up to 2,500 active contacts and adds WhatsApp broadcasts. Check the current pricing page before you subscribe.

Do the comment-keyword flows need an ad budget?

No. A keyword flow runs from an ordinary Reel, post or Story, so it costs only the tool subscription and your time. Paid ads add the click-to-message route, where Meta's documentation allows a longer reply window after the first message, though ManyChat advises sending within 24 hours.

Can I use WhatsApp to win clients back?

Yes, for people who opted in to hear from you on WhatsApp. Marketing messages sent outside the 24-hour window must use a template that Meta approves, and Meta charges per message at a rate that depends on the recipient's country calling code. When the client replies, a 24-hour window opens and the bot can answer normally.

Further reads

Sources: Meta developer documentation (Instagram messaging API, private replies, WhatsApp pricing); Meta Business Agent on WhatsApp product page; Manychat pricing page and help centre (Essential, Pro, Active Contacts, messaging windows, Instagram Ads trigger). Checked 28 October 2026.

Want your ad replies and win-backs set up properly?

On a 1:1 call we'll check which of your channels a bot may message, pick the one flow worth building first, and decide whether your booking app or a separate tool should run it.

Book a 1:1 call with me