Home / Barbershops & salons / Missed-call text-back

Missed call while mid-cut: text back with booking link + walk-in wait

You've got clippers in one hand and a client in the chair. The phone rings out. That caller just wanted to know if they can come in today.

⏱ Setup: 1-2 hoursπŸ“Ά Beginner🧩 n8n workflow

How it works

  1. Get a Twilio number that forwards to the shop phone (or put it on Google and Instagram).
  2. If nobody picks up, the caller gets a text in seconds with your booking link from Booksy, Square, SQUIRE, Vagaro or Fresha.
  3. The same text says walk-ins are welcome, with today's hours and the current wait (pulled from a one-cell Google Sheet you or the front desk update; see the wait-time recipe below).
  4. If they text back, AI answers with the same info and the shop gets an email.
Realistic monthly costβ‰ˆ $8.50 + €20/mo
How we got this number
  • Twilio local number$1.15
  • Texting registration (A2P 10DLC) monthly fee$2
  • ~240 text segments sent + received$1.99
  • carrier fees on ~120 outbound texts$0.60
  • ~120 inbound call minutes$1.02
  • ~120 minutes forwarded to your cell$1.68
  • ~120 AI-written replies$0.05
  • Automation platform (or self-host n8n free)€20
  • Google Sheet for current wait$0

Assumes ~120 missed calls a month. Booking-tool subscription not included (you already have one; see prices below). Prices are list prices checked 2026-10-26; see every source.

Plus one-time texting registration (A2P 10DLC): about $19.50 (low-volume brand + campaign vetting). Source

The full setup, step by step

19 steps in one n8n workflow. Everything below is generated from the template itself, so it always matches.

Before you start

You need an n8n account (n8n, or self-host it free) plus your own logins for: Google Sheets Twilio Gmail / Google Workspace OpenAI API.

Each step and what it does

  1. 1
    Trigger

    Call ended (from Twilio)

    Twilio calls this webhook the moment a call to your business number ends, rings out or goes to voicemail. It passes along the caller's number and the call status.

    Webhook pathYOUR_N8N_URL/webhook/missed-call

    Then β†’ 3. Config (edit me)

  2. 2
    Trigger

    Incoming text

    Twilio calls this webhook every time someone texts your business number.

    Webhook pathYOUR_N8N_URL/webhook/incoming-sms

    Then β†’ 3. Config (edit me)

  3. 3
    Settings

    Config (edit me)

    One place for everything specific to your business. Every later step reads from here, so this is the only node you have to edit.

    Editthe settings table below

    Then β†’ 4. Call or text?

  4. 4
    Decision

    Call or text?

    Both triggers share the same Config, so this splits them: calls go one way, texts the other.

    Rulethe call status is filled in

    Calls β†’ 5. Tell Twilio what to say Β· Texts β†’ 10. Acknowledge Twilio (text)

  5. 5
    Reply to request

    Tell Twilio what to say

    Answers Twilio right away. If the call was answered it just hangs up; if it was missed the caller hears a short message saying a text is on its way.

    Sendsthe message shown under Message copy

    Then β†’ 6. Was the call missed?

  6. 6
    Decision

    Was the call missed?

    Only keeps going when nobody picked up. Answered calls stop here, so nobody gets a pointless text.

    Rulethe call status is not β€œcompleted”

    If yes β†’ 7. Read current wait Β· If no β†’ stops here

  7. 7
    Google Sheets

    Read current wait

    Looks up today's walk-in wait from your one-row Google Sheet so the text can include it.

    Sheet tabWait

    πŸ”‘ Connect your Google Sheets login on this node

    Then β†’ 8. Text the caller

  8. 8
    Send SMS (Twilio)

    Text the caller

    Sends the missed caller a text within seconds.

    Sendsthe message shown under Message copy

    πŸ”‘ Connect your Twilio login on this node

    Then β†’ 9. Email the owner

  9. 9
    Send email (Gmail)

    Email the owner

    Emails you so you know who to call back (and what they were told).

    Sendsthe message shown under Message copy

    πŸ”‘ Connect your Gmail login on this node

    End of this path.

  10. 10
    Reply to request

    Acknowledge Twilio (text)

    Tells Twilio the text was received. The reply goes out separately, so this one sends nothing to the customer.

    Then β†’ 11. Read wait (text)

  11. 11
    Google Sheets

    Read wait (text)

    Looks up today's walk-in wait from your one-row Google Sheet.

    Sheet tabWait

    πŸ”‘ Connect your Google Sheets login on this node

    Then β†’ 12. Owner setting the wait?

  12. 12
    Decision

    Owner setting the wait?

    If the text comes from the owner's cell and starts with WAIT, it's an update, not a customer.

    Ruletheir phone number is your cell and their text starts with β€œWAIT ”

    If yes β†’ 13. Save new wait Β· If no β†’ 15. Asking about the wait?

  13. 13
    Google Sheets

    Save new wait

    Writes the new wait time (whatever follows WAIT) into the Google Sheet.

    Sheet tabWait

    πŸ”‘ Connect your Google Sheets login on this node

    Then β†’ 14. Confirm to owner

  14. 14
    Send SMS (Twilio)

    Confirm to owner

    Texts the owner back so they know the update worked.

    Sendsthe message shown under Message copy

    πŸ”‘ Connect your Twilio login on this node

    End of this path.

  15. 15
    Decision

    Asking about the wait?

    If a customer's text mentions the wait, they get the quick wait-time answer instead of an AI reply.

    Ruletheir text contains β€œwait”

    If yes β†’ 16. Reply with wait time Β· If no β†’ 17. AI writes reply

  16. 16
    Send SMS (Twilio)

    Reply with wait time

    Replies with hours, the current wait and the booking link.

    Sendsthe message shown under Message copy

    πŸ”‘ Connect your Twilio login on this node

    End of this path.

  17. 17
    AI (OpenAI)

    AI writes reply

    OpenAI drafts a short, on-brand reply using your business info and the customer's message. The instructions (prompt) keep it short and stop it from inventing prices.

    Modelgpt-5-mini

    AI instructions (prompt)
    You are the friendly front desk for a neighborhood barbershop that takes both appointments and walk-ins. Write one short, casual SMS reply (under 300 characters). Always give the booking link for appointments AND mention walk-ins are welcome with today's hours and current wait if provided. Don't quote prices unless they are in the info you were given. Don't promise a specific barber is available.

    πŸ”‘ Connect your OpenAI login on this node

    Then β†’ 18. Text the AI reply

  18. 18
    Send SMS (Twilio)

    Text the AI reply

    Texts the AI's reply back to the customer.

    Sendsthe message shown under Message copy

    πŸ”‘ Connect your Twilio login on this node

    Then β†’ 19. Email owner about the text

  19. 19
    Send email (Gmail)

    Email owner about the text

    Emails you what the customer wrote and what was sent back.

    Sendsthe message shown under Message copy

    πŸ”‘ Connect your Gmail login on this node

    End of this path.

Key settings to change

All of these live in the Config (edit me) node. Change them once and every text and email updates.

SettingPlaceholder in the templateChange it to
Business name
business_name
YOUR BUSINESS NAMEExactly how customers know you. It appears in every text.
Booking / calendar link
booking_link
https://YOUR-BOOKING-LINKYour online booking page (Booksy, Square Appointments, SQUIRE, Vagaro, Fresha, Calendly...). Use the short public link.
Hours
hours
Mon-Fri 8am-6pmShort and text-friendly, e.g. Mon-Fri 8am-6pm.
Your email
owner_email
you@example.comWhere the 'new lead' and 'missed call' alerts go.
Your cell
owner_cell
+15555550100In +1 format (+15551234567). Texts from this number that start with WAIT update the wait time.
Twilio number
twilio_number
+15555550199The number you bought in Twilio, in +1 format. Texts are sent from it.
Wait-time Google Sheet ID
wait_sheet_id
YOUR_GOOGLE_SHEET_IDThe long code in the sheet's URL between /d/ and /edit.

Message copy: exactly what it sends

Highlighted parts are filled in automatically. Edit the wording right in the node.

Voice to the caller (spoken) Β· step 5
Sorry we missed you. We are texting you right now.
SMS to [their phone number] Β· step 8
Hey, it's business name! Sorry we missed you, we're mid-cut. Book your spot here: booking link Or walk in: we're open hours, current wait is about current wait.
Email to [your email] Β· step 9

Subject Missed call from their phone number

We missed a call from their phone number and texted them automatically. Call them back when you can.
SMS to [their phone number] Β· step 14
Got it. Current wait set to: new wait
SMS to [their phone number] Β· step 16
Hey! Walk-ins welcome at business name. Hours: hours. Current wait: about current wait. Rather book a time? booking link
SMS to [their phone number] Β· step 18 AI-written each time
AI-written reply
Email to [your email] Β· step 19

Subject New text from their phone number

They wrote: their text

We auto-replied: AI-written reply

Hook it up

  1. Open Config (edit me) and fill in your business name, booking link, hours, email, cell and Twilio number.
  2. Click each node with a red warning and connect your own Twilio, OpenAI, Gmail and Google Sheets credentials.
  3. In Twilio, on your number: Voice > 'A call comes in' > TwiML Bin with:
    <Response><Dial timeout="20" action="YOUR_N8N_URL/webhook/missed-call">+1YOURCELL</Dial></Response>
  4. Messaging > 'A message comes in' > Webhook YOUR_N8N_URL/webhook/incoming-sms (POST).
  5. Register your number for A2P 10DLC in Twilio before texting customers.
  6. Activate the workflow.

Walk-ins: make a Google Sheet with a tab named Wait, columns row_key | current_wait | updated_at, one row with row_key current. Text WAIT 20 min from the owner cell to update it.

Test it before you trust it

Skip the clicking

Get the ready-to-import n8n template

Every step above, already wired up. Paste it into n8n, add your logins, fill in your business info and you're live.

← All barbershops & salons recipes