Zoho CRM
Let agents work a Zoho CRM: find and upsert contacts and accounts, link them together, attach notes, log task activities, and reach into any other module with the generic record tools.
Every tool on this page requires a Zoho CRM connector (see
Connectors); pass its ID as connectorId. Zoho
identifies everything by module (Contacts, Accounts, Deals, Leads,
...) and record ID, and field names use Zoho's API names with underscores
(First_Name, Account_Name). The search tools paginate with limit (default
20, max 200 per page) and a 1-based page number.
Search contacts TOOLZOHO_CRM_SEARCH_CONTACTS
Searches the Contacts module. query is a free-text word search across the
record; the optional email, phone, and lastName filters do exact
criteria matching when the agent already knows a specific attribute. Returns
matching contacts with their Zoho record IDs for use in the get, note, and
task tools.
Example
{
"toolType": "ZOHO_CRM_SEARCH_CONTACTS",
"connectorId": "V1StGXR8Z5",
"query": "@@{CONTACT_NAME}",
"email": "@@{CONTACT_EMAIL}",
"limit": 20
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
query- Type
- string
- Description
- Free-text search (maps to Zoho criteria word search)
- Name
email- Type
- string · optional
- Description
- Optional: filter by email
- Name
phone- Type
- string · optional
- Description
- Optional: filter by phone
- Name
lastName- Type
- string · optional
- Description
- Optional: filter by last name
- Name
limit- Type
- integer · optional
- Description
- Optional: max results per page (default 20, max 200)
- Name
page- Type
- integer · optional
- Description
- Optional: page number (1-based)
Get a contact TOOLZOHO_CRM_GET_CONTACT
Fetches a single contact by its Zoho record ID. By default the full record
comes back; set fields to a comma-separated list of API field names to trim
the response to just what the agent needs.
Example
{
"toolType": "ZOHO_CRM_GET_CONTACT",
"connectorId": "V1StGXR8Z5",
"contactId": "@@{ZOHO_CONTACT_ID}",
"fields": "First_Name,Last_Name,Email,Phone,Account_Name"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
contactId- Type
- string
- Description
- Zoho record ID of the contact
- Name
fields- Type
- string · optional
- Description
- Optional: comma-separated field names to return
Upsert a contact TOOLZOHO_CRM_UPSERT_CONTACT
Creates a contact, or updates an existing one when duplicateCheckFields is
set and a record matches on those fields — checking ["Email"] is the usual
choice. fields is an object of Zoho API field names to values. The response
reports whether the record was inserted or updated, along with its Zoho
record ID.
Example
{
"toolType": "ZOHO_CRM_UPSERT_CONTACT",
"connectorId": "V1StGXR8Z5",
"fields": {
"First_Name": "@@{FIRST_NAME}",
"Last_Name": "@@{LAST_NAME}",
"Email": "@@{CONTACT_EMAIL}",
"Phone": "@@{CONTACT_PHONE}"
},
"duplicateCheckFields": ["Email"]
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
fields- Type
- object
- Description
- Contact field values (e.g. First_Name, Last_Name, Email, Phone)
- Name
duplicateCheckFields- Type
- array<string> · optional
- Description
- Optional: fields to check for duplicates (e.g. ["Email"])
Search accounts TOOLZOHO_CRM_SEARCH_ACCOUNTS
Searches the Accounts module by free-text query, with an optional
accountName filter for matching on the company name specifically. Use it to
resolve a company name to the account record ID before linking contacts or
logging activity against the account.
Example
{
"toolType": "ZOHO_CRM_SEARCH_ACCOUNTS",
"connectorId": "V1StGXR8Z5",
"query": "@@{COMPANY_NAME}",
"limit": 20
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
query- Type
- string
- Description
- Free-text search
- Name
accountName- Type
- string · optional
- Description
- Optional: filter by account/company name
- Name
limit- Type
- integer · optional
- Description
- Optional: max results per page (default 20, max 200)
- Name
page- Type
- integer · optional
- Description
- Optional: page number (1-based)
Get an account TOOLZOHO_CRM_GET_ACCOUNT
Fetches a single account by its Zoho record ID, optionally restricted to a
comma-separated list of fields.
Example
{
"toolType": "ZOHO_CRM_GET_ACCOUNT",
"connectorId": "V1StGXR8Z5",
"accountId": "@@{ZOHO_ACCOUNT_ID}",
"fields": "Account_Name,Phone,Website,Industry"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
accountId- Type
- string
- Description
- Zoho record ID of the account
- Name
fields- Type
- string · optional
- Description
- Optional: comma-separated field names to return
Upsert an account TOOLZOHO_CRM_UPSERT_ACCOUNT
Creates or updates an account, deduplicating on duplicateCheckFields —
typically ["Account_Name"]. Works the same way as the contact upsert:
fields carries the Zoho API field values, and the response says whether the
account was inserted or updated.
Example
{
"toolType": "ZOHO_CRM_UPSERT_ACCOUNT",
"connectorId": "V1StGXR8Z5",
"fields": {
"Account_Name": "@@{COMPANY_NAME}",
"Website": "@@{COMPANY_WEBSITE}",
"Phone": "@@{COMPANY_PHONE}"
},
"duplicateCheckFields": ["Account_Name"]
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
fields- Type
- object
- Description
- Account field values (e.g. Account_Name, Phone, Website)
- Name
duplicateCheckFields- Type
- array<string> · optional
- Description
- Optional: fields to check for duplicates (e.g. ["Account_Name"])
Add contact to account TOOLZOHO_CRM_ADD_CONTACT_TO_ACCOUNT
Links an existing contact to an existing account by setting the contact's
Account_Name lookup to the account. Both records must already exist — pair
this with the upsert tools when building out a new company and its people.
Example
{
"toolType": "ZOHO_CRM_ADD_CONTACT_TO_ACCOUNT",
"connectorId": "V1StGXR8Z5",
"contactId": "@@{ZOHO_CONTACT_ID}",
"accountId": "@@{ZOHO_ACCOUNT_ID}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
contactId- Type
- string
- Description
- Zoho record ID of the contact
- Name
accountId- Type
- string
- Description
- Zoho record ID of the account to link to
Add a note TOOLZOHO_CRM_ADD_NOTE
Attaches a text note to any record — pass the parentModule (e.g.
"Contacts", "Accounts") and the parent's record ID. Handy for agents that
summarize a call or conversation and file the summary on the CRM record.
Example
{
"toolType": "ZOHO_CRM_ADD_NOTE",
"connectorId": "V1StGXR8Z5",
"parentModule": "Contacts",
"parentId": "@@{ZOHO_CONTACT_ID}",
"noteTitle": "Call summary",
"noteContent": "@@{CALL_SUMMARY}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
parentModule- Type
- string
- Description
- Module the note is attached to (e.g. "Contacts", "Accounts")
- Name
parentId- Type
- string
- Description
- Zoho record ID of the parent record
- Name
noteTitle- Type
- string · optional
- Description
- Optional: title of the note
- Name
noteContent- Type
- string
- Description
- Content/body of the note
Log a task TOOLZOHO_CRM_LOG_TASK
Creates a Tasks record associated with a contact or account — the CRM-native
way to log an activity like "Trade Show Visit" or a follow-up reminder.
status is a Zoho task status such as "Not Started", "In Progress", or
"Completed", and dueDate (YYYY-MM-DD) is optional.
Example
{
"toolType": "ZOHO_CRM_LOG_TASK",
"connectorId": "V1StGXR8Z5",
"subject": "Follow up after demo",
"status": "Not Started",
"description": "@@{FOLLOW_UP_NOTES}",
"relatedModule": "Contacts",
"relatedRecordId": "@@{ZOHO_CONTACT_ID}",
"dueDate": "@@{DUE_DATE}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
subject- Type
- string
- Description
- Task subject/title (e.g. "Trade Show Visit")
- Name
status- Type
- string
- Description
- Task status (e.g. "Not Started", "In Progress", "Completed")
- Name
description- Type
- string · optional
- Description
- Optional: task description/notes
- Name
relatedModule- Type
- string
- Description
- Module to associate with (e.g. "Contacts", "Accounts")
- Name
relatedRecordId- Type
- string
- Description
- Zoho record ID to associate this task with
- Name
dueDate- Type
- string · optional
- Description
- Optional: due date in YYYY-MM-DD format
Get a record TOOLZOHO_CRM_GET_RECORD
Fetches any record from any module by ID — the escape hatch for modules without a dedicated tool, such as Deals, Leads, or custom modules. Returns the full record.
Example
{
"toolType": "ZOHO_CRM_GET_RECORD",
"connectorId": "V1StGXR8Z5",
"module": "Deals",
"recordId": "@@{ZOHO_DEAL_ID}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
module- Type
- string
- Description
- Zoho CRM module (e.g. "Contacts", "Accounts", "Deals", "Leads")
- Name
recordId- Type
- string
- Description
- Zoho record ID
Search records TOOLZOHO_CRM_SEARCH_RECORDS
Searches any module with Zoho's criteria syntax — e.g.
(Email:equals:jane@example.com) or (Account_Name:starts_with:Acme) — or
plain text, which falls back to a word search. Use it whenever the dedicated
contact and account search tools don't cover the module or the filter you
need.
Example
{
"toolType": "ZOHO_CRM_SEARCH_RECORDS",
"connectorId": "V1StGXR8Z5",
"module": "Leads",
"criteria": "(Email:equals:@@{LEAD_EMAIL})",
"limit": 20
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
module- Type
- string
- Description
- Zoho CRM module (e.g. "Contacts", "Accounts", "Deals", "Leads")
- Name
criteria- Type
- string · optional
- Description
- Optional: Zoho search criteria (e.g. "(Email:equals:test)") or free-text word search
- Name
limit- Type
- integer · optional
- Description
- Optional: max results per page (default 20, max 200)
- Name
page- Type
- integer · optional
- Description
- Optional: page number (1-based)