Integrations
Retell Workflows vs. n8n and Zapier: Where Your Voice Agent's CRM Sync Should Live
Short answer: Move the work that happens right around a call into Retell Workflows: looking up the caller before the agent speaks, logging the outcome, creating a gated follow-up task, and sending a confirmation text. Keep anything that spans several systems, needs retries, or starts outside a call in n8n or Zapier. For most service businesses, the right setup is both.
Retell launched Workflows on September 1, 2026, pitched as a way to "cut the Zapier or n8n layer" around your voice agent. We build exactly that layer in n8n for Retell agents, so we read the docs line by line. Here's our evaluation.
What is Retell Workflows?
Workflows runs functions outside the conversation. Pre-call functions run before the agent speaks, so it starts the call already knowing who's on the line. Post-call functions run after the call ends, so your systems get updated without anyone touching them (Retell docs).
Each slot accepts four kinds of function:
- Integration tools from connected providers: HubSpot, Salesforce, Dynamics 365, GoHighLevel, Zoho CRM, Zendesk, Calendly and Cal.com
- Custom functions: an HTTP request to any endpoint you choose
- Code: JavaScript that runs in Retell's sandbox
- SMS: a text written by the AI from the transcript (post-call only, voice agents only)
Functions with no dependencies run at the same time. A function that needs another's output waits for it. Post-call functions can carry an "only when" gate, so a task is only created when a call actually needs one (docs).
On September 23, Retell also added texting to its agents: SMS steps inside voice flows and standalone text agents, sent from your existing Retell number with no separate SMS provider.
What are the limits you need to design around?
These numbers decide what fits in Retell and what doesn't. All are from Retell's Workflows docs, stated as of August 2026:
- Pre-call time budget: 1 minute for inbound and web calls; 5 minutes for outbound, before Retell dials. If a lookup runs late, the call starts anyway. The result still reaches the agent, but too late for the opening line.
- Post-call: a hard 5-minute cap. Anything unfinished is cancelled.
- Size: at most 15 functions per slot, and chains at most 4 deep.
- Response size: capped at 30,000 characters for integration tools and 15,000 for custom functions and code.
- Dashboard only: Workflow functions aren't part of Retell's public API, so you can't set them up with create-agent or update-agent calls.
- Failures: a failed function marks everything that depends on it as skipped, while independent branches keep going. We didn't find a built-in retry or queue in the docs.
That last point is the big one for us. In n8n, when a CRM write fails at 9 p.m., we retry it, queue it, and alert someone. Per the docs, a failed Retell post-call write is skipped, and you'd see it in the call transcript.
What belongs in Retell Workflows, and what stays in n8n or Zapier?
| Job | Retell Workflows | n8n / Zapier |
|---|---|---|
| Greet a known caller by name (CRM lookup on caller ID) | ✅ Built for this | Works, but adds a network round trip before the greeting |
| Load open tickets or the next booking before the call | ✅ If it's in a supported CRM, Zendesk, Cal.com or Calendly | ✅ For other systems |
| Log the call summary to the CRM timeline | ✅ Gated on a summary existing | ✅ |
| Create a follow-up task only when needed | ✅ "Only when" gate on extraction fields | ✅ |
| Text a confirmation after a booking | ✅ Post-call SMS step | ✅ |
| Sync one customer across GoHighLevel, Jobber and QuickBooks | ❌ No native QuickBooks or Jobber tool | ✅ This is n8n's job |
| Retries, queues and failure alerts | ❌ Not documented; failures are skipped | ✅ |
| Opt-out and consent sync across every texting tool | ❌ Only covers Retell's own sends | ✅ |
| Work triggered by forms, invoices or job status, not calls | ❌ Runs only around calls and chats | ✅ |
| Integration config in version control or deployed by API | ❌ Dashboard only | ✅ |
| Jobs that can run longer than 5 minutes | ❌ Hard cap | ✅ |
How we've built this in n8n, and what changes now
Our Retell builds send call events by webhook into n8n. n8n looks up the contact, creates or updates the record, books or confirms the appointment, and pushes the outcome to every system that needs it.
Retell's own launch post describes the pain we design around. One customer's sync "missed often enough that live callers… kept getting greeted like strangers." Another paid a consultancy to turn one call into three separate CRM writes (Retell). Those are exactly the points where a slow outside hop hurts most, right before the agent speaks.
Here's our evaluation:
The pre-call lookup should move into Retell. It's the one step where speed decides how the call opens. Running it inside Retell's own engine removes a network hop at the worst possible moment. If your CRM is HubSpot, Salesforce, GoHighLevel, Zoho or Dynamics 365, there's no reason to route that lookup through n8n.
Simple, single-system write-backs can move too. Log the summary, create a gated task, text the confirmation. Retell's gates, plus post-call variables like {{call_summary}}, {{call_successful}} and your custom extraction fields, cover what we usually build in n8n for one CRM.
Anything that touches more than one system stays in n8n. A typical home-service business runs a CRM, a field-service tool and accounting software. Keeping a customer consistent across GoHighLevel, QuickBooks and Jobber means deduplication, field mapping, retries and an audit trail. Retell doesn't natively connect to QuickBooks or Jobber, and it isn't built to own that logic.
Our hybrid pattern: Retell handles the in-call lookup and a fast post-call log. Then one post-call custom function sends the full outcome to an n8n webhook, which does the multi-system sync with retries. You get Retell's speed where callers can hear it and n8n's reliability where your books depend on it.
Consent stays centralized. Retell's texting runs on its own numbers. If you also text from your CRM or Twilio, opt-outs still need to sync everywhere. We covered that wiring in our post on the FCC's new opt-out rules.
Decision checklist: should this step move into Retell?
Move the step into Retell Workflows if all of these are true:
- [ ] It runs right before or right after a call
- [ ] It touches one system, and that system is on Retell's integration list (or is a simple HTTP call)
- [ ] A skipped run is acceptable, or you'll catch it in call history
- [ ] It finishes well inside the time budget (1 minute pre-call inbound, 5 minutes post-call)
- [ ] You're fine managing it in the dashboard instead of in code
Keep it in n8n or Zapier if any of these are true:
- [ ] It writes to more than one system, or to QuickBooks, Jobber or another tool Retell doesn't support natively
- [ ] A failure must be retried or alerted
- [ ] It's triggered by something other than a call
- [ ] It handles consent or opt-outs across tools
- [ ] You need versioned, API-deployed configuration
Migrating an existing build? Move the pre-call lookup first, run both paths in parallel for a week, and compare what lands in the CRM. Then decide on write-backs.
Get your voice agent's integrations right
The agent's voice gets the attention. The plumbing decides whether the call turns into a booked, billed job. We set up Retell agents and the integration layer behind them, and we'll tell you plainly which parts belong where.
Book an AI systems assessment with Wrk Less and we'll map your current call-to-CRM flow and show you what to move, keep or fix.
Questions people ask
Does Retell Workflows replace n8n or Zapier completely?
No. It replaces the slice of automation that runs immediately before and after a call inside one supported system. Multi-app syncing, retries, failure alerts, consent handling across texting tools, and automations started by forms or invoices still need n8n or Zapier. Most service businesses end up running both, each doing what it does best.
Which CRMs can Retell Workflows connect to natively?
Retell's documentation lists HubSpot, Salesforce, Microsoft Dynamics 365, GoHighLevel and Zoho CRM, plus Zendesk for support tickets and Calendly or Cal.com for scheduling. Anything else can be reached with a custom HTTP function or a small JavaScript code step. QuickBooks and Jobber are not on the native list.
Will a slow CRM lookup make callers wait in silence?
Only briefly. Inbound and web calls wait up to one minute for pre-call functions; then the call connects anyway, and late results still reach the agent, just not its greeting. Outbound calls get five minutes before dialing, so nobody hears the delay. Running lookups in parallel keeps the wait short.
What happens when a Retell post-call function fails?
Retell marks that function unsuccessful and skips every function that depends on it, while unrelated branches keep running. The call history shows the arguments and the error so you can diagnose it. Retell's documentation does not describe a retry queue, so critical writes like invoices belong in n8n.
Can I set up Retell Workflows through the API?
Not yet. As of August 2026, Retell's documentation says workflow functions are configured only in the dashboard and are not part of the public API used by create-agent and update-agent. Teams that deploy agents from code or keep integration configuration in version control should plan around that.