InTouch Hub · Blue Isle Software

Zoho CRM

Create and update Leads, Contacts, and Deals in Zoho CRM via its v6 REST API.

zohocrmleadssales

Zoho CRM

Read and write Leads, Contacts, and Deals in Zoho CRM through the official Zoho CRM REST API v6.

Operations

operation HTTP Endpoint Notes
list_records GET /crm/v6/{module}?fields=...&per_page=N Zoho v6 requires the fields param; a default set is sent per module.
get_record GET /crm/v6/{module}/{recordId} Fetch one record by id.
insert_record POST /crm/v6/{module} Body {"data": [ <fields> ]}.
update_record PUT /crm/v6/{module}/{recordId} Body {"data": [ {"id": <recordId>, <fields> } ]}.

{module} is one of Leads, Contacts, Deals (defaults to Leads).

API key setup

  1. Go to the Zoho API Console and create a client (Self Client is simplest for server-to-server use).
  2. Generate an access token with a CRM scope such as ZohoCRM.modules.ALL (or a narrower ZohoCRM.modules.leads.{READ,CREATE,UPDATE}).
  3. Pass that token as apiKey. It is sent as Authorization: Zoho-oauthtoken <token>.

Zoho access tokens expire roughly every hour. For unattended automation, use your refresh token to mint a fresh access token before each run (e.g. a preceding http task hitting https://accounts.zoho.com/oauth/v2/token), then feed the result into this tool's apiKey.

Data center

Pick apiDomain to match where your Zoho account lives:

Data center apiDomain
US (default) https://www.zohoapis.com
EU https://www.zohoapis.eu
India https://www.zohoapis.in
Australia https://www.zohoapis.com.au
Japan https://www.zohoapis.jp

Examples

List the 5 most recent leads

{
  "apiKey": "1000.xxxx.yyyy",
  "operation": "list_records",
  "module": "Leads",
  "perPage": "5"
}

Get one contact by id

{
  "apiKey": "1000.xxxx.yyyy",
  "operation": "get_record",
  "module": "Contacts",
  "recordId": "3652397000003852095"
}

Create a lead

{
  "apiKey": "1000.xxxx.yyyy",
  "operation": "insert_record",
  "module": "Leads",
  "fields": "{\"Last_Name\": \"Smith\", \"First_Name\": \"John\", \"Company\": \"ABC Corp\", \"Email\": \"[email protected]\"}"
}

Update a deal's stage

{
  "apiKey": "1000.xxxx.yyyy",
  "operation": "update_record",
  "module": "Deals",
  "recordId": "3652397000003852095",
  "fields": "{\"Stage\": \"Closed Won\", \"Amount\": 25000}"
}

Output

Every call publishes:

Non-2xx responses are returned with their body intact (not thrown) so the caller can inspect Zoho's error code. A transport-level failure emits {"error": "..."} and exits non-zero, marking the step FAILED.