Zoho CRM
An Omnata plugin that connects Zoho CRM to Snowflake.
Prerequisites
A Zoho CRM account (Free, Standard/Starter, Professional, Enterprise/Zoho One, or Ultimate/CRM Plus).
An Omnata Sync Engine installation
Authentication
The plugin supports two OAuth connection methods.
OAuth (Server based)
Uses Zoho's standard Authorization Code flow managed via a Snowflake Security Integration.
select 'https://'||get(parse_json(SYSTEM$allowlist()),0):"host"::varchar||'/oauth/complete-secret' as REDIRECT_URL;To determine the Authorized Redirect URI for your Snowflake account, run the following Snowflake query:
Log in to https://api-console.zoho.com.au/ to create a Server-based Application.
You will provide the following values to the Omnata connection flow:
OAuth Client ID
From your Zoho API Console application.
OAuth Client Secret
From your Zoho API Console application.
Domain
accounts.<your-region>
The subdomain is always accounts. with the value for your region (e.g. zoho.com for USA).
Later in the connection steps, you will also need to provide:
Data Center
The Zoho data center region your organisation is in (see table below).
Product Edition
Your Zoho CRM subscription tier — used to calculate the API credit quota.
Purchased Users Count
Number of licensed users — used to calculate the API credit quota.
Addon API credits purchased
Additional API credits purchased separately (enter 0 if none).
OAuth (Self client)
Intended for server-to-server integrations where a browser-based redirect is not practical.
Log in to https://api-console.zoho.com.au/ to create a Self Client Application.
When you create the Self client, you need to add comma separated scopes:
In the Omnata connection form you need to provide:
Client ID
From your Zoho API Console self-client application.
Client Secret
From your Zoho API Console self-client application.
Initial Code
The one-time code generated in Zoho API Console. This is exchanged for a long-lived refresh token on first connect.
Data Center
Your Zoho data center region.
Product Edition
Your Zoho CRM subscription tier.
Purchased Users Count
Number of licensed users.
Addon API credits purchased
Additional API credits purchased separately.
Data Center Region Reference
USA
www.zohoapis.com
Australia
www.zohoapis.com.au
Europe
www.zohoapis.eu
India
www.zohoapis.in
China
www.zohoapis.com.cn
Japan
www.zohoapis.jp
Inbound Syncs
Syncs Zoho CRM module records into Snowflake tables.
Records are extracted using the Zoho CRM Bulk Read API and fetch incrementally wherever possible.
Supported strategies
Full Refresh
Re-reads all records every run.
Incremental
Only reads records modified since the last successful sync (using Modified_Time).
Configuration
There are no additional configuration fields for inbound syncs. Select the modules (streams) you want to sync during the stream selection step. Schemas are fetched dynamically from the Zoho field definitions.
Available streams
Each Zoho CRM module becomes an individual stream in Omnata (e.g. Leads, Contacts, Accounts, Deals, Tasks, etc.).
The following modules are excluded because they do not support the Bulk Read API or produce errors during field discovery:
Home, Workqueue, Meetings, Reports, Dashboards, PurchaseOrders, SalesInbox, Feeds, PriceBooks, Documents, Visits, Social, Email Analytics, Email Template Analytics, Actions Performed, EmailSentiment, SalesOrders, QuotedItems, OrderedItems, PurchaseItems, InvoicedItems, Forecast Quotas, Forecast Items, Forecast Groups, LockingInformation, EmailTemplate, EmailDrafts, CalendarBookings, Unknown.
Outbound Syncs
Syncs a Snowflake table to a Zoho CRM module.
Records are uploaded using the Zoho CRM Bulk Write API.
Supported strategies
Create
Inserts new records only.
Update
Updates existing records, matched by a unique field.
Upsert
Inserts new records and updates existing ones, matched by a unique field.
Configuration
Module — select the Zoho CRM module to write to (e.g. Leads, Contacts, Accounts). The list is fetched dynamically from your Zoho organisation.
Unique Field (Update / Upsert only) — select the field used to match existing records (e.g.
Email,Account_Name).Field Mappings — map Snowflake columns to Zoho CRM fields. Mandatory Zoho fields are highlighted.
Supported modules
The following modules are supported for outbound syncing:
Accounts
Attachments
Calls
Campaigns
Cases
Contacts
DealHistory
Deals
Emails
Forecasts
Invoices
Leads
Notes
Products
Quotes
Solutions
Tasks
Vendors
Rate Limits
Zoho CRM enforces API credit–based rate limits. The plugin automatically calculates and respects these limits based on the Product Edition, Purchased Users Count, and Addon API credits provided at connection time.
Free
5,000
—
Standard / Starter
50,000
250
Professional
50,000
500
Enterprise / Zoho One
50,000
1,000
Ultimate / CRM Plus
50,000
2,000
Add-on credits purchased separately are added to the total.
The plugin enforces per-day request budgets for bulk write jobs, bulk read jobs, and standard record API calls, derived from the credit totals above. See Zoho's API Limits documentation for full details.
Troubleshooting
Connection fails with an auth error
Initial code expired (Self client)
Generate a new one-time code in Zoho API Console.
Field list returns HTTP 204
Rate limit hit on the fields API
Retry after a short wait; the plugin will retry automatically.
Import / export job times out
Zoho job took longer than 5 minutes
Re-run the sync; large modules may require multiple runs.
Module not visible in stream list
Module is on the excluded list or has no bulk API support
This is a Zoho limitation; use the standard records API for these modules.
Last updated