How to turn an Instagram DM into a booked appointment

Turning an Instagram DM into a booked appointment takes four moves: answer the question, offer two specific times, confirm the chosen slot in writing, and follow up once if the customer goes quiet. Most teams do the first well and stop there. Sales QA, the practice of reviewing Instagram, Facebook, and WhatsApp conversations after they happen, has a name for that stop: answered, but no next step.
Why does a correctly answered DM never turn into a booking?
Because an answer closes a question and a booking has to open one. Once the customer holds the fact they asked for, the thread stops unless you hand them something to accept or decline.
That failure is a named lost-lead pattern: a correct reply with no booking question, slot, offer, or call behind it. In the example Sales QA report on the Reploom homepage, 9 customers got an answer with nothing attached, in a week of 420 conversations checked and 96 potential buyers. Sample data from one example account, not research and not a benchmark.
A composed illustration: Emma Caldwell asks a studio on Instagram about availability.
Customer: Do you have any openings for a first session this week?
Studio: Yes, we still have availability this week.
Customer: Great, I would like to come in.
Studio: Wonderful. Just let us know what works for you.
Nothing there is wrong. It answered a question about availability with a fact about availability, then handed a stranger the job of proposing a time to a business whose hours she does not know. One sentence closes it: "Yes. Wednesday at 6:30 PM and Saturday at 9 AM are both open for a first session, and I can hold either. Which should I put down?"
Run the test on your sent messages today. Read your last reply in each open thread and ask what a motivated buyer would type back. If the only natural response is "ok, thanks", you sent a fact instead of an invitation.
Reply rate and reply speed cannot see a lead that was answered and never booked
Both score an abandoned thread as a win. Reply rate counts whether a human wrote back, reply speed how long that took. A salon that answers inside its target and never proposes a time scores perfectly on both.
In Emplifi's The Social Pulse, 2025, a survey of 965 US consumers, one in three said they expect a reply to a DM or tag within one hour. In the Sprout Social Index, 2025, 73% of social users said they will buy from a competitor when a brand does not respond to them on social. Both findings describe the reply. Neither describes the buyer who got a fast, correct answer and was never asked to book.
So an evening shift can raise reply rate, cut average reply time, and move bookings by nothing: you improved the input and left the conversion event untouched. Speed is still worth fixing, and the target is the subject of reply speed as a growth lever. It only buys the right to make an offer: the booked slot is the moment the customer spends something of their own.
What should you write instead of "let me know what works for you"?
Write two specific times, offer to hold one, and ask a question the customer can answer in a word. "Let me know" is not a next step: it asks a stranger to do your scheduling and risk being told no.
Two is the number, and the spread matters more than the count. One option reads like a test of commitment, five read like homework. And two Tuesday morning options are effectively one option for anybody who works Tuesday mornings, which is most of the people messaging a studio, clinic, or salon.
| The line you wrote | What it quietly asks of the customer | The line that books |
|---|---|---|
| "We are pretty flexible this week." | Guess your hours and propose a time | "Monday at 11 AM or Friday at 5 PM are open, I can hold either." |
| "Let me know if you want to go ahead." | Decide alone, then reopen it | "Shall I put you down for Tuesday at 7 PM?" |
| "Just message us when you are ready." | Restart the sale themselves, later | "Thursday at 1 PM is held under your name until tomorrow morning." |
A slot is not booked until it exists on your calendar
An appointment is real when three things are true at once: the customer agreed to a specific time, that time is blocked in your calendar, and a confirmation states it back in writing. Two out of three is a slot you will argue about later.
The confirmation is one message carrying five facts: the weekday and date, the start time, the duration, the place or link, and the person they will see. Add a line on how to change it: the alternative to an easy reschedule is a no-show. "See you Thursday" carries none of the five, and both sides remember it differently.
Customer: Thursday at 6 works better for me.
Studio: Booked. Thursday, August 27, 6:00 PM, 45 minutes with Dana at the Elm Street studio. It is in the calendar and the room is held. If something comes up, message me here and I will move it.
The example report shows how close a thread gets to that line. Zoe Harris, an Instagram lead scored 93 with booking intent, waited 4 hours 45 minutes, then was told Wednesday at 4 PM was open and could be held. Good offer, and in that sample thread it is the last message: nothing agreed, nothing confirmed. In an inbox that looks like a win, so nobody reopens it.
What do you do when the customer never answers the offer?
Send one follow-up 24 to 48 hours later, from the person who made the offer, carrying new times rather than a question about interest. A declined slot is a scheduling problem, an ignored slot is usually a timing problem, and neither is a no to the service.
That window is your policy: write it down and apply it to every quiet booking thread, not the ones somebody remembers. Stopping early is the norm: the Conversica Sales Effectiveness Report, 2023, a secret-shopper audit of 100 mid-market and enterprise companies, found roughly 35% followed up on their inbound leads with only one or two contact attempts. In a DM, a message is read and forgotten in the same second, so one unanswered offer proves nothing.
Two rules keep that message from reading as a nudge: say what changed, and re-offer, always. "Hi Ethan, the Tuesday 8 AM slot has gone. Thursday at 7 PM is still yours, and I can add Saturday at noon. Should I hold one?"
Whoever offers a slot holds the thread until the customer books or says no, the last mile of the social lead handoff workflow. A thread with an open offer is never done, however finished it looks.
What should you count every week so an unbooked lead cannot hide?
Count four numbers, read off the last message in each thread rather than anyone's memory. Each maps to one broken step.
| Weekly count | How to find it | What it tells you |
|---|---|---|
| Buyers answered | Prospects who got a human reply | The baseline for the next row |
| Buyers offered a named time | Threads whose last message holds an actual slot | Low: the answer template is missing its ending |
| Offers with no reply after 48 hours | Threads quiet since a slot was proposed | High: the follow-up rule has no owner |
| Yes with no confirmation | A time was accepted, nothing was written back | High: the booking is informal, the no-show risk yours |
The distance between the first two rows is your leak, in leads, this week. Counting bookings alone tells a manager nothing: that number moves with demand, not with the step people skipped.
How a weekly Sales QA review finds the bookings your team thinks went fine
By counting the threads nobody reports: conversations answered on time, answered correctly, and never turned into a calendar entry. From the inside they feel like good work, so nobody escalates them.
Reploom is AI Sales QA for social conversations. It reviews Instagram, Facebook, and WhatsApp messages, comments, and mentions after they happen, scores each conversation with a lead score and a buying-intent type, and groups repeated leaks into named patterns in a weekly report, with the source conversations as evidence. It does not write, send, or approve replies, it is not an inbox and not a chatbot, and it does not book appointments or manage a calendar. It names the answered conversations that ended without a time, so a person decides what changes.
Run a rough version on Monday: pull every booking and availability thread from the last week and count the ones whose last message holds no time. That count is your booking gap. To see it measured across every conversation, book a demo.