TL;DR - The best Instagram DM sales scripts follow five moves in order: a fast, low-pressure open that gets a reply, one or two qualifying questions, a direct answer to the price or availability objection, a specific time offered (not "when works for you?"), and a short confirmation once the lead says yes. Skip a step and the conversation stalls - open with a pitch and leads go quiet, ask too many questions and they lose interest, offer a vague "let me know what works" and the lead never replies with a time. The scripts below are copy-paste ready for the industries that generate the most Instagram leads: med spas, salons/lash/nail studios, coaching and consulting, cosmetic dentistry, real estate, and gyms.
Picture the DM that actually happens: someone comments "price?" on your reel at 9:47pm, gets an auto-reply with a price sheet, and never responds again - not because the price was wrong, but because nobody asked what they actually wanted or offered them a real time to talk. A good script fixes half of that problem. It gives you words that qualify and book instead of just informing. But a script still can't read the reply that comes back sideways ("is this the one with the numbing cream?" or "can my sister come too?"). This guide gives you the scripts, how to personalize them so they don't read as copy-paste, and where static scripts hit a ceiling that only a real conversation can get past.
The Anatomy of a DM Script That Books
Every script in this guide follows the same five-part structure, because this is the order that actually gets a lead from "interested" to "on the calendar."
- Fast open - Reply within minutes, not hours. Leads contacted within 5 minutes are dramatically more likely to convert than those contacted even 30 minutes later, and the odds of qualifying a lead drop sharply after the first 5-minute window. On Instagram, where the lead is often still holding their phone from the moment they commented or messaged, that window is even tighter.
- Qualify with 1-2 questions - Not five. Enough to know if this is a real fit (what they want, when they want it) without turning the DM into an interrogation.
- Handle the objection - Price and availability are the two objections that kill almost every DM thread. Answer directly, then redirect to value or a specific slot - don't dodge and don't over-explain.
- Offer a specific time - "What works for you?" gets ignored more often than it gets answered, because it puts the work back on the lead. "I've got Thursday at 2pm or Friday at 10am" gets a yes-or-no reply.
- Confirm and close the loop - One short message locking in the day, time, and what happens next (a link, a reminder, an address).
Miss step 4 and you'll see this pattern constantly: a lead who was engaged through the objection just stops replying when asked an open-ended scheduling question. That's the single most common place these threads die.
Med Spa DM Script
Med spa DMs move fast because the intent is high (someone watching a before/after reel is already picturing the result) but the price question comes early and can end the thread if it's handled badly.
Opener: hey! saw you commented on the botox reel ๐ are you looking to get something done soon or just exploring for now?
Qualify: got it! have you had botox/filler before, or would this be your first time? and is there a specific area you're thinking about (forehead, lips, etc.)?
Objection ("how much is it?"): totally get wanting to know that upfront! botox runs $12-15/unit and most first-timers do 20-30 units depending on the area, so it typically lands around $250-450. we do a free consult first so you get an exact number before committing to anything
Booking ask: I can get you in with [provider] this week - I've got thursday at 2pm or saturday at 11am for the consult. which works better?
Confirm: perfect, you're set for saturday at 11am! I'll send a reminder the morning of - see you then ๐
For med spas specifically, the gap between "interested" and "booked" is often just the price question landing without a next step attached. For more industry-specific playbooks, see how med spas turn Instagram DMs into booked treatments, since the volume of "how much" DMs a busy med spa gets is usually too high for one person to answer well every time.
Salon / Lash / Nail DM Script
These leads usually want to know two things fast: does the stylist/tech do the specific look they saw, and when's the next opening. Keep it short.
Opener: hiii thank you for reaching out! are you looking to book a fresh set or is this for a fill/touch-up?
Qualify: love it! what style were you thinking - classic, hybrid, or volume? and do you have a specific date in mind or just whenever works?
Objection ("do you have availability?"): yes! we're actually pretty booked this week but I've got a thursday 1pm and a saturday 9am open right now - want me to grab one for you before they fill up?
Booking ask: thursday at 1pm or saturday at 9am - which one?
Confirm: you're booked for thursday at 1pm! I'll send you our address and a quick prep reminder the day before โจ
Booking speed matters even more here because lash and nail slots fill within the same conversation window - a lead who hears "let me check and get back to you" often just books somewhere else in the meantime. See how salons turn Instagram comments into booked clients for the fuller playbook.
Coaching / Consulting DM Script
Coaching and consulting DMs are selling a conversation, not a service - the goal is a booked discovery call, not a close in the DM itself.
Opener: hey! saw you commented "COACH" - what's the main thing you're trying to work on right now?
Qualify: got it, that makes sense. have you tried working on that on your own or with anyone else before? and are you looking to get moving on this in the next few weeks, or still just exploring options?
Objection ("how much is it?"): great question! it depends on which program fits best, which is exactly what the intro call is for - no pressure, just a real conversation about where you're at and whether this is a fit. most clients invest somewhere between $500-5,000 depending on the level of support
Booking ask: I've got a spot thursday at 3pm or friday at 11am for a free 15-minute intro call - which works better for you?
Confirm: awesome, friday at 11am it is! I'll send the call link now so it's easy to find later ๐
This script leans on qualifying twice (interest and urgency) before ever naming a price range, which keeps high-ticket conversations from collapsing the moment a number shows up. If you want the fuller version of this workflow, see how coaches book more discovery calls from Instagram.
Cosmetic Dentistry DM Script
Cosmetic dentistry DMs (veneers, Invisalign, smile makeovers) tend to come with real hesitation baked in, so the script needs to acknowledge that before pushing toward a booking.
Opener: hi! thanks for reaching out about the smile makeover post ๐ are you thinking veneers, Invisalign, or just curious what your options would be?
Qualify: got it! have you had a consult with anyone before, or would this be your first time looking into it? any specific concerns you're hoping to fix (spacing, color, alignment)?
Objection ("how much do veneers cost?"): totally fair to ask upfront! veneers typically range $800-2,500 per tooth depending on material and how many teeth are involved, which is why we always start with a free consult and imaging so you get exact pricing for your case, not a generic range
Booking ask: I can get you in for a consult with Dr. [name] - tuesday at 10am or thursday at 4pm both have openings. which is better for you?
Confirm: you're all set for tuesday at 10am! I'll text a reminder the day before, and bring any photos of smiles you like if you have them ๐ธ
Because treatment values are high, the objection-handling step matters more here than almost any other industry on this list - a rushed or vague price answer is often what sends a qualified lead to search "cosmetic dentist near me" instead of booking with you.
Real Estate DM Script
Real estate DMs split into two very different intents fast - buyers and sellers - so the qualifying question needs to sort that out immediately.
Opener: hey! thanks for the interest on the listing ๐ก are you looking to buy, or are you exploring selling your own place?
Qualify: nice! what area are you looking in, and do you have a timeline in mind (actively looking now, or a few months out)?
Objection ("is it still available?" / "what's the price?"): yes, still available! it's listed at $[price] - happy to send over the full listing details, or if you want I can walk you through it in person this week
Booking ask: I've got a showing slot wednesday at 5pm or saturday at 11am - want me to lock one in for you?
Confirm: great, saturday at 11am works! I'll send the address and parking info the morning of ๐
Speed matters most in this industry because a listing that gets attention on Instagram is usually getting the same DM from several interested buyers at once, and the agent who offers a specific showing time first is often the one who gets the walkthrough booked. For the fuller lead-gen picture, see how real estate agents turn Instagram into booked showings.
Gym / Fitness DM Script
Gym and fitness DMs usually come from a comment on a transformation post or class video, and the lead just needs a low-friction way to try it before committing.
Opener: hey! saw you commented on the class post ๐ช are you looking to get back into a routine, or working toward something specific (event, weight goal, etc.)?
Qualify: love that! have you trained at a gym like ours before, or would this be your first time with group classes? what days usually work best for you?
Objection ("how much is membership?"): good question! memberships start at $[price]/month, but the easiest way to see if it's a fit is a free trial class first - no commitment, just come try it
Booking ask: I've got a spot in tomorrow's 6am class or saturday's 10am class - want me to save you one?
Confirm: you're in for saturday at 10am! wear something you can move in and get there 10 minutes early to check in ๐
Leading with a free trial class instead of a hard sell on membership pricing is usually what gets a "how much" DM to actually convert, since it turns the ask from a financial commitment into a low-risk first step. See how gyms turn Instagram comments into new members for more on this approach.
Reusable Snippets for Any Industry
These four snippets show up in almost every DM thread regardless of industry. Keep them handy and swap in your own pricing, availability, and business name.
Response to "how much?"
totally get wanting to know that upfront! it depends a bit on [what they need/which service], but most people land around $[range]. want me to get you exact pricing on a quick call/consult, or I can give you a rough breakdown right here?
Response to "do you have availability?"
yes! I've got [day/time] and [day/time] open right now - want me to grab one for you before they fill up?
The no-reply follow-up (send 24-48 hours after they go quiet)
hey! just following up in case this got buried ๐ still happy to answer any questions or grab you a time if you're ready - no pressure either way!
The ghosted-lead re-engage (send 1-2 weeks later)
hi again! no worries if the timing wasn't right before, just wanted to check back in - we've actually got a few new openings this week if you're still interested ๐
Re-engaging a lead who went quiet costs a fraction of what it costs to acquire a brand new one, which is why the follow-up and re-engage snippets matter as much as the opener - most businesses only write a script for the first message and let everything after that go unanswered. Response time still governs how well any of these snippets perform; see why Instagram DM response time is costing you clients for the data behind it.
How to Personalize These Scripts So They Don't Sound Canned
Copy-paste scripts read as copy-paste the moment a lead notices the message doesn't reference anything they actually said. Fix this by editing three things before you send: swap in the specific post or reel they commented on ("saw you commented on the botox reel" beats "thanks for reaching out"), mirror their energy and punctuation (a lead who writes in full sentences with no emojis gets a slightly more toned-down reply than one who's all lowercase and exclamation points), and drop any line that doesn't apply to what they actually asked. A script is a starting shape, not a transcript - the goal is that the lead never suspects they're the tenth person to get that exact message today.
The other tell is response time consistency. A script sent instantly, then followed by a 6-hour gap before the next reply, feels more robotic than a slower first reply that keeps up a steady pace. Consistency matters as much as speed once the conversation has actually started.
Why Static Scripts Hit a Ceiling
A script only covers the reply you predicted. The moment a lead responds with something off-script - "does the numbing cream cost extra?", "can I bring a friend?", "I already tried Invisalign once and hated it", "actually can we do a video call instead?" - a static script has nothing to say, and whoever's running it either goes silent for a few hours until they can respond personally, or sends a generic fallback that makes it obvious a script is running. Both outcomes lose the lead right at the moment they were most engaged.
This is the exact gap between tools like ManyChat and an AI-powered conversation. ManyChat and similar tools automate the first message brilliantly - the comment-to-DM trigger, the instant opener - but everything after that first message runs on pre-written if/else flows. They can't handle "does the numbing cream cost extra?" because that question was never anticipated in the flow. LeadResponse is built for exactly this gap: the AI runs the entire conversation, not just the opener, so it can qualify, answer an unexpected question, handle a real objection, and still land on a specific booked time, the same way a skilled staff member would if they were online 24/7. For a deeper look at where the two approaches diverge, see this comparison of comment-to-DM automation tools.
The scripts in this guide will get you further than winging it. But every one of them assumes the lead replies roughly the way you expected. In practice, they don't - which is exactly why response time and adaptability matter more than the words themselves once a real conversation starts.
How Scripts, Templates, and AI Compare for Booking Appointments
| Static Scripts (manual) | ManyChat Flows | LeadResponse | |
|---|---|---|---|
| Handles the exact reply you expect | Yes | Yes | Yes |
| Handles an unexpected question | Only if you're online | No - dead-ends into fallback | Yes - AI adapts in real time |
| Response time | Depends on you | Instant for the first message only | Seconds, 24/7, for the whole thread |
| Objection handling (price, availability) | Manual, inconsistent | Static, scripted | AI-driven, contextual |
| Books a specific time | Manual | Link only | Yes - books in DM or hands off a booking link |
| Consistency across every lead | Varies by who's replying | High for the first message, none after | High for the entire conversation |
| Pricing model | Your time | Per-contact | Per-lead ($1 trial) |
For service businesses running DM scripts across med spas, salons, coaching, dental, real estate, or gyms, the table above points to the same conclusion regardless of industry: scripts and flows are excellent for the first message and weak for everything that comes after it, while LeadResponse keeps the same qualification and booking logic running for the entire conversation, not just the opener.
FAQ
Do Instagram DM scripts actually work for booking appointments?
Yes, when they follow a clear structure - fast open, qualify, handle the objection, offer a specific time, confirm. Scripts fail most often when they skip the specific-time step and end with an open-ended "let me know what works," which gets ignored far more than a direct "Thursday at 2pm or Friday at 10am." Scripts work best as a starting framework you personalize per lead, not a message you paste unedited every time.
How fast do I need to reply to a DM for these scripts to work?
As fast as possible - ideally within minutes. Leads contacted within the first 5 minutes are dramatically more likely to convert than those contacted even 30 minutes later, and the odds of qualifying a lead drop sharply once that window passes. On Instagram, where a lead is often still on the app after commenting or messaging, a fast reply is frequently the difference between a booked appointment and a lead who moves on to a competitor.
What's the best response to "how much does it cost?" in a DM?
Give a real range, not a dodge, then redirect to a specific next step. Something like "it typically runs $X-Y depending on [factor], and the exact number comes from a quick consult - I've got Thursday at 2pm or Friday at 10am, want me to grab one?" Avoid answering with just a number and nothing else, since that ends the conversation instead of moving it toward a booking.
How do I follow up with a lead who stopped replying?
Send one short, low-pressure follow-up within 24-48 hours ("just following up in case this got buried, happy to help whenever you're ready"), then a second re-engage message 1-2 weeks later if there's still no response, ideally mentioning a new opening or update. Re-engaging an existing lead costs significantly less than acquiring a new one, which makes these two follow-up messages some of the highest-return DMs a business sends.
When do static scripts stop working and I need something smarter?
Static scripts stop working the moment a lead replies with something outside what you scripted for, which happens constantly - a question about a specific ingredient, a scheduling conflict, a comparison to a competitor. At that point someone has to jump in manually or the lead gets a generic non-answer. LeadResponse solves this by running the entire conversation with AI instead of just the opening message, so it can handle the unscripted reply and still steer back toward a specific booked time, 24/7.
Final Verdict
Scripts fix the blank-page problem - they get service businesses from "I don't know what to say" to a structured, repeatable DM that qualifies and asks for a specific time. That alone puts most businesses ahead of the generic auto-replies and price-sheet-only responses that dominate Instagram DMs today. But scripts are only as good as the predictions behind them, and real leads rarely reply exactly the way a script expects.
The businesses getting the most out of Instagram DMs treat these scripts as a floor, not a ceiling: use them to structure the first few messages, then hand the unpredictable parts of the conversation - the follow-up question nobody anticipated, the objection that doesn't match the script, the lead who goes quiet for three days - to something that can actually adapt. That's the gap LeadResponse is built to close, running the entire conversation with AI instead of stopping after the first message.
Try LeadResponse for $1 and turn every DM into a real conversation that qualifies, handles objections, and books a specific time - even the ones that come in at midnight.
Join the service businesses that respond to every DM in seconds and let AI carry the conversation all the way to a booked appointment.