Send an enquiry. Your phone rings before you put it down.
Fill in the form as a homeowner would. An AI model checks the enquiry against the builder's rules, and if it fits, an AI voice agent calls you, answers questions and books a free site visit into the calendar. Every step shows up on the live dashboard as it happens.
Northline Homes is a made-up builder for this demo. The calling agent says up front that it is an AI. Use your own number; it is stored privately and only shown masked.
One workflow, five steps, every step logged
This is a clean rebuild of a lead-to-booking workflow I run in production. The original is under NDA, so this version uses a fictional builder, but the architecture, guard rails and evaluation approach are the same.
- Web form · Facebook Lead Ads
Capture
The enquiry posts to an n8n webhook. Input is validated server-side and the phone number goes to a private table.
- LLM via forced function call
Qualify
The model applies written business rules and returns schema-shaped JSON, quoting the enquiry as evidence for every verdict.
- Vapi outbound call
Call
Qualified leads are called within seconds. The agent opens with context from the enquiry and discloses that it is an AI.
- n8n tool webhooks · Postgres
Book
Mid-call, the agent checks real availability and books a slot. A unique index stops two calls taking the same time.
- Supabase Realtime
Report
The call summary, outcome, transcript and recording land on the dashboard, with a timeline of every step.
Tested end to end
38 automated checks run the real n8n workflows against a real Postgres: validation, the private phone table, failed calls, double-booking races and every call outcome.
Evaluated, not eyeballed
A fixed set of test enquiries grades the qualifier on its decision, priority, flags and whether every quoted piece of evidence actually appears in the enquiry. Results post to the dashboard.
Safe to hand over
Secrets live in n8n credentials, the public site can only read, webhooks check a shared secret, and each workflow carries notes for the next person.