Zoho CRM supports CRM sync and an integration app with a create_contact action.
Connect#
OAuth Needs keys#
Press Connect on the Zoho card. Tried requests ZohoCRM.modules.ALL,ZohoCRM.settings.fields.READ,ZohoCRM.users.READ with offline access. The API domain for your data centre is taken from the token response. The deployment needs ZOHO_OAUTH_CLIENT_ID and ZOHO_OAUTH_CLIENT_SECRET.
Accounts outside the US data centre: start the flow with the API and set options.accounts_url to your accounts host, for example https://accounts.zoho.com.au. See OAuth connections.
Access token#
| Credential | Required | Description |
|---|---|---|
access_token |
Yes | Zoho OAuth access token |
api_domain |
No | API host. Default https://www.zohoapis.com |
Requests send Authorization: Zoho-oauthtoken <token>. POST /test-crm-auth/zoho reads the current user.
Contact sync#
Requests use the CRM API v6.
POST /crm/v6/Contacts/upsertwithduplicate_check_fields: ["Phone"], so repeat callers update one contact.POST /crm/v6/Contacts/{id}/NoteswithNote_TitleandNote_Content.
| Zoho field | Value |
|---|---|
Last_Name |
Contact last name, else first name, else phone number |
First_Name |
Contact first name |
Email |
Contact email |
Phone |
Contact phone number |
| Mapped fields | From field_mapping |
Default fields shown in mock mode: First_Name, Last_Name, Email, Phone, Description. With credentials, GET /get-crm-schema/zoho reads the Contacts module fields.
Agent functions#
| Action | Arguments | Output |
|---|---|---|
zoho.create_contact |
phone (required), first_name, last_name, email |
{"contact": {"id": "<record id>"}} |
Mock mode#
Without credentials, operations are recorded and return ids like mock_zoho_2d7f1b5e9a3c.