Skip to main content
Contact sync imports your Zoho Contacts into Retell, writes post-call analysis results back to their fields, and logs each call as a Call record on the contact’s timeline. This page covers the Zoho-specific behavior; CRM integrations explains the four data flows all CRM providers share. Contact sync requires a connected Zoho org. Integration tools work without it — see Zoho agent functions.

Required permissions

Sync runs as the authorizing Zoho user, whose profile needs:
  • View on Contacts, including every field you import.
  • Edit on Contacts for outbound sync, and Create if you turn on creating new contacts in Zoho.
  • Create on Calls and Tasks for activity logging.
  • Access to each mapped field. Zoho reports field permissions per user, so a field the authorizing user can’t read or edit is skipped rather than synced.
A missing permission doesn’t flag the connection; that field or feature silently stops syncing.

Set up contact sync

After the connection test passes, click Set up contact sync to open the field mapping dialog, then map the Zoho fields you want to import and the Retell fields you want to write back. For a connection made earlier, the same dialog opens from the Connected tab: open the connection’s settings and click Set up contact sync. Retell pre-fills one mapping in each direction: Zoho Phone to Retell phone_number. Phone number is how contacts are matched between the two systems, so it stays mapped and can’t be removed. If the numbers you call live in a different field, such as Mobile, change the external field on both tabs. See CRM data mappings for how to map the rest, create custom fields, and choose update modes. To log conversations to Zoho, turn on Log activities automatically on the Sync to Zoho CRM tab.

Which Zoho fields can you map?

The field pickers read your Zoho modules live, so custom fields appear beside the standard ones. Retell maps the Zoho field types it can round-trip as plain values: Every other type is left out because it doesn’t round-trip as a single flat value: lookup, ownerlookup, multiselectpicklist, formula, subform, and fileupload.
Inbound sync reads at most 49 mapped fields (as of August 2026), a cap Zoho’s API sets on how many fields one read can request. Mapping a 50th on the Import contacts tab fails the sync rather than dropping a field quietly.

Verify it worked

  • Open Contacts. After the first sync, Zoho Contacts appear with correctly formatted phone numbers and your mapped fields populated.
  • The first sync is a full scan of every Contact in the module, read 200 at a time, so a large org takes a while. After that, Retell polls every 5 minutes (as of August 2026) and asks Zoho only for contacts modified since the last run.
Contacts with no value in the mapped phone field are excluded from the sync entirely, as are contacts whose number can’t be parsed into a valid E.164 number.

How are conversations logged in Zoho CRM?

A call becomes a Call record linked to the Contact, carrying the call type (Inbound or Outbound), the start time, the call duration, and a description holding the call ID, the from and to numbers, the disconnection reason, and the summary. A chat becomes a Task with status Completed, whose description holds the chat ID, the from and to numbers, and the summary. Zoho has no chat activity type, so a Task is the closest equivalent. Both attach to the Contact that Retell matched by phone number, through the record’s Who_Id field.

Troubleshooting

Activity logging needs Log activities automatically enabled on the Sync to Zoho CRM tab, a Retell contact that was imported from this connection, and a profile that can create Calls and Tasks. A call from a number that doesn’t match a synced contact is never logged.
You’re likely past the 49-field cap on the Import contacts tab. Retell fails the run rather than dropping a field, so remove a mapping you don’t need and the next poll succeeds.
Check the field on the Zoho side first. A field the authorizing user has no access to reads as absent rather than as an error, and a field type Retell doesn’t map (a lookup, a multi-select picklist, a formula) never appears in the picker to begin with.

FAQ

By default it only updates Contacts that already exist in Zoho, and it never deletes them. Turn on Create new contacts in CRM on the Sync to Zoho CRM tab to have Retell create a Contact after a conversation when the matched contact isn’t linked to one yet. Your agent can also create Contacts through the Create Contact tool, but that’s an explicit tool call, not sync.
Contacts for the records themselves, plus Calls and Tasks when activity logging is on. Leads aren’t synced. If your callers live as Leads in Zoho, convert them or keep the numbers you dial on Contacts.

Next steps

CRM data mappings

Map Zoho fields to Retell contacts, choose update modes, and control what syncs back.

Build contact memory

Accumulate what your agents learn across conversations into the contact record.

Dynamic variables

Reference synced contact fields from your agent’s prompt.

Zoho agent functions

Look up callers, read their Deals, and create Tasks, Notes, and Calls mid-conversation.