Send leads to Zoho CRM
A chat lead becomes a record in the Zoho module you choose, in your own data centre.
The data centre comes first
Zoho runs separate estates and they do not share accounts. An account created in Europe lives on zohoapis.eu and does not exist on zohoapis.com; a refresh token minted at accounts.zoho.eu is refused at accounts.zoho.com.
This is asked for on the connect screen rather than guessed, because guessing it wrong produces an authentication error that reads exactly like a bad credential -- and sends people to rotate a token that was fine all along. Pick the one your account is in: .com, .eu, .in, .com.au, .jp, .ca, .com.cn or .sa.
What you need
A Self Client in Zoho's API console, and a refresh token from it, for three scopes:
ZohoCRM.modules.ALL-- create the record.ZohoCRM.settings.modules.READ-- list the modules, so the route can point at one.ZohoCRM.settings.fields.READ-- read a module's fields, so the mapper offers what exists.
From that you get a client id, a client secret and a refresh token. The refresh token does not expire on its own; every call trades it for an short-lived token that lasts about an hour.
Connect and route
- In Destinations, connect Zoho CRM with the four values.
- Pick the module. Every module your account can create in is there, standard and custom.
- Create a route -- which leads it takes, and which module they land in.
- Map the fields, read from that module's own setup.
Picklists, and the 201 that is not a success
A picklist value is sent only when it matches one the module has. A near miss is left out and named in the dispatch log, because Zoho refuses the whole record over one bad value.
Zoho also answers 201 Created with a per-record status inside the body: a refused record arrives inside a response that looks successful. We read that status, so a refusal is a failed dispatch with Zoho's own reason on it rather than a success that never happened.
Leads and Contacts need a last name. It is filled in from what the lead carries when your mapping leaves it out.
What it does not do
It creates. It does not deduplicate against what is already in the module, and it does not assign an owner -- an owner is a Zoho user id, and a lead answer is a string.