Work  /  Voice & Phone  /  10  ·  Home services & construction

AI Front Desk — Missed Calls, After Hours and Booking

Home services · Clinics · Salons · Dental · Legal

Built — counted from the workflow JSON in the repository; not yet run against live accounts

64nodes
5workflows
12sticky notes
71connections
A reception desk with a bell and a ringing phone under a night sky, and a calendar with a booking.

The problem

Every missed call is a lead that was already paid for, and the caller reaches the next result in under a minute.

A service business misses a large share of inbound calls while staff are on a job, at lunch or gone for the day. An answering service costs by the minute, cannot see the calendar and books nothing.

How it runs

  1. Ring the real line first

    01 / 07 Workflow 1 of 5 · Inbound Call Router · 10 nodes

    Twilio reaches the system only after the business’s own line has rung out — a person always gets first refusal.

  2. Decide the hours once

    02 / 07 Workflow 1 of 5 · Inbound Call Router · 10 nodes

    Whether the business is open is decided in code and handed to the agent as a fact, never reasoned about.

  3. Answer, within limits

    03 / 07 Workflow 2 of 5 · Agent Tools & Guardrails · 17 nodes

    The voice agent takes the call; everything it may not decide alone sits behind a tool webhook it has to call.

  4. Price from a table

    04 / 07 Workflow 2 of 5 · Agent Tools & Guardrails · 17 nodes

    A price comes from a configured table, or the agent says out loud that it will not guess.

  5. Escalate on six triggers

    05 / 07 Workflow 2 of 5 · Agent Tools & Guardrails · 17 nodes

    Gas, flood, electrical, a vulnerable household, a complaint, or asking for a person: any one hands the call to a human.

  6. Confirm, re-check, book

    06 / 07 Workflow 3 of 5 · Availability & Booking · 15 nodes

    A slot, an address, a name and a real phone number — then the slot is checked again, and only then is the job created.

  7. Recover and record

    07 / 07 Workflow 4 of 5 · Missed Call Recovery · 9 nodes

    A caller who hangs up gets a booking link by SMS inside a minute, and every call is summarised into the CRM.

The five workflows, as built

Every node with its icon, as on the n8n canvasstarts a runa model or a parser, wired into the node above itHover a node for its name and type

  • 01Inbound Call Router

    10 nodes · 10 connections · 2 notes

    Twilio Call Status Webhook · WebhookTwilio CallStatus WebhookRead Dial Outcome · CodeRead Dial OutcomeDid A Human Answer? · IfDid A HumanAnswer?Log Answered By Human · Google SheetsLog Answered ByHumanRespond — Nothing To Do · Respond to WebhookRespond — NothingTo DoInside Working Hours? · IfInside WorkingHours?Build TwiML — Hand To Agent · CodeBuild TwiML —Hand To AgentBuild TwiML — Out Of Hours · CodeBuild TwiML — OutOf HoursOpen Call Record · Google SheetsOpen Call RecordReturn TwiML To Twilio · Respond to WebhookReturn TwiML ToTwilio

    overflow detection, hours, the call handed on

  • 02Agent Tools & Guardrails

    17 nodes · 22 connections · 3 notes

    Agent Tool Webhook · WebhookAgent Tool WebhookWhich Tool? · SwitchWhich Tool?Look Up Price In Table · CodeLook Up Price InTableService In Price Table? · IfService In PriceTable?Return Price · Edit FieldsReturn PriceRefuse — Not In Table · Edit FieldsRefuse — Not InTableCheck Escalation Triggers · CodeCheck EscalationTriggersEscalation Triggered? · IfEscalationTriggered?Alert Human Now · SlackAlert Human NowReturn Handoff Instruction · Edit FieldsReturn HandoffInstructionReturn No Escalation · Edit FieldsReturn NoEscalationCall Availability Workflow · Execute WorkflowCall AvailabilityWorkflowReturn Slots · Edit FieldsReturn SlotsCall Booking Workflow · Execute WorkflowCall BookingWorkflowReturn Booking Result · Edit FieldsReturn Unknown Tool · Edit FieldsReturn UnknownToolRespond To Agent · Respond to WebhookRespond To Agent

    the price table, the escalation list, the tool router

  • 03Availability & Booking

    15 nodes · 17 connections · 3 notes

    Receive Tool Call · When Executed by Another WorkflowReceive Tool CallAvailability Or Booking? · IfAvailability OrBooking?Fetch Next 7 Days From Field CRM · HTTP RequestFetch Next 7 DaysFrom Field CRMBuild Real Two-Hour Slots · CodeBuild RealTwo-Hour SlotsPhrase Slots For Speech · CodePhrase Slots ForSpeechCommitment Check · CodeCommitment CheckEverything Confirmed? · IfEverythingConfirmed?Return — Not Enough To Book · Edit FieldsReturn — NotEnough To BookRe-Check Slot Still Free · HTTP RequestRe-Check SlotStill FreeSlot Still Free? · IfSlot Still Free?Return — Slot Just Taken · Edit FieldsReturn — SlotJust TakenCreate Job In Field CRM · HTTP RequestCreate Job InField CRMRecord Booking · Google SheetsRecord BookingReturn Booking Confirmed · Edit FieldsReturn BookingConfirmedReturn To Caller · No OperationReturn To Caller

    real slots, the commitment gate, the re-check

  • 04Missed Call Recovery

    9 nodes · 10 connections · 2 notes

    Every Minute · Schedule TriggerEvery MinuteRead Unrecovered Calls · Google SheetsRead UnrecoveredCallsFilter — Ended, Not Booked, Not Texted · CodeFilter — Ended,Not Booked, Not…Anything To Recover? · IfAnything ToRecover?Nothing To Recover · No OperationNothing ToRecoverOne At A Time · Loop Over ItemsOne At A TimeBuild Booking Link · CodeBuild BookingLinkSend Recovery SMS · TwilioSend Recovery SMSMark Texted · Google SheetsMark Texted

    a booking link by SMS, inside a minute

  • 05Post-Call Write-Back

    13 nodes · 12 connections · 2 notes

    Post-Call Webhook · WebhookPost-Call WebhookVerify Signature · CodeVerify SignatureSignature Valid? · IfSignature Valid?Refuse Unsigned · Respond to WebhookRefuse UnsignedAssemble Call Record · CodeAssemble CallRecordSummarise The Call · Basic LLM ChainSummarise The CallSummary Model · OpenAI Chat ModelSummary Schema (Locked) · Structured Output ParserSummary Schema(Locked)Attach Summary · CodeAttach SummaryWrite To CRM · HTTP RequestWrite To CRMUpdate Call Row · Google SheetsUpdate Call RowPost Summary To Slack · SlackPost Summary ToSlackAcknowledge · Respond to WebhookAcknowledge

    signed webhook, summary, CRM

64 executing nodes, by type

Code 13Edit Fields 10If 9Google Sheets 6Respond to Webhook 5HTTP Request 4Webhook 3Slack 2Other 12

The gates, 10 If and Switch nodes, decide whether anything happens next: a countable part of the system, not a claim about it. The 12 sticky notes carry the reasoning on the canvas, at the point it applies.

The guards, and what each one prevents

HoverTap a card to read what it prevents.

  • The agent is the overflow, never the front door

    Twilio reaches the workflow only as the dial action URL, after the human line has finished ringing; a call a person answered exits at once.

  • Hours travel as a boolean

    A model that can reason about the time can reason its way into a Sunday appointment. Out of hours it still answers, with a link.

  • A price from the table, or none

    A prompt saying “do not quote prices you are unsure of” is a request; a lookup that returns a refusal is a control.

  • Six triggers, every turn, fixed words

    Matched against the running transcript, not left to the model to notice — and answered with fixed wording, because a gas call is the worst moment to improvise a handoff.

  • Four confirmations, then a re-check

    Without the gate the agent books on “yeah, maybe Tuesday”. The slot was free when offered; two minutes later it may not be.

  • If it was not said, it stays empty

    The summariser writes only what is in the transcript. An address guessed from an area code looks exactly as confident as one the caller gave.

Limits, stated plainly

  • Built, not yet deployed. The five workflows import clean and every connection resolves; no real call has flowed through them end to end.
  • The voice agent itself — its prompt, voice and turn-taking — is configured in the vendor’s console. These workflows are everything around it: the routing, the tools and the write-back.
  • The field-service CRM is Housecall Pro. Jobber or ServiceTitan means rewriting the booking workflow, and the slot builder assumes one shared calendar.
  • There is no call-recording consent announcement yet. Two-party-consent jurisdictions need one before it goes live.

Built with

  • n8n
  • Twilio
  • ElevenLabs
  • Housecall Pro
  • OpenAI
  • Google Sheets
  • Slack