---
title: 'Instagram DM Templates: Local Service Businesses'
description: 'Ready-to-run Instagram DM sequences for Local Service Businesses, on the 3 / 5 / 10-step framework.'
---

> **For AI agents:** the complete documentation index is at [llms.txt](/llms.txt). Append `.md` to any page URL for its markdown version.

Niche-tuned Instagram DM sequences you run from inside SocialMedia DMs, built on the 3 / 5 / 10-step framework. Save a sequence as a message template, set your variables, and let it run.

## How these templates work

You (the local service business owner) send these DMs; your prospective customer receives them — someone nearby who could become a regular. Every message is in your voice, opening as a real neighbor rather than another ad in the feed. The pattern that works on IG is observation → curiosity → soft ask → value → booking — the cold-email pattern (pain → product → CTA) dies here.

## Adding a template

<Steps>
  <Step title="Open Message Templates">
    In your dashboard, go to **Message Templates** and click **New Template**.
  </Step>
  <Step title="Name it and paste a send">
    Give the template a clear name (e.g. `Local Service Businesses · Pro · Step 1A`) and copy any send below into the message body. Each “separate send” is its own bubble — save it as its own template.
  </Step>
  <Step title="Keep the FirstName field as-is">
    Leave `{FirstName}` exactly as written — it’s the one variable that auto-fills from the prospect’s profile.
  </Step>
  <Step title="Replace the [brackets]">
    Replace anything in [square brackets] with something true before sending. The platform never fills these in for you.
  </Step>
</Steps>

## Filling in the placeholders

`{FirstName}` auto-fills from the prospect’s profile — keep it as written. Everything in [brackets] you complete by hand before sending, with something **true**. A specific, hand-written reference reads as a real message; identical wording repeated across DMs is what gets accounts flagged.

| Placeholder | What it’s for | What to type |
| --- | --- | --- |
| `[your business name]` | (Set once) Your business's name. | Drop in your real business name. e.g. “Maple & Co Barbers.” |
| `[service type]` | (Set once) What you do, in the words a local would use. | e.g. “barbershop”, “med spa”, “auto detailing”, “dog grooming.” |
| `[your city]` | (Set once) Your city or town. | e.g. “Austin”, “the Northside.” |
| `[your offer]` | (Set once) Your real first-visit offer. | Only an offer the owner has approved — never invent a discount. e.g. “$20 off your first cut”, “a complimentary consult.” |
| `[their area]` | (Per prospect) A neighborhood or landmark genuinely near the prospect. | Check their tagged posts or location first — not a generic city line. e.g. “over by Riverside”, “right by the Highland strip.” |
| `[their recent post]` | (Per prospect) A real reference to something they recently posted. | Pull it from their actual feed. e.g. “that patio reno you shared.” |
| `[day]` | (Per prospect) The day you're offering or discussing. | e.g. “Thursday”, “this weekend.” |
| `[a specific detail]` | (Per prospect) A real differentiator that fits them. | e.g. “free parking out back”, “evening hours”, “we remember your usual.” |
| `[the specific service]` | (Per prospect) The one service you'd start them with. | e.g. “a beard trim”, “the express detail.” |
| `[booking link / review link]` | (Per prospect) Your real scheduling or reviews URL. | Send it only after they've said yes — never in message one. |
| `[real, approved review screenshot — blur the name if needed]` | (Per prospect) Genuine social proof attached to the DM. | Use only a real, approved review — never fabricate or inflate. Blur the name if needed. |

## Before you send

<Warning>
  **No links in the first message — ever.** Instagram flags accounts that send links to non-followers. The first link goes no earlier than the resource step, and ideally only after they’ve said “yes, send it.”
</Warning>

Three more ground rules:

- **Voice-match the platform.** IG isn’t LinkedIn. Founders who run their own IG reply to DMs that read like a peer reaching out, not a pitch.
- **Message one has a single job: earn a reply.** Not book a call, not pitch — just start a real conversation.
- **Warm the account and vary your copy.** Ramp sending volume gradually on newer accounts, and vary opener wording per send — identical copy across DMs gets flagged. See [Keeping Your Instagram Account Healthy](/account-safety).

<Tip>
  Across the industry, well-structured Instagram DM conversations have been shown to convert at 7–20%, versus 1–3% for standard Instagram ads (CreatorFlow); replying within five minutes converts roughly 21× higher than after an hour (Icekulfi); and average brand response time on Instagram is 10+ hours — so speed is an edge.
</Tip>

## Pro Plan — 3-Step Sequence

**3 steps · ~4 days**  
Light volume, high personalization. Best for nearby prospects who've engaged with you or whose posts you can reference. One clean path: open as a neighbor, build a little trust, and offer a low-friction first visit.

### DAY 0 — Hyper-local opener

<Tabs>
  <Tab title="A — Neighborhood Anchor">
    ```text
    Hey {FirstName} 👋 saw you're over by [their area] — we're the [service type] just down the road. Always nice to see a familiar local face in the feed.
    ```
    *↓ separate send*
    ```text
    Quick q — are you already set with a regular spot for [service type], or still figuring out where to go?
    ```
  </Tab>
  <Tab title="B — No Landmark">
    ```text
    Hey {FirstName} — [your business name] here, the local [service type] in [your city]. You popped up in our area feed and figured I'd say hi.
    ```
    *↓ separate send*
    ```text
    Are you currently going somewhere for [service type], or open to trying somewhere new nearby?
    ```
  </Tab>
</Tabs>

<Note>
  Test A vs B. A: Operator must confirm [their area] is genuinely near the prospect (check their tagged posts/location) before send — generic 'love the city' lines kill reply rate. Two sends — split on ||. No link. B: Use when no specific neighborhood can be confirmed. Two sends — split on ||.
</Note>

### DAY 2 IF REPLIED — Value + social proof

```text
Love that 🤝 most folks near [their area] come to us because we keep it simple — easy booking, no upsell, in and out without the wait. We've got a few openings this week if you ever want to try us.
```

*↓ separate send*

```text
What day usually works best for you — weekday or weekend?
```

<Note>
  Send only if they replied. Keep proof local and concrete, never inflated. Two sends — split on ||.
</Note>

### DAY 4 — Low-friction booking CTA

```text
Based on what you said, easiest thing is I hold a [service type] slot for you — first visit we do [your offer] so there's zero risk in trying us.
```

*↓ separate send*

```text
Want me to grab one for [day]? Just need a name and a time that works.
```

<Note>
  Two sends — split on ||. Outcome currency = a booked appointment, not a lead. [your offer] = the business's own intro offer; never invent a discount the owner hasn't approved.
</Note>

## Scale Plan — 5-Step Sequence

**5 steps · ~8 days**  
Mid-funnel. Qualified but cold local prospects. Real local proof and A/B testing on the opener and the value drop. The currency here is a booked first visit, not a lead.

### DAY 0 — Opener

<Tabs>
  <Tab title="A — Neighbor-To-Neighbor">
    ```text
    Hey {FirstName} 👋 we're [your business name], the [service type] right by [their area]. Saw you're local and wanted to introduce ourselves rather than just show up in your ads.
    ```
    *↓ separate send*
    ```text
    Quick one — do you have a go-to spot for [service type], or still on the hunt?
    ```
  </Tab>
  <Tab title="B — Specific-Post Hook">
    ```text
    Hey {FirstName} — [your business name] here in [your city]. Noticed [their recent post] and figured we're practically neighbors. Random q — when you book [service type], what matters most to you: price, convenience, or just trusting the person doing it?
    ```
  </Tab>
</Tabs>

<Note>
  Test A vs B. A: over 50 sends per variant. A wins for established prospects who value a local relationship. Two sends — split on ||. B: B wins when the operator can reference a real recent post — pulls a warmer reply. [their recent post] must be filled from the prospect's actual feed.
</Note>

### DAY 2 — Rapport + qualify

```text
Appreciate you replying 🤝 reason I asked — we keep [your business name] small on purpose so locals actually get looked after instead of rushed through. No pressure either way.
```

*↓ separate send*

```text
Be honest — what's stopped you from booking [service type] somewhere new before?
```

<Note>
  Two sends — split on ||. The objection they give here feeds the value drop in Step 3.
</Note>

### DAY 4 — Value drop

<Tabs>
  <Tab title="A — Reviews / Proof">
    ```text
    Totally fair — that's exactly why we lean on what locals say about us. Happy to send a couple recent reviews from people right around [their area] so you can judge for yourself.
    ```
    *↓ separate send*
    ```text
    Want me to send them over?
    ```
  </Tab>
  <Tab title="B — First-Visit Offer">
    ```text
    Here's the easiest way to settle it — first visit, we do [your offer] so you can see if we're your people before committing to anything regular.
    ```
    *↓ separate send*
    ```text
    Want me to set that up for you this week?
    ```
  </Tab>
</Tabs>

<Note>
  Test A vs B. A: A wins with prospects who want proof before committing. Use only real, approved reviews. Two sends — split on ||. B: B typically pulls the higher booking rate when [your offer] is genuinely good. Two sends — split on ||.
</Note>

### DAY 5 AFTER YES — Send the resource / confirm

```text
Sending now —
```

*↓ separate send*

```text
[reviews link / booking link — only after they said yes]
```

*↓ separate send*

```text
The [a specific detail] is the part most new clients mention. Lmk if any of those times work 👀
```

<Note>
  Only send if they said yes in Step 3. Three sends — split on ||. Third send a few hours later. [a specific detail] = a real differentiator (parking, evening hours, the specific service). First link goes here, never earlier.
</Note>

### DAY 8 — Soft close + open door

```text
{FirstName} — no rush at all, just don't want you to miss the [your offer] window. I can hold a [service type] slot for you on [day] and you can always move it.
```

*↓ separate send*

```text
Want me to lock it in? And if the timing's just off, totally fine — we're right here by [their area] whenever you're ready 🤝
```

<Note>
  Two separate sends — split on ||. Quiet exit with a standing invitation generates inbound weeks later.
</Note>

## Enterprise Plan — 10-Step Sequence

**10 steps · ~15 days**  
Higher-value or premium-local prospects who need several touches before booking. Multi-touch nurture interleaving DMs with Story reactions and post likes. The engagement steps are not optional — they're what make the outreach feel like a neighbor, not an ad.

### DAY 0 — Passive priming

### DAY 1 — Warm local opener

<Tabs>
  <Tab title="A — Neighborhood + Observation">
    ```text
    Hey {FirstName} 👋 we're [your business name], the [service type] near [their area]. Saw [their recent post] — looked great. Figured I'd reach out as an actual neighbor rather than another ad in your feed.
    ```
    *↓ separate send*
    ```text
    Quick one — is [service type] something you keep up with regularly, or more when-you-need-it?
    ```
  </Tab>
  <Tab title="B — Shared-Local Angle">
    ```text
    Hey {FirstName} — [your business name] here, right by [their area]. We end up seeing a lot of the same local spots in our feeds 😄 random q: when you think about [service type], are you happy with where you go now or quietly looking for someone better?
    ```
  </Tab>
</Tabs>

<Note>
  Test A vs B. A: React to a Story with 👋 first if they posted. Operator must fill [their area] and [their recent post] from research. Test A vs B. B: B wins with prospects who aren't openly shopping but are persuadable. One question only.
</Note>

### DAY 3 — Reciprocal value tease

```text
Reason I asked — we put a lot into the experience side, not just the [service type] itself: easy booking, no waiting room limbo, and we actually remember you next time.
```

*↓ separate send*

```text
Happy to share what makes us different from the bigger [service type] chains around [your city], no strings 🤝
```

<Note>
  Two sends — split on ||. Tease value tied to the experience, which premium local prospects care about.
</Note>

### DAY 5 — Value / offer

<Tabs>
  <Tab title="A — Personalized Recommendation">
    ```text
    {FirstName} — based on what you mentioned, the [the specific service] is probably what I'd actually start you with rather than the full package. No point paying for what you don't need.
    ```
    *↓ separate send*
    ```text
    Want me to walk you through what that'd look like? No pitch, just an honest take.
    ```
  </Tab>
  <Tab title="B — First-Visit Offer">
    ```text
    Easiest way to show you rather than tell you — first visit we do [your offer], so you experience the [service type] and the service before deciding anything longer-term.
    ```
    *↓ separate send*
    ```text
    Want me to set that up? I'd block proper time so it's not rushed.
    ```
  </Tab>
</Tabs>

<Note>
  Test A vs B. A: A wins decisively with premium prospects — being told what NOT to buy builds trust fast. Two sends — split on ||. B: B wins with prospects who want to try before trusting. Two sends — split on ||.
</Note>

### DAY 6 AFTER YES — Send the resource / confirm

```text
Sending now 🤝
```

*↓ separate send*

```text
[booking link / review or before-after link — only after yes]
```

*↓ separate send*

```text
The [a specific detail] is what most new clients near [their area] say sealed it for them. Lmk what time suits 👀
```

<Note>
  Only send if they said yes in Step 4. Three sends — split on ||. Third send 4–6 hrs later. Use only real, approved before/after or review assets. First link goes here, never earlier.
</Note>

### DAY 7 — Engagement touch

### DAY 9 — Re-engage with thoughtful question

```text
Hey {FirstName} — no pressure on booking, genuinely. Just curious: when you've tried a new [service type] before, what's usually made you go back vs not? Helps me know if we'd actually be a fit for you.
```

<Note>
  Soft re-engage if no reply to Step 5. A real question, not a disguised pitch.
</Note>

### DAY 11 — Book the visit

<Tabs>
  <Tab title="A — Reserved Slot">
    ```text
    Here's what I'll do — I've got a [service type] slot on [day] I can hold for you. First visit is [your offer], and if it's not for you, no harm done and no follow-up pressure.
    ```
    *↓ separate send*
    ```text
    Want me to put your name on it? 👀
    ```
  </Tab>
  <Tab title="B — Low-Commitment Trial">
    ```text
    Idea — instead of committing to anything, come in once for the [the specific service], [your offer]. You'll know within one visit whether we're your people. No membership talk, no upsell.
    ```
    *↓ separate send*
    ```text
    Down to try us this week? I'll make sure you're looked after personally.
    ```
  </Tab>
</Tabs>

<Note>
  Test A vs B. A: A wins with established prospects who just need a nudge and a held time. Two sends — split on ||. B: B wins with prospects who've been burned by pushy [service type] places before. Two sends — split on ||.
</Note>

### DAY 13 — Local social proof drop

```text
Sharing this bc the timing might land — a regular of ours from [their area] left this last week:
```

*↓ separate send*

```text
[real, approved review screenshot — blur the name if needed]
```

*↓ separate send*

```text
We keep new-client spots limited each week so everyone gets proper time. Happy to hold one for you while you decide?
```

<Note>
  Three sends — split on ||. Use ONLY genuine, approved reviews — never fabricate or inflate. Scarcity must be real (actual capacity), not invented urgency.
</Note>

### DAY 15 — Graceful close + open door

```text
{FirstName} — going to stop here so I'm not crowding your inbox 🤝 Two things before I go:
```

*↓ separate send*

```text
1. The [your offer] stands whenever you're ready — no expiry, just message me 2. If a friend near [their area] ever needs a [service type], we'd take great care of them
```

*↓ separate send*

```text
Either way, genuinely nice connecting with a neighbor 📍
```

<Note>
  Three sends — split on ||. Quiet exit with a permanent open door — this is what produces inbound months later.
</Note>
