Every Retell AI call and SMS chat in your Twenty CRM within seconds. Call or text a Person from a workflow or the AI chat.
Install ·
Full guide ·
Issues ·
MIT license
Teams that run voice and SMS agents on Retell AI and keep customers in Twenty usually glue the two together with an automation service: one more account, one more bill, and one more place where a call gets lost. Retell Sync is a Twenty app that talks to both APIs directly. Install it, paste your Retell key, and calls and chats arrive in Twenty as records, linked to the right Person and Opportunity.
A Retell call ends, and seconds later it is on the Person in Twenty, linked to her opportunity, with the summary and transcript on its own tab. (Made-up data on a local Twenty.)
| Sync | Act | Control |
|---|---|---|
| Calls and chats as Twenty records | Call a Person from a workflow | One settings tab, no URLs to copy |
| Summary, transcript, recording | Start an SMS chat with a Person | Resync any period on demand |
| Linked to Person and Opportunity | AI chat tools and a Retell skill | Do-not-call in sync both ways |
|
|
|
|
- Calls and chats as records: summary, transcript, recording link, sentiment, outcome, cost and your own post-call fields.
- Linked to your CRM: each call finds its Person by phone number and, when it can tell, its Opportunity.
- Call and text from Twenty: four actions (call person, send SMS, refresh call, set do-not-call), each a workflow step and an AI tool, plus a skill that teaches Twenty's AI to use them.
- Do-not-call in sync: a caller who asks not to be called again is flagged on their Person; a flag set in Twenty goes to Retell.
- Nothing lost: retries and out-of-order events are safe, one record per call, a filled field is never blanked.
sequenceDiagram
participant R as Retell AI
participant A as Retell Sync (Twenty app)
participant T as Twenty CRM
R->>A: Signed webhook: call_ended / call_analyzed
A->>A: Verify signature with your Retell key
A->>T: Upsert Retell Call (summary, transcript, recording)
A->>T: Link Person by phone, Opportunity by id or newest deal
loop Every few minutes
A->>R: List calls, chats and do-not-call contacts
A->>T: Fill gaps, reconcile do-not-call
end
T->>A: Workflow or AI chat: "Retell: call person"
A->>R: Create phone call with the Person's context
- Allow logic functions on your Twenty server (
LOGIC_FUNCTION_TYPE=LOCALorLAMBDA; production defaults toDISABLED). - Install the app from the Twenty marketplace: Settings > Applications > Marketplace, search "Retell Sync" (turn off
"Vetted only"; that filter shows only apps made by Twenty). The npm package is
twenty-retell-sync. - Paste your Retell key in Settings > Apps > Retell Sync for Twenty > Retell. Use the key with the Webhook badge.
- Tick your agents and press Set webhook on agents. The first sync loads the last 30 days.
Everything else (the Retell tab, do-not-call rules, opportunity linking, workflow recipes, limits) is in the full guide.
- Audio stays at Retell: Twenty stores only the recording link.
- SMS needs a US number with an approved A2P registration in Retell. Numbers bought in Retell call 15 countries.
- The AI chat is told to propose every call and SMS for approval. That is an instruction to the model, not a hard lock, so test calling workflows on one record first.
Requires Node 24 and Yarn 4. yarn twenty docker:start runs a local Twenty, yarn twenty apply syncs the app, yarn test:unit
runs the unit tests. The code map and project rules are in AGENTS.md.
An independent app by MikiDev Studio, released under the MIT license. Not affiliated with or endorsed by Retell AI or Twenty. Retell and Twenty are trademarks of their owners, used here only to name the services this app connects.





