Zoho CRM integration

CRM: leads, contacts, accounts, deals, bulk ops, attachments, tags, related records

Help CentreConnectors

Overview

Zoho CRM is a flexible CRM with modular records (Leads, Contacts, Accounts, Deals, plus custom modules). The Automize Zoho CRM connector covers module-agnostic record CRUD, search, mass-update, lead conversion, tags, notes, attachments, and bulk upsert via the v6 REST API.

  • Regions: Zoho operates separate data centres (US, EU, IN, CN, AU, JP, CA, SA). The API endpoint differs per DC – connector picks the right one from your account at OAuth time.
  • Plans: Free, Standard, Professional, Enterprise, Ultimate, CRM Plus – all expose the API. Custom modules and advanced workflows need Professional or above.

Setting up the connection

Auth type: OAuth 2.0 (Authorization Code).

  1. Go to api-console.zoho.com → Add Client → Server-based Applications.
  2. Set Authorized Redirect URI to the one shown in the Automize Zoho CRM connector dialog.
  3. Pick the appropriate Data Center (matches your Zoho account).
  4. Copy the Client ID and Client Secret.
  5. In Automize, open Settings → Connectors → Zoho CRM → Add connection. Paste credentials + data center, click Connect with Zoho, sign in, approve scopes.

Scopes required:

  • ZohoCRM.modules.ALL
  • ZohoCRM.settings.READ
  • ZohoCRM.users.READ
  • ZohoCRM.bulk.ALL

Find your credentials at https://api-console.zoho.com/.


Rate limits

Zoho enforces a daily request quota that scales by plan (5k–50k+/day) plus per-minute throttling (~10/sec). Heavy reads should use COQL (Search) or Bulk endpoints – both count as one API request per batch. The connector retries 429 with exponential backoff.


Data model

Zoho's CRM is built around modules – pre-defined (Leads, Contacts,
Accounts, Deals, Tasks, Calls, Meetings, Cases) and custom (CustomModule
__c style). Most operations take a module parameter so the same op
works against any record type.

    Module ─┬─ Records (Leads, Contacts, etc.)
            │      ├─ Notes
            │      ├─ Attachments
            │      ├─ Tags
            │      └─ Related Lists (parent/child + look-ups)
            └─ Fields (schema for that module)
    Users (workspace members)
    Lead Conversion: Lead → Contact + Account + Deal (atomic)

Available operations

22 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Add related recordGeneralLink a related record in Zoho CRM.
Add tagsGeneralAdd tags to a Zoho CRM record.
Convert leadGeneralConvert a Zoho CRM lead to contact/account/deal.
Create noteGeneralAdd a note to a Zoho CRM record.
Create recordGeneralCreate a new record in Zoho CRM.
Delete recordGeneralDelete a record from Zoho CRM.
Download attachmentGeneralDownload an attachment by ID from Zoho CRM.
Get recordGeneralGet a record by ID from Zoho CRM.
Get userGeneralGet a Zoho CRM user by ID.
List attachmentsGeneralList attachments on a Zoho CRM record.
List fieldsGeneralList fields for a Zoho CRM module.
List modulesGeneralList all available Zoho CRM modules.
List notesGeneralList notes on a Zoho CRM record.
List recordsGeneralList records from any Zoho CRM module (Leads, Contacts, Accounts, Deals, etc.).
List related recordsGeneralList related records in Zoho CRM (e.g. Contacts related to an Account).
List usersGeneralList Zoho CRM users.
Mass updateGeneralMass update multiple Zoho CRM records at once.
Remove tagsGeneralRemove tags from a Zoho CRM record.
Search recordsGeneralSearch Zoho CRM records by criteria, email, phone, or word.
Update recordGeneralUpdate a record in Zoho CRM.
Upload attachmentGeneralUpload an attachment to a Zoho CRM record.
Upsert recordsGeneralInsert or update records in bulk in Zoho CRM (upsert).

Operations

Link a related record in Zoho CRM.

ParameterRequiredTypeDescription
Module moduleYestext
Record ID recordIdYestext
Related module relatedModuleYestext
Related record ID relatedIdYestext
Record Id record_idYestext
Related Module related_moduleYestext
Related Id related_idYestext

Tips

  • Link an existing record to another via a relationship (many-to-many lookup).

Add tags

Add tags to a Zoho CRM record.

ParameterRequiredTypeDescription
Module moduleYestext
Record ID recordIdYestext
Tags (comma-separated) tagsYestext
Record Id record_idYestext

Tips

  • module + recordId + tags (array of tag names – created if not existing).

Convert lead

Convert a Zoho CRM lead to contact/account/deal.

ParameterRequiredTypeDescription
Lead ID recordIdYestext
Conversion data (JSON) dataYestextarea
Record Id record_idYestext

Tips

  • Atomic operation – creates Contact + Account (optionally Deal) from a Lead, then deletes the Lead.
  • data: array of objects controlling each created entity (assign_to user_id, deal info).

Create note

Add a note to a Zoho CRM record.

ParameterRequiredTypeDescription
Module moduleYestext
Record Id record_idYestext
Data dataYestextarea

Tips

  • module + record_id + data:[{Note_Title,Note_Content}].

Create record

Create a new record in Zoho CRM.

ParameterRequiredTypeDescription
Module moduleYestext
Data dataYestextarea

Tips

  • module + data (array of one or more records). Bulk-create up to 100 records per call.
  • Last_Name is required for Leads/Contacts.

Errors

  • MANDATORY_NOT_FOUND – A required field on the module is missing. Check List Fields for required ones.
  • DUPLICATE_DATA – Layout has unique-field rules (e.g. Email). Use Upsert instead.

Delete record

Delete a record from Zoho CRM.

ParameterRequiredTypeDescription
Module moduleYestext
Record Id record_idYestext

Tips

  • Soft-deletes (moves to Recycle Bin). Restorable for 60 days.

Download attachment

Download an attachment by ID from Zoho CRM.

ParameterRequiredTypeDescription
Module moduleYestext
Record ID recordIdYestext
Attachment ID attachmentIdYestext
Record Id record_idYestext
Attachment Id attachment_idYestext

Tips

  • module + recordId + attachmentId. Returns binary bytes.

Get record

Get a record by ID from Zoho CRM.

ParameterRequiredTypeDescription
Module moduleYestext
Record Id record_idYestext

Tips

  • module + record_id (numeric).
  • Returns full record incl. all fields the user has access to.

Get user

Get a Zoho CRM user by ID.

ParameterRequiredTypeDescription
User ID userIdYestext
User Id user_idYestext

Tips

  • user_id (numeric).

List attachments

List attachments on a Zoho CRM record.

ParameterRequiredTypeDescription
Module moduleYestext
Record ID recordIdYestext
Record Id record_idYestext

Tips

  • Metadata only. Use Download Attachment for bytes.

List fields

List fields for a Zoho CRM module.

No input parameters.

Tips

  • Per-module schema. Use to discover field API names + types before crafting create/update payloads.

List modules

List all available Zoho CRM modules.

No input parameters.

Tips

  • Discovery – returns all modules (standard + custom) with API names. Use api_name (e.g. Leads, Accounts, Custom_Module__c) in subsequent calls.

List notes

List notes on a Zoho CRM record.

ParameterRequiredTypeDescription
Module moduleYestext
Record ID recordIdYestext
Record Id record_idYestext

Tips

  • Notes on a record. ordered newest-first.

List records

List records from any Zoho CRM module (Leads, Contacts, Accounts, Deals, etc.).

ParameterRequiredTypeDescription
Module moduleYestext

Tips

  • module: api name (Leads, Contacts, Accounts, etc.).
  • Pages via page + per_page (max 200). Pass fields=Email,Last_Name to project.
  • sort_by + sort_order for ordered results.

List related records in Zoho CRM (e.g. Contacts related to an Account).

ParameterRequiredTypeDescription
Module moduleYestext
Record ID recordIdYestext
Related module relatedModuleYestext
Record Id record_idYestext
Related Module related_moduleYestext

Tips

  • module + recordId + relatedModule. E.g. Contacts → Deals returns deals owned by that contact.

List users

List Zoho CRM users.

No input parameters.

Tips

  • Filter by type (AllUsers, ActiveUsers, DeactiveUsers, NewUsers, NotConfirmedUsers, ConfirmedUsers, AdminUsers, ActiveConfirmedAdmins, CurrentUser).

Mass update

Mass update multiple Zoho CRM records at once.

ParameterRequiredTypeDescription
Module moduleYestext
Update data (JSON) dataYestextarea
Record IDs (comma-separated) idsYestext
Cvid cvidNotext

Tips

  • Same data applied to many records. ids: array of record IDs (max 500). Or cvid: criteria view ID to scope.

Remove tags

Remove tags from a Zoho CRM record.

ParameterRequiredTypeDescription
Module moduleYestext
Record ID recordIdYestext
Tags (comma-separated) tagsYestext
Record Id record_idYestext

Tips

  • Same shape as Add. Tags become unreferenced if not on any other record.

Search Zoho CRM records by criteria, email, phone, or word.

ParameterRequiredTypeDescription
Module moduleYestext

Tips

  • module + criteria (COQL-like: '(Email:equals:foo@bar.com) and (Last_Name:starts_with:S)').
  • Faster than List Records for filtered lookups. Phone/email/word shortcuts: pass phone=, email=, word= instead of criteria.

Update record

Update a record in Zoho CRM.

ParameterRequiredTypeDescription
Module moduleYestext
Record Id record_idYestext
Data dataYestextarea

Tips

  • PATCH-style. Send only fields to change.
  • Trigger workflows / approval rules: pass trigger=['workflow','approval'] in data.

Upload attachment

Upload an attachment to a Zoho CRM record.

ParameterRequiredTypeDescription
Module moduleYestext
Record ID recordIdYestext
Record Id record_idYestext

Tips

  • multipart upload – file content + filename.

Upsert records

Insert or update records in bulk in Zoho CRM (upsert).

ParameterRequiredTypeDescription
Module moduleYestext
Records data (JSON) dataYestextarea
Duplicate Check Fields duplicate_check_fieldsNotext

Tips

  • Insert or update keyed by duplicate_check_fields (e.g. Email).
  • Up to 100 records per call. Idempotent – safe to retry.

FAQ

Which data center am I on?
Zoho CRM URL: zoho.com (US), zoho.eu (EU), zoho.in (IN), zoho.com.au (AU), zoho.com.cn (CN), zoho.jp (JP). Pick the matching DC when creating the OAuth app.
Custom modules – how?
Custom modules are exposed via the same module parameter. Find the API name via List Modules. Custom field API names use __c suffix (or whatever the org set).
Why is my Search returning 0 when records exist?
Search is index-backed and updates async – new records take ~30-60s to appear. For immediate lookups by known fields, use Get Record or List Records with criteria.
Trigger workflows on Update?
By default, API updates skip workflows. Pass trigger=['workflow', 'approval', 'blueprint'] in the data payload to invoke them.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.