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.
How it works
- Get a Twilio number that forwards to the shop phone (or put it on Google and Instagram).
- If nobody picks up, the caller gets a text in seconds with your booking link from Booksy, Square, SQUIRE, Vagaro or Fresha.
- 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).
- If they text back, AI answers with the same info and the shop gets an email.
Tools used
Twilio n8n OpenAI API Google Sheets Square Appointments Booksy SQUIRE
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.
How the automation flows
When a call ends
When someone texts you
Tap a step to jump to its details.
Each step and what it does
- 1Trigger
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 path
YOUR_N8N_URL/webhook/missed-callThen β 3. Config (edit me)
- 2Trigger
Incoming text
Twilio calls this webhook every time someone texts your business number.
Webhook path
YOUR_N8N_URL/webhook/incoming-smsThen β 3. Config (edit me)
- 3Settings
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.
Then β 4. Call or text?
- 4Decision
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)
- 5Reply 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?
- 6Decision
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
- 7Google Sheets
Read current wait
Looks up today's walk-in wait from your one-row Google Sheet so the text can include it.
Sheet tab
Waitπ Connect your Google Sheets login on this node
Then β 8. Text the caller
- 8Send 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
- 9Send 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.
- 10Reply 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)
- 11Google Sheets
Read wait (text)
Looks up today's walk-in wait from your one-row Google Sheet.
Sheet tab
Waitπ Connect your Google Sheets login on this node
Then β 12. Owner setting the wait?
- 12Decision
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?
- 13Google Sheets
Save new wait
Writes the new wait time (whatever follows WAIT) into the Google Sheet.
Sheet tab
Waitπ Connect your Google Sheets login on this node
Then β 14. Confirm to owner
- 14Send 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.
- 15Decision
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
- 16Send 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.
- 17AI (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.
Model
gpt-5-miniAI 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
- 18Send 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
- 19Send 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.
| Setting | Placeholder in the template | Change it to |
|---|---|---|
Business namebusiness_name | YOUR BUSINESS NAME | Exactly how customers know you. It appears in every text. |
Booking / calendar linkbooking_link | https://YOUR-BOOKING-LINK | Your online booking page (Booksy, Square Appointments, SQUIRE, Vagaro, Fresha, Calendly...). Use the short public link. |
Hourshours | Mon-Fri 8am-6pm | Short and text-friendly, e.g. Mon-Fri 8am-6pm. |
Your emailowner_email | you@example.com | Where the 'new lead' and 'missed call' alerts go. |
Your cellowner_cell | +15555550100 | In +1 format (+15551234567). Texts from this number that start with WAIT update the wait time. |
Twilio numbertwilio_number | +15555550199 | The number you bought in Twilio, in +1 format. Texts are sent from it. |
Wait-time Google Sheet IDwait_sheet_id | YOUR_GOOGLE_SHEET_ID | The 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.
Subject Missed call from their phone number
Subject New text from their phone number
We auto-replied: AI-written reply
Hook it up
- Open Config (edit me) and fill in your business name, booking link, hours, email, cell and Twilio number.
- Click each node with a red warning and connect your own Twilio, OpenAI, Gmail and Google Sheets credentials.
- 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> - Messaging > 'A message comes in' > Webhook
YOUR_N8N_URL/webhook/incoming-sms(POST). - Register your number for A2P 10DLC in Twilio before texting customers.
- 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.
β Unlocked. Here's your template.
- In n8n: click New workflow.
- Paste onto the empty canvas (Ctrl/Cmd+V).
- Set your credentials on the red nodes, then fill in Config (edit me).
Download .json instead Β· Using Make instead of n8n? A Make version of this template is coming soon.