Back

Zoho CRM

Exactly what LeadCall writes to Zoho — Calls, Leads, Tasks, and required scopes.


Overview

LeadCall connects to Zoho CRM via OAuth 2.0. It writes to Calls, Leads, and optionally Tasks. It reads from Leads and Contacts to check whether a caller is already in your CRM, and it reads Zoho users for owner mapping. LeadCall does not modify or delete existing CRM records during normal sync; it creates new records or records the sync outcome for manager review.

Calls activities

Valid inbound or missed campaign calls can create Calls activities in Zoho CRM when LeadCall creates a new Lead or links to an existing Contact. Sales-rep callback attempts are captured locally for recovery reporting and do not create Zoho Calls by themselves.

FieldValue
SubjectInbound call or Missed inbound call
Call TypeInbound or Missed
Call Start TimeCall timestamp formatted for Zoho
DurationCall duration in seconds (0 for missed)
Call ResultDerived from call type
OwnerMapped Zoho user, when a LeadCall rep mapping can be resolved
Related ToLinked Lead or Contact record (if matched)

Leads — new callers

When the caller's number is not found in Zoho, a new Lead record is created:

FieldValue
Last NameConfigured placeholder, for example Inbound Lead
PhoneCaller's full phone number
Lead SourceActive campaign assignment for the device at the call time
OwnerMapped Zoho user, when available
DescriptionAuto-generated note with device name, call date, and call context
Additional fieldsConfigured campaign metadata rows, when they match writable Zoho fields

Lead placeholder names

The Last Name placeholder is intentional — it makes clear the record still needs a real name. If the same phone number already exists as a Lead, LeadCall records the duplicate outcome in the sync review queue instead of creating another Lead.

Missed-call Tasks

Missed calls additionally create a follow-up Task in Zoho so nothing slips through:

FieldValue
SubjectCall back {number} (configurable prefix)
StatusNot Started
Due DateCall date + configurable offset (default: same day)
OwnerMapped Zoho user, when available
Related ToLinked Lead or Contact (if matched) or the new Lead

Task creation can be disabled entirely under Settings → Integrations → Settings if your team handles missed-call follow-up through a different process.

Campaign source tagging

Campaign source tagging is stored as a time-based device assignment. When a manager changes a campaign phone from one source to another, LeadCall closes the previous assignment and starts a new one. During sync, the assignment active at the call timestamp supplies the Lead Source and any configured campaign metadata. We recommend using values that already exist in your Zoho Lead Source picklist (for example Google Ads, Facebook, or Instagram) so your CRM reports stay accurate.

Owner assignment

Owner mappings are configured under Settings → Integrations → Team by mapping LeadCall reps to Zoho CRM users. When a synced call can be tied to a mapped rep, LeadCall sends that Zoho user as the Owner. If no mapping can be resolved, the Owner field is omitted and Zoho applies its normal default owner behavior. Updates apply only to future records.

Zoho Campaign Assignment

When configuring a device, managers can link it to a specific Zoho CRM campaign. The dashboard fetches the live campaign list directly from Zoho, so you can pick a campaign and set a lead source (for example, "Cold Call" or "Referral"). Every lead created from that device automatically carries the selected campaign and lead source into Zoho.

Campaigns vs. lead source

The campaign link ties the device to a Zoho campaign record. The lead source is a separate value that populates the Lead Source field. Both are optional and can be changed at any time.

Real-time sync status

Sync progress streams live to the dashboard over WebSocket. New call logs appear instantly as devices sync, and the Zoho sync queue status updates in real time. Managers can watch pending, failed, and resolved rows update without refreshing the page.

Sync review and backfill

The dashboard keeps a Zoho sync log for each queued campaign call. Managers can review pending, failed, created, linked, duplicate Lead, and ambiguous-match rows under Settings → Integrations or directly from the call logs page. Failed rows can be retried with one click, ambiguous rows can be resolved manually by picking the correct CRM record, and historical unsynced inbound or missed calls can be queued through the Stats backfill action.

Required OAuth scopes

  • ZohoCRM.modules.calls.CREATE — create Calls activities
  • ZohoCRM.modules.leads.READ — search existing Leads by phone number
  • ZohoCRM.modules.leads.CREATE — create new Lead records
  • ZohoCRM.modules.contacts.READ — search existing Contacts by phone number
  • ZohoCRM.modules.tasks.CREATE — create missed-call follow-up Tasks
  • ZohoCRM.users.READ — fetch your Zoho user list for the team mapping UI

Tasks scope is optional at connect time

Zoho will ask you to approve ZohoCRM.modules.tasks.CREATE during the OAuth flow. If you decline it, missed-call Tasks will not be created and the integration will log a permission error for missed calls. You can reconnect at any time to grant the missing scope.