- Documentation
- Integrations
- Apps
- Zoho CRM integration
Zoho CRM integration
Create, update, and watch leads, contacts, deals, and any module in your clients' Zoho CRM accounts.
What it does
The Zoho CRM integration lets your agency operate on a client's CRM without leaving TaskJuice. Connect a client's Zoho CRM account once and your workflows can create, read, search, update, upsert and delete records in any module (standard or custom), convert leads, tag records, link related records, add notes and attachments, and manage users. Triggers fire when records are created or modified, when a user joins the account, or instantly when one of the client's Zoho workflow rules runs.
Every step targets the client's regional Zoho API host (United States, Europe, India, Australia and the other Zoho data centers), so a workflow you build for one client runs unmodified against the next account you onboard. The integration uses the Zoho CRM v8 REST API.
Connect a Zoho CRM account
- Open your workspace in TaskJuice and navigate to Connections.
- Choose Zoho CRM and click Connect.
- Enter the client's data-center suffix. Use
comfor United States accounts (accounts.zoho.com),eufor Europe,infor India, orcom.aufor Australia. The suffix must match the URL the client uses to sign in to Zoho. - Sign in to Zoho as the client user TaskJuice should act as, and approve the requested scopes.
- TaskJuice returns to the workspace with the connection ready to use in any workflow.
Zoho connections use your agency's own Zoho OAuth client. Create a server-based client in the Zoho API Console, add the TaskJuice redirect URL, and add the client under Settings, Integrations, OAuth clients. Request these scopes:
| Scope | Needed for |
|---|---|
ZohoCRM.modules.ALL | every record action and trigger |
ZohoCRM.settings.READ | module, field, related-list and tag pickers |
ZohoCRM.users.READ | user pickers, List Users, New User |
ZohoSearch.securesearch.READ | Search Records |
ZohoCRM.modules.attachments.ALL | attachment actions |
ZohoCRM.modules.notes.ALL | Add Note to Record |
ZohoCRM.settings.tags.ALL | Create Tag, Update Tag, Delete Tag |
ZohoCRM.users.ALL | Add User and Delete User |
To revoke access, the account owner can open Zoho's Connected Apps settings and remove the TaskJuice client.
Triggers
| Trigger | Fires when |
|---|---|
zoho-crm/record-created | a record is created in the module you pick |
zoho-crm/record-modified | a record in the module you pick is created or modified |
zoho-crm/lead-created | a lead is created |
zoho-crm/lead-modified | a lead is created or modified |
zoho-crm/contact-created | a contact is created |
zoho-crm/contact-modified | a contact is created or modified |
zoho-crm/deal-modified | a deal is created or modified |
zoho-crm/user-created | a new active user is added to the account |
zoho-crm/workflow-rule-webhook | one of the client's Zoho workflow rules runs its webhook (instant) |
The record triggers check Zoho on the interval you choose (five minutes by default) and start one run per check with every new or changed record in an items list. Add a Loop step after the trigger to handle each record on its own. The first check after you publish only records what already exists, so older records never fire. Polling triggers cannot read the data center from the connection, so enter the same suffix in the trigger.
Workflow Rule Webhook fires the moment a Zoho workflow rule runs, without polling. TaskJuice cannot create these webhooks for you yet, so set one up by hand (Zoho Professional edition or higher):
- In Zoho CRM open Setup, Automation, Actions, Webhooks, and click Configure Webhook.
- Set the method to POST and paste this trigger's TaskJuice URL into URL to Notify.
- In the header section add a custom parameter named
X-TaskJuice-Inbound-Secretwhose value is the secret TaskJuice shows on the trigger. - Set the body to Raw, format JSON, and include at least
{"module": "Leads", "id": "${Leads.Lead Id}"}, plus any other merge fields you want in the run. - Save the webhook and add it as an instant action on a workflow rule, for example on create or edit.
To fire the trigger for one module only, pick that module on the trigger. TaskJuice then ignores deliveries whose module field names a different module.
Actions
Any module. Pick the module (Leads, Contacts, Accounts, Deals, a custom module, and so on) from a dropdown, then give field values by their Zoho API names.
- Get Record, List Records, Search Records (by criteria, email, phone or keyword)
- Create Record, Update Record, Create or Update Record (matches on duplicate-check fields), Delete Record
- Add Tags to Record, Remove Tags from Record
- List Related Records, Link or Update Related Record, Remove Related Record
- Add Note to Record
- List Attachments, Upload Attachment, Attach Link, Download Attachment, Delete Attachment, Upload Record Photo
- List Modules, List Fields (look up the API names a module expects)
Leads, contacts, accounts, deals and tasks. Create Lead, Create Contact, Create Account, Create Deal, Create Task, List Leads, List Contacts, List Deals, and Convert Lead (into a contact and account, optionally a deal).
Tags and users. List Tags, Create Tag, Update Tag, Delete Tag, List Users, Add User, Delete User.
Known limitations
- Zoho enforces a daily API credit limit that scales with the client's edition and user count. When Zoho answers 429, TaskJuice retries the step.
- A connection is scoped to one Zoho data center. Clients in different regions each need their own connection.
- List and search reads return up to 200 records per page and Zoho stops paging at 2,000 records without a page token.
- Delete Record moves the record to Zoho's recycle bin, where an admin can restore it for 60 days. Delete User and Delete Tag cannot be undone.
- Workflow-rule webhooks are available on Zoho Professional and higher, and their payload is whatever you write into the webhook body.
- Instant record triggers through Zoho's Notifications API are not available yet; use the polling record triggers or a workflow-rule webhook.