It answers the phone around the clock and does six things: - books, moves and cancels appointments against your real opening hours, - answers questions from your approved FAQ only, - takes messages, - passes urgent calls to a person, - logs every call with a summary, - emails you a daily report.
The data lives in a Google Sheet you own. The logic lives in n8n workflows you own. There is no extra SaaS subscription.
What's in the box
| Path | What it is |
|---|---|
setup-page/index.html |
Step-by-step setup page: fills all five Config nodes for you, then a Test it button checks your n8n, sheet, secret and alerts from your browser |
workflows/01-tool-router.json |
Live-call tools: check_availability, book_appointment, cancel_appointment, answer_faq, take_message, escalate_to_human |
workflows/02-call-events.json |
Transfer requests, plus the end-of-call log (outcome, summary, recording, callback flag) for Calls and Contacts, with alerts |
workflows/03-daily-report.json |
6 PM email: calls, bookings, value, people to call back, tomorrow's bookings, unanswered questions |
workflows/04-calendar-mirror.json |
Optional: mirrors bookings into Google Calendar and removes cancelled ones |
workflows/05-error-alerts.json |
Slack and email alert if any workflow fails |
sheet/AI-Front-Desk-Template.xlsx |
The 7-tab data sheet (Services, FAQ, Appointments, Calls, Contacts, Messages, FAQ_Gaps) |
vapi/ |
System prompt, tool definitions, assistant template, config example |
scripts/setup_vapi.py |
One command creates the tools and the assistant in your Vapi account |
retell/ |
The same six tools as Retell custom functions, plus setup notes |
scripts/simulate_call.py |
Lets you test every tool and call event before buying a phone number |
tests/ |
The test suites we ship with, which you can run yourself (see TEST-REPORT.md) |
source/core.js |
The readable source of the logic embedded in the Code nodes |
How it stays safe
- No made-up times or answers. Times come from your sheet and hours. Answers come from your FAQ. An unknown question is logged to FAQ_Gaps instead of being guessed.
- "Booked" means the row was saved. The slot is re-checked when the booking is written. If Google Sheets fails, the caller is not told "booked" and you get an alert.
- Safe with real phone behaviour.
- Retried tool calls don't create duplicate bookings.
- Two bookings in the same request can't take one slot.
- Cancelling only works from the number that made the booking.
- Daylight-saving changes and holidays are handled.
- Missed opportunities are surfaced. A call that ended with no booking, answer or message is flagged for a callback and alerted.
- Locked down. The webhooks refuse requests without your shared secret, and refuse to run with the default secret.
- Caller words are saved as plain text. Every write to your sheet stores values exactly as given. A message that starts with
=stays text instead of becoming a formula, and+1 555…phone numbers stay phone numbers instead of turning into plain numbers.
What you need
- n8n reachable at a public HTTPS URL: n8n Cloud, or self-hosted behind HTTPS. Automated tests run on n8n 2.44.6; also live-checked on n8n Cloud 2.44.7.
- A Google account for Sheets (Calendar is optional).
- Email via SMTP, and/or a Slack incoming webhook.
- A voice platform account: Vapi (recommended;
setup_vapi.pyautomates it) or Retell. You pay the platform per minute. See SETUP-GUIDE.md, section 0.
Quick setup
Fastest path: the step-by-step setup page. Open setup-page/index.html from this download in Chrome, Edge, Firefox or Safari (the same page is on the product page). It takes about 15 minutes to reach a test booking in your own sheet, plus about 10 minutes for the voice agent and a free test call. The page fills in all five Config nodes for you. Its Test it button sends test calls from your browser to your own n8n and tells you in plain words what to fix. Nothing is sent to us.
By hand, the full setup takes about 60 to 90 minutes the first time. SETUP-GUIDE.md walks through every click. The short version:
1. Upload sheet/AI-Front-Desk-Template.xlsx to Google Drive and open it as a Google Sheet. Fill in the Services and FAQ tabs.
2. In n8n, import the five files in workflows/. Fill in each Config node. Pick a long random shared secret.
3. Connect your Google Sheets, SMTP and (optional) Slack and Calendar logins. Set workflow 05 as the error workflow of the others. Publish them.
4. Run python3 scripts/simulate_call.py to test every tool before you buy a phone number.
5. Create the voice agent: run python3 scripts/setup_vapi.py (Vapi), or follow retell/ (Retell). Then buy a number on that platform and attach the agent.
6. Make the 10 test calls in SETUP-GUIDE.md section 5 before you go live.
AI disclosure and limits
- The voice agent is an AI model run by your voice platform (Vapi or Retell). It can mishear or misunderstand callers. Bookings and answers are checked against your sheet, but read the daily report and call logs, especially in the first week.
- Callers must be told they are speaking with an AI and that the call is recorded. The prompt does this; keep it.
- Not for medical, healthcare or emergency use.
- Tested: 38/38 unit tests, 38/38 end-to-end checks in real n8n with a mocked Sheets, Calendar, Slack and SMTP, and 10/10 setup-script tests against a fake Vapi API (TEST-REPORT.md).
- Not tested by us: a full live voice call end to end, Retell setup, or call quality on your phone line. Run the 10-call acceptance test before going live.
- Your voice platform, phone number and n8n plan are billed by those companies, not by us.
Support
Self-serve: this README, SETUP-GUIDE.md and TROUBLESHOOTING.md (fixes and FAQ). There is no call, chat or email support. Fixes ship as new versions at your download link; CHANGELOG.md lists every change.
Start with setup-page/index.html, or SETUP-GUIDE.md (or the print-ready SETUP-GUIDE.pdf). To show it to someone, use DEMO-SCRIPT.md.