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.
| Field | Value |
|---|---|
| Subject | Inbound call or Missed inbound call |
| Call Type | Inbound or Missed |
| Call Start Time | Call timestamp formatted for Zoho |
| Duration | Call duration in seconds (0 for missed) |
| Call Result | Derived from call type |
| Owner | Mapped Zoho user, when a LeadCall rep mapping can be resolved |
| Related To | Linked 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:
| Field | Value |
|---|---|
| Last Name | Configured placeholder, for example Inbound Lead |
| Phone | Caller's full phone number |
| Lead Source | Active campaign assignment for the device at the call time |
| Owner | Mapped Zoho user, when available |
| Description | Auto-generated note with device name, call date, and call context |
| Additional fields | Configured 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:
| Field | Value |
|---|---|
| Subject | Call back {number} (configurable prefix) |
| Status | Not Started |
| Due Date | Call date + configurable offset (default: same day) |
| Owner | Mapped Zoho user, when available |
| Related To | Linked 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 activitiesZohoCRM.modules.leads.READ— search existing Leads by phone numberZohoCRM.modules.leads.CREATE— create new Lead recordsZohoCRM.modules.contacts.READ— search existing Contacts by phone numberZohoCRM.modules.tasks.CREATE— create missed-call follow-up TasksZohoCRM.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.
Related guides and solutions