A missed call after hours isn't just a missed call. For a plumber, a dental clinic, or an HVAC contractor, it's a job that just went to whoever picked up the phone first.
Most small businesses handle this with voicemail. Voicemail doesn't book jobs. An automated text-back does.
This guide walks through building a missed-call text-back system in n8n: when a call goes unanswered, the caller gets an SMS right away, an AI assistant qualifies them, and a booking gets scheduled — all without anyone at the business touching a phone.
The full importable workflow is free. I'll link it at the end.
Why Missed Calls Cost More Than You Think
Think about the math for a typical home-services business. They get 20 calls a day and miss 5 because the techs are on roofs or under sinks. If each job is worth $300 and half of those missed callers go elsewhere, that's $750 a day walking out the door.
The standard response is "call them back later." The problem: later usually means an hour or three. By then the caller has already booked with someone else. Businesses that respond within minutes tend to convert far more leads than those that take an hour — speed is the whole game here.
A missed-call text-back fixes the speed problem. The caller gets a message almost immediately: "Sorry we missed you — how can we help?" That small acknowledgment keeps them from calling the next business on Google Maps.
What the System Does
Here's the flow, start to finish:
- Call comes in and goes unanswered. Your phone provider (Twilio in this guide) fires a webhook to n8n.
- n8n checks if it's a new number. Returning customers get a different message than first-time callers.
- An SMS goes out immediately. Short, human-sounding, asking what they need.
- The caller's reply comes back through the same webhook. An AI agent (OpenAI) reads it, figures out intent — new quote, existing job, emergency, wrong number — and responds accordingly.
- If it's a booking request, the AI collects details. Service needed, preferred time, address.
- The appointment gets created in Google Calendar (or Cal.com, or whatever the business uses) and the caller gets a confirmation text.
- The business owner gets a summary. One text or Slack message: new booking, Thursday 9 AM, burst pipe, address.
Total time from missed call to first text: as fast as the Twilio-to-n8n round trip allows — no human in the loop. Total human involvement: zero, until the tech shows up at the door.
What You Need
- n8n — self-hosted or n8n Cloud. Either works.
- Twilio — a phone number with SMS and voice. You need the Account SID, Auth Token, and the phone number. Twilio's pay-as-you-go is fine for starting.
- OpenAI API key — for the AI agent that reads and responds to messages.
- Google Calendar (or Cal.com) — for booking. The workflow uses Google Calendar by default; swapping in Cal.com is a single-node change.
That's it. No custom app, no server to maintain beyond n8n itself.
Building the Workflow: Node by Node
1. Webhook Trigger
The workflow starts with an n8n Webhook node set to receive POST requests. In Twilio, you configure two things:
- Voice URL: points to a TwiML bin or a small endpoint that plays a message and hangs up (or routes to voicemail). The key part is that Twilio also fires on the "call completed" event.
-
Status callback / missed call webhook: Twilio sends call status events to your n8n webhook URL. You filter for calls where
CallStatusisno-answerorbusy.
The webhook payload includes the caller's number (From), your Twilio number (To), and the call SID. That's all the workflow needs to kick off.
2. Check for Existing Contact
Before sending anything, the workflow checks whether this number has called before. The simplest approach: a Google Sheet or Airtable with two columns — phone number and name. An n8n node queries it.
- Known number: "Hey Mike, sorry we missed your call — what's going on?"
- Unknown number: "Hi, this is Acme Plumbing — sorry we missed you! What can we help with today?"
This one check makes the difference between a message that feels automated and one that feels personal.
3. Send the Initial SMS
A Twilio node sends the first text. Keep it under 160 characters. Keep it short and human. (One caution: SMS rules such as US A2P 10DLC generally require prior consent and opt-out language — I'm not a lawyer, so check your local regulations and your provider's requirements before you send.)
Good: "Sorry we missed your call — what can we help you with today?"
Bad: "Thank you for contacting Acme Plumbing LLC. An agent will respond shortly. Reply STOP to opt out."
The first one sounds like a person. The second sounds like a phone tree.
4. The AI Responder
This is the core of the system. When the caller replies, the message comes back into the same webhook. An n8n AI Agent node (or an OpenAI node with a well-crafted system prompt) processes it.
The system prompt needs to cover who the agent is, what it can do (answer common questions, collect booking details, escalate emergencies), what it can't do (quote exact prices for unseen work), and the tone: short texts, one question at a time.
Here's a skeleton of the logic the agent follows:
IF message contains emergency keywords (flood, burst, gas, leak)
→ mark URGENT, notify owner immediately, tell caller help is on the way
ELSE IF message asks about booking
→ collect: service type, preferred day/time, address
→ check calendar availability
→ confirm booking
ELSE IF message is a question (hours, pricing, service area)
→ answer from knowledge base
ELSE
→ ask a clarifying question, one at a time
5. Calendar Booking
Once the AI has the details, an n8n Google Calendar node creates the event. The event title includes the service type and caller name: "Burst pipe repair — Sarah M."
The node also needs a buffer. Don't let the AI book back-to-back with zero travel time. Set a 30-minute buffer before and after in the calendar settings, or have the workflow check for conflicts within a 1-hour window.
After the event is created, a Twilio node sends the confirmation:
"You're booked for Thursday 9:00 AM. We'll text when the tech is on the way. Address on file: 42 Oak Street — is that right?"
That last question matters. Wrong addresses are a common cause of wasted truck rolls.
6. Owner Notification
Every booking triggers a summary to the business owner — SMS or Slack, their choice:
"New booking: Sarah M., burst pipe repair, Thu 9:00 AM, 42 Oak St. AI handled 6 messages. No action needed."
The "no action needed" line is deliberate. Owners ignore notifications they have to decode. Make it skimmable.
Handling Edge Cases
A few things that will come up in production:
- Spam/robocalls: If the initial SMS gets no reply, don't follow up more than once. One nudge after 10 minutes ("Still there? Happy to help when you're ready."), then stop.
- After-hours vs. business hours: Use an n8n IF node with the current time. During business hours, the text can say "We're with a customer — we'll call you right back." After hours, it routes to the full AI booking flow.
- Multiple messages in quick succession: Callers sometimes send three texts in a row. Add a 30-second wait node before the AI processes, so it reads all three as one conversation instead of replying three times.
- Wrong numbers: If the caller says "wrong number," log it and stop. Don't keep texting.
Testing Before You Go Live
- Use your own phone. Call the Twilio number, hang up, and walk through the full flow as a customer.
- Test the emergency path. Text "my basement is flooding" and confirm the owner gets pinged promptly.
- Test the calendar conflict. Book a time that's already taken and make sure the AI offers alternatives instead of double-booking.
- Test with a real business owner watching. They'll think of scenarios you won't — "what if someone asks about a warranty?" or "what if they want to reschedule?"
Run it in parallel with the old system (voicemail) for a week. Compare: how many missed calls turned into bookings under each system? That comparison is what sells this to the next client.
Get the Free Workflow
I've packaged this exact system — the full n8n JSON, the Twilio configuration steps, and a setup guide — as a free download:
Download the Free n8n Starter Pack
It includes this missed-call text-back workflow plus an invoice-extraction workflow, both ready to import into n8n. Import the JSON, add your Twilio and OpenAI credentials, point the webhook at your Twilio number, and you're live.
If you want the full playbook — 10 import-ready workflows with build steps, pricing guidance, and the scripts to sell them — that's in the AI Automation Playbook.
Disclosure: This article was written with AI assistance and reviewed by the author. The workflow steps and links were checked; pricing and platform details reflect September 2026 and may change — verify on the official sites before you build.
Top comments (0)