Skip to main content
Retell’s CRM integration provides a bidirectional sync between your CRM and Retell. Import contacts, enrich them with post-call analysis data, and push conversation activity back to your CRM — all automatically.

Supported CRM Platforms

Salesforce

Sync contacts and log call/chat activity as Salesforce Tasks.

HubSpot

Sync contacts and log call/chat activity to the HubSpot timeline.

How It Works

The CRM integration centers around three core capabilities:

1. Contact Sync (CRM to Retell)

Retell automatically imports contacts from your CRM and keeps them in sync.
  • Phone number is the primary key used to match contacts between systems
  • You configure inbound sync mappings to control which CRM fields map to Retell contact fields
  • Default contact fields include phone_number, first_name, last_name, and do_not_call
  • You can create custom fields (string, number, boolean, date, datetime, enum) to capture additional data from your CRM

2. Post-Call Analysis Mapping (Retell to Contacts)

After each call or chat completes, Retell can automatically map post-call analysis results to contact fields. This builds a rich profile over time as your agents have more conversations. Each mapping supports three update modes:
Update ModeBehavior
OverwriteAlways replace the existing value with the new analysis result
Fill if emptyOnly update the field if it currently has no value
MergeIntelligently combine the existing and new values using LLM (0.005/merge)
See CRM Data Mappings for a detailed explanation of the data flow.

3. Conversation Activity Logging (Retell to CRM)

When enabled, Retell logs each call and chat as an activity in your CRM:
  • Salesforce: Creates Task records with call duration, direction, and summary
  • HubSpot: Creates Call or Communication objects on the contact’s activity timeline
Activity logging includes call metadata (direction, duration, phone numbers) and the conversation summary.

4. Outbound Field Sync (Retell to CRM)

You can configure outbound sync mappings to push contact field updates from Retell back to your CRM. When a contact’s fields are updated in Retell (either manually or via analysis data mappings), the mapped fields are synced to the corresponding CRM record.

Setting Up a CRM Integration

1

Connect your CRM

Navigate to the Integrations section in the Retell Dashboard and select your CRM provider. Follow the provider-specific setup guide:
2

Configure field mappings

Set up inbound sync mappings (CRM to Retell) and outbound sync mappings (Retell to CRM). The phone number field is statically mapped in the CRM.
3

Create custom fields

If your CRM has fields that don’t map to Retell’s default contact fields, create custom fields in Retell to hold that data.
4

Set up analysis data mappings (optional)

Map your post-call/chat analysis fields to contact fields. Choose the appropriate update mode for each mapping based on how you want data to accumulate over time.Analysis data mappings are configured at the organization level, not per agent. This means the same mapping rules apply regardless of which agent handled the conversation. As long as the agent’s post-call analysis produces a field with the mapped name, the value will be written to the contact.
5

Enable conversation activity logging (optional)

Turn on activity sync to log each call and chat to your CRM. This creates activity records associated with the matched contact.
6

Run initial sync

Trigger a manual sync to import your existing CRM contacts. Subsequent syncs run automatically every 5 minutes.

Contact Fields

Every Retell contact has four built-in fields:
FieldTypeDescription
phone_numberstringPrimary identifier for matching contacts across systems
first_namestringContact’s first name
last_namestringContact’s last name
do_not_callbooleanThis does NOT prevent outbound calls to this contact; it is only used for filtering purposes
You can extend contacts with custom fields of the following types: string, number, boolean, date, datetime, and enum.

Using Contact Data in Agents

Contact fields are automatically available as dynamic variables in your agent prompts. When a call connects to a known contact (matched by phone number), all mapped contact fields are injected into the agent’s context. This lets your agent personalize conversations using CRM data like the contact’s name, account status, or previous interaction history. See Dynamic Variables to learn how to reference contact fields in your agent prompt.