When to use it
Set up contact sync when caller records already live in your CRM and you want agents and the CRM working from the same data. It’s the right choice when you want to:- Greet callers by name. Synced contact fields are available to the agent as dynamic variables, so it knows who’s calling before the first word.
- Keep the CRM current without manual entry. Analysis results from each conversation write back to the CRM record.
- Keep an activity trail where your team works. Each call and chat can log to the CRM automatically.
qualified analysis field back to the CRM, so its follow-up workflows trigger from that field after every call — no one touches a record by hand.
If you only need the agent to look up or update CRM records, integration tools do that without sync.
Supported CRM platforms
Salesforce
Sync contacts and log call and chat activity as Salesforce Tasks.
HubSpot
Sync contacts and log call and chat activity to the HubSpot timeline.
Microsoft Dynamics 365
Sync contacts and log calls as Phone Call activities. Connect with OAuth and your environment URL.
GoHighLevel
Sync sub-account contacts and log activity as contact notes. Connect with an API key and Location ID.
Zoho CRM
Sync Contacts and log calls as Call records. Connect with one OAuth sign-in, on any Zoho data center.
How does the CRM integration work?
The integration has four parts, each configured separately.1. Contact sync (CRM to Retell)
Retell imports contacts from your CRM and keeps them current. Imported records appear on the Contacts page.- Phone number is the key used to match contacts between systems. It’s mapped by default and can’t be unmapped.
- Inbound sync mappings control which CRM fields are imported.
- See contact fields below for the built-in fields and the custom field types you can map.
Contacts are skipped when the mapped phone field is empty, or when its value can’t be parsed into a valid E.164 phone number. A contact that syncs but shows no name or custom fields usually means those fields aren’t mapped, not that the sync failed.
2. Post Call Extraction mapping (analysis to contacts)
After each call or chat, Retell can map Post Call Extraction results onto contact fields, building a richer profile as your agents have more conversations. Each mapping has an update mode. The dashboard labels these differently on the contact fields page:
You configure analysis data mappings per workspace, not per agent, so the same rules apply no matter which agent handled the conversation.
See CRM data mappings for the full data flow and how to write field descriptions so merges produce accurate combined values.
3. Outbound field sync (Retell to CRM)
Outbound sync mappings push contact field updates from Retell back to your CRM. When a contact’s fields change in Retell, whether manually or through analysis mapping, Retell writes the mapped fields to the matching CRM record. By default, outbound sync updates existing CRM records only and never creates or deletes contacts. Turn on Create new contacts in CRM on the Sync tab to let Retell create a new CRM record after a conversation when the matched contact isn’t linked to one yet. This toggle is off by default; deletion never happens either way. Unlike contact sync, this isn’t on a schedule. Retell pushes changes as they happen: right after a conversation ends, as part of applying its analysis results, or immediately when you edit a contact’s fields.4. Conversation activity logging (Retell to CRM)
With Log activities automatically enabled, Retell logs each call and chat to your CRM:- Salesforce — a Task record carrying the call duration, with the summary, conversation ID, from and to numbers, and disconnection reason in the description.
- HubSpot — a Call engagement, or a Communication object for chats, on the contact’s activity timeline.
- Microsoft Dynamics 365 — a completed Phone Call activity with the direction and duration for calls, or a Task for chats.
- GoHighLevel — a note on the contact with the conversation ID, the from and to numbers, and the summary.
- Zoho CRM — a Call record with the direction and duration for calls, or a completed Task for chats.
Retell logs activity only for contacts imported from the currently connected CRM. A call from a number that doesn’t match a synced contact produces no activity record, and neither do contacts Retell created on its own.
Set up a CRM integration
1
Connect your CRM
Open Integrations in the Retell Dashboard, select the Available tab, and pick your provider. Follow the provider guide for the credentials:
- Salesforce setup guide
- HubSpot setup guide
- Microsoft Dynamics 365 setup guide
- GoHighLevel setup guide
- Zoho CRM setup guide
2
Configure field mappings
After the connection test passes, select Set up contact sync. The dialog has two tabs: Import contacts (CRM to Retell) and Sync to [provider] (Retell to CRM). Phone number is mapped for you and stays locked.
3
Create custom fields
For CRM fields that don’t correspond to a default Retell field, create a custom field in Retell to hold the value. You can do this inline from the mapping dropdown.
4
Set up analysis data mappings (optional)
Map your Post Call or Post Chat Extraction fields to contact fields, choosing an update mode for each based on how you want data to accumulate.
5
Enable conversation activity logging (optional)
Turn on Log activities automatically on the Sync to [provider] tab to log each call and chat to your CRM.
6
Enable creating new contacts (optional)
Turn on Create new contacts in CRM on the same tab to have Retell create a CRM record after a conversation when the matched contact isn’t linked to one yet. It’s off by default.
7
Run the first sync
Trigger a manual sync to import your existing contacts. This is a full scan, so a large CRM takes a while. It picks up where it left off if it doesn’t finish in one pass.
You can connect several CRM accounts, but only one connection drives contact sync for your workspace at a time. The Contact sync toggle in a connection’s settings decides which one; turning it on for one connection takes sync over from the previous one.
Contact fields
Every Retell contact has four built-in fields:
Extend contacts with custom fields of type
string, number, boolean, date, datetime, or enum.
do_not_call isn’t mapped by default in either direction. Map it explicitly on both tabs if you want it to sync.
