The architecture behind our AI phone agents. Five systems, two key connections, fully templatized. Every new client is the same setup with different data plugged in - which means this is trainable. Hire someone, walk them through it twice, they can run it.
The orchestration layer. Retell brings the LLM, voice provider, and telephony together into one platform. Everything else plugs into it.
Retell is the platform that makes the voice provider and the LLM interchangeable. Swap Claude for GPT or Gemini without rebuilding the agent. Swap ElevenLabs for Fish AI without touching the conversation logic. The agent, the flow, the prompts - all stay the same regardless of what powers it underneath. It also has a built-in knowledge base, so we upload business-specific info and the agent can reference it during calls. Every agent we build is a duplicate of our existing template agent - clone it, rewrite the prompt with the onboarding data, attach a knowledge base, done.
Currently Claude 4.5 Sonnet (cascading). Swappable to GPT, Gemini, or any supported model. The conversation flow does not change when the model changes.
Currently ElevenLabs. Swappable to Fish AI, Play.ht, Cartesia, or Retell's own voices. Pick a voice per client - different businesses can sound different.
Phone numbers, inbound/outbound calling, call transfers, DTMF handling. All built into Retell. Buy a number, assign it to an agent, it is live.
Visual node editor for the call logic. Nodes connected by transition conditions. We take the onboarding info, write the prompt, build the flow. Every new agent is a duplicate of our template with the client's data swapped in.
Built into Retell. Upload documents, SOPs, service info - the agent can reference it during calls without it being hardcoded in the prompt. Add or update knowledge without rebuilding the flow.
Retell handles the call. n8n handles everything that happens before, during, and after it.
Workflow automation platform. Visual node editor. 4 workflows per client make the agent work on the backend: CRM lookup (who is calling), new client add (add to sheet mid-call), MCP server (bridge between Retell and the sheet), and EOC report (post-call logging, spam filter, notifications). All 4 are duplicated from templates for each new client.
The CRM. One spreadsheet per client, duplicated from a template. 4 tabs - contacts, call log, employees, work notes. n8n reads and writes to it in real time. The client can view their own data anytime.
SMS delivery. n8n triggers a text to the business owner after every call with a summary. One shared Twilio number across all clients.
Email delivery for employee work note reports. Branded HTML templates. Triggered by n8n when the post-call analysis detects an employee work note.
Every component is a duplicate. The agent, the sheet, all 4 workflows - they are all cloned from templates. New client setup is: duplicate everything, swap in the client's data from the onboarding call, connect two URLs, test. Retell and n8n are both visual editors. Someone could learn the full deployment process in a week and handle new client builds independently from there.
Two connections per client. MCP handles mid-call data, webhook handles post-call processing.
Handles the call, runs the flow, uses the LLM + voice
Exposes CRM tools to Retell
Phone number to contact match
Writes new callers to sheet
Caller ID, Call Log, Employees, Notes
Logs call, spam filter, routes notifications
SMS to owner
Email reports
MCP URL - how Retell talks to n8n during a call to look up callers. Webhook URL - how Retell tells n8n after a call ends so it can log and notify. Set up the spreadsheet first, then n8n, then Retell. Each piece plugs into the next.
What happens from ring to notification.
Caller's phone number is checked against the Google Sheet. Returns: employee, existing client, or new caller.
Employee -> work note flow (9-question checklist). Existing client -> greet by name, route by department. New caller -> collect name, MCP writes to sheet, then route.
Cold transfer to the right team member. After-hours check via time-based branch node. Emergency calls bypass hours and go direct.
Retell sends the transcript, structured outputs, and recording URL. n8n logs to sheet, runs spam filter, sends SMS via Twilio. Employee work notes trigger a formatted email via Gmail instead.
AI interviews the client, Claude extracts structured data from the transcript, that data becomes the agent's prompt and knowledge base.
Outbound call, 20 min AI interview
Webhook fires, sends transcript to Claude API
Extracts structured JSON from conversation
Extraction saved, human reviews
Data feeds into the new agent's prompt + KB
Gets their contact info into the system
Location, years, service area, what they do
For each service: "If someone calls about this, what would you ask them before sending someone out?" This is what makes the agent actually smart.
Who handles what, phone numbers, after-hours behavior, emergency contacts
"What would you tell a new receptionist that is not in any manual?" Pet peeves, words to never say, industry jargon, standard answers to common questions
Duplicate everything, feed in the onboarding data, connect the URLs. We have a template for the prompt - paste in the new info, create the knowledge base, review it, ship it.
Copy template, add contacts
Copy 4 workflows, point at the sheet
Copy template agent, plug in their info
Call the number, make sure it works
Copy the template. 4 tabs: Caller ID (contacts database - name, phone, employee Y/N), Call Log (fills automatically with every call), Employees (names, phones, emails, what they handle, notification settings), Employee Notes (work reports, fills automatically).
Grab the spreadsheet ID from the URL - you need it for the n8n workflows.
CRM Lookup - checks who is calling by searching the spreadsheet. New Client - adds new callers to the spreadsheet. MCP Server - the bridge that lets Retell use those two tools during a call. EOC Report - runs after every call to log it, filter spam, and send notifications.
Copy each template, swap in the new spreadsheet ID, activate. Get the MCP URL and webhook URL - those go into Retell.
Copy the template agent. Update the conversation flow with the client's business name, team members and phone numbers, department routing, emergency contact, and any words to never say.
Paste the MCP URL (so the agent can look up callers during calls) and the webhook URL (so calls get logged after they end). Buy a phone number and assign it.
Call the number yourself. Test as a new caller (should ask your name, add you to the sheet). Call again (should recognize you). Ask for a transfer (should go to the right person). Check the spreadsheet for new rows. Check your phone for the text notification. Fix anything that sounds off.
Spreadsheet first (because n8n needs the sheet ID). n8n second (because Retell needs the MCP URL and webhook URL). Retell third (because it needs both URLs from n8n). Each piece plugs into the next one.