What you need
- A Zoho self-client with a refresh token:
- Open api-console.zoho.com → Self Client.
- Create a token with the
ZohoCRM.modules.allscope (or the narrower contacts/notes scopes). - Note the client id, client secret, and the refresh token (generate it from the self-client’s code exchange if needed).
- Your data-center hosts if you are not on .com (for example,
accounts.zoho.euandwww.zohoapis.eu). The defaults cover .com.
Connect
- In PyAI Console, open Integrations and find Zoho CRM under CRM.
- Click Connect, enter the client id, client secret, and refresh token, and pick your events.
- Press Test. A sample note posts to a matched contact.
- Done. Notes attach after every completed call.
Troubleshooting
- Error: invalid_client / invalid token. The refresh token expired or was revoked, or the client secret changed. Regenerate from the self-client and update the connection (omitted secrets are preserved).
- Error: INVALID_DATA / 400. Usually a scope problem: the token lacks the
notes module scope. Re-issue with
ZohoCRM.modules.all. - Notes land unattached. No contact matched the caller’s phone. The note still posts with the full recap and call reference.
- Wrong data center. If tokens mint but API calls 404, your account is in another DC; set the accounts and API hosts for your region when connecting.