---
title: "The missed-call save: text back before the customer calls your competitor"
subtitle: "An automatic reply within a minute of every unanswered call — not a $200-500/month answering service"
url: "https://rxed.ai/blueprints/missed-call-text-back-engine.html"
id: "missed-call-text-back-engine"
version: "1.0"
published: "2026-07-29"
kind: "workflow"
setup_effort: "A weekend"
setup_hours: "4-8"
running_cost_usd_per_month: "6-20"
paid_software_usd_per_month: "0"
time_saved: "saves ~0.3–0.7 h/week for the owner at 10 missed calls a week"
time_saved_basis: "2–4 minutes each, doing it by hand: calling each missed number back, often twice"
runs_by: "owner"
data_location: "mixed"
data_location_note: "Caller numbers and message text pass through Twilio; call logs stay local."
first_to_break: "Twilio's account balance or 10DLC registration, after which messages are rejected at the carrier"
failure_signal: "silent"
problem: "When your phone rings and nobody answers, most callers just hang up and try the next business on the list. By the time you call back, the job is already gone."
fix: "Your phone system automatically texts back every caller within a minute, so they know you got it. If they reply, a real person takes over — the tool never books or promises anything on its own."
tools: ["n8n", "Twilio", "Fonoster", "Ollama", "Docker"]
tech: ["n8n", "Twilio", "Fonoster", "Ollama"]
repos:
  - name: "Fonoster"
    url: "https://github.com/fonoster/fonoster"
  - name: "n8n"
    url: "https://github.com/n8n-io/n8n"
  - name: "Ollama"
    url: "https://github.com/ollama/ollama"
categories: ["Customer service", "Email & SMS", "Appointments & booking", "Self-hosted", "n8n"]
source: "RXed AI News — https://rxed.ai"
---
# The missed-call save: text back before the customer calls your competitor

> An automatic reply within a minute of every unanswered call — not a $200-500/month answering service

## Before you start

- Your business number must sit with Twilio or be forwardable to it — a landline you cannot port will not work
- SMS sender registration where it is required: 10DLC in the US, an approved sender ID in parts of the EU
- n8n must be reachable from the internet so Twilio's webhook can deliver the missed-call event
- Someone who reads and answers the replies during business hours

## What breaks first

Twilio's account balance or 10DLC registration, after which messages are rejected at the carrier. Callers get nothing and you see nothing; keep auto-recharge on and alert on send failures.

An automatic text within a minute of every unanswered call, so the caller knows you got it before they dial the next name on Google — built on the phone system you may already have plus a box you own.

 

### The problem

 A trade, a garage, a salon: the phone rings while you're under a car or with a client, and it goes to nothing — no voicemail greeting most people bother leaving, no callback. Call-tracking vendors put the miss rate at anywhere from 60 to 85% for local businesses (treat the exact number as directional, not gospel — it's their marketing data, not a peer-reviewed study). What isn't in dispute: a caller who gets silence calls the next result down the list. Commercial "missed call text-back" services exist to fix exactly this, and they charge accordingly — roughly $25-100/month for the SMS layer alone, more if it comes bundled into a full "AI receptionist" at $200-500/month. The actual mechanism is simple: detect the miss, fire a text back inside a minute, let a human take it from there. That doesn't need a subscription, it needs one webhook and one workflow.

 

### The architecture

 
 [ Caller ] → dials your business number 
         ▼ 
 [ Twilio or self-hosted Fonoster + a SIP trunk ] 
         │  rings your real phone(s), times out unanswered 
         │  fires a webhook on no-answer / busy / after-hours 
         ▼ 
 [ n8n (self-hosted) — the text-back engine ] 
         ├─ checks it isn't the same number in the last 30 min 
         ├─ picks the open-hours or after-hours template 
         ├─ SMS back within ~60 seconds, booking link included 
         ├─ logs caller + timestamp to a sheet or your CRM 
         └─ pings staff on Telegram so a person takes the reply 
 
 A reply from the caller goes to a human. The workflow never books, quotes or promises anything on its own. 
 

 Same separation of concerns as the booking blueprint: the phone system owns call truth, n8n owns everything triggered by it. That split is what let the no-show reminder engine survive the Cal.com shake-up unscathed, and it does the same job here — swap the telephony layer later without touching the reply logic.

 

### Tool choices — and why

 Twilio is the default pick, and it isn't open source — it's the telecom layer, the same role an SMS provider played in the no-show reminder blueprint. A local number rents for about €1-2/month, an SMS costs roughly €0.03-0.09 in Western Europe (US: ~$0.008/segment), and Twilio's own "missed call" pattern — a ` ` with a timeout plus a status callback — is documented, boring, and exactly what half a dozen public n8n community templates already build on. No telecom expertise required, and it plugs straight into n8n's Twilio node.

 Fonoster (MIT, 8k stars, active — 6,110 commits, latest release Jan 2026) is the fully self-hosted alternative: an open-source Twilio-alternative you run yourself via Docker, built on Asterisk underneath. Be honest about what it saves you — it does not remove the need for a SIP trunk to actually reach the phone network, so you're not escaping telecom costs, you're escaping the Twilio markup and keeping call data off a third party's servers. Take this route only if you're comfortable with VoIP/SIP concepts; otherwise Twilio is the afternoon-not-a-project option.

 n8n (Sustainable Use License, free for internal business use, 198k stars, active) is the text-back engine, running on the same box as your other automations if you've already built one from this library — the no-show reminder engine, the lead pipeline, the quote follow-up. One VPS, many jobs, one bill.

 Ollama (MIT, widely used, active) is optional. The default reply is a template — reliable, free, zero hallucination risk. If you want the text to sound less robotic (referencing the time of day, whether they're a repeat caller), a small local model drafts one line for a human to glance at before it sends. Skip this entirely and the template-only version works fine; it's the reply speed that recovers the call, not the prose.

 Monthly cost. Software: €0 across all of it. Telecom: a Twilio number (~€1-2) plus SMS at your actual missed-call volume — 40 misses/month at ~€0.05 each is ~€2, so telecom lands around €3-10/month for most small operations. Hosting: €5-12/month for a VPS, or €0 extra if you already run n8n from another blueprint in this library. All-in for a business starting from scratch: roughly €6-20/month, against $200-500/month for the bundled commercial version.

 

### Setup outline

 1. Get a Twilio number (or point your existing business number's forwarding at a Twilio number) and verify A2P 10DLC registration if you're texting US numbers — required before your first business SMS goes out, and it takes a few days to clear. 
 2. In Twilio, set the voice webhook to ` ` your real phone(s) with a timeout (15-20 seconds is normal), and a status callback pointing at n8n for `no-answer`, `busy` and `failed`. 
 3. Build the n8n workflow: webhook trigger → dedupe check (skip if this number texted in the last 30 minutes) → business-hours branch → SMS send with a booking or callback link → log to a sheet → Telegram ping to staff. 
 4. Write two templates, not more: one for during business hours ("sorry we missed you, here's a link to grab a slot"), one for after hours ("we're closed, first thing tomorrow we'll call you back — or book here now"). Keep both under 160 characters so they're one SMS segment. 
 5. Wire the booking link to the no-show reminder engine's booking page if you've built it — the two blueprints share the same client, no reason to duplicate the calendar. 
 6. Test the actual failure path: call your own number from a phone that isn't in your contacts, let it ring out, confirm the text lands inside a minute. 
 7. Pilot two weeks on one line before pointing your main number at it.

 

### Pitfalls — the real ones

 Don't smuggle marketing into the reply. The caller rang you — replying about their call is a transactional message. The moment that text pushes a discount or a newsletter signup, it reads as marketing and the consent rules (TCPA in the US, ePrivacy/GDPR in the EU) get stricter. Keep the first text purely "we got your call." 
 Dedupe or you'll spam the same number. Someone calling three times in ten minutes because you're not picking up should get one text, not three. The 30-minute cooldown in step 3 is the whole fix — don't skip it. 
 A2P registration is not optional in the US. Send business SMS from an unregistered Twilio number and carriers will filter or block it silently — you'll think the workflow is broken when it's actually a compliance gate. 
 The webhook fires on "no answer," not on "actually missed." If a staff member picks up on a different line a second later, make sure your Twilio call flow doesn't also fire the no-answer branch — test multi-line setups carefully, this is where false text-backs come from. 
 Never let the workflow promise a slot it can't see. The text offers a link to book, it does not confirm an appointment — that confirmation only happens once the booking tool (not this workflow) records it. Overpromising here is worse than the missed call.

 

### Verified repos

 
 [Fonoster](https://github.com/fonoster/fonoster) — MIT, 8k stars, active (latest release Jan 2026) 
 [n8n](https://github.com/n8n-io/n8n) — Sustainable Use License (free self-hosted internal use), 198k stars, active (July 2026) 
 [Ollama](https://github.com/ollama/ollama) — MIT, widely used, active (July 2026) — optional, for the local-AI reply personalization step only
 

 
 Get the next blueprint as it publishes — free, practical, verified tooling only.

 [Subscribe](https://subscribe.rxed.ai) · Want this audited or extended? DM [@RXed_EU](https://x.com/RXed_EU)
