Skip to main content

Zoho

Zoho is a comprehensive suite of cloud-based business applications including CRM, email, project management, finance, and collaboration tools, helping organizations streamline operations and enhance productivity across all business functions.

Zoho icon

Power end-to-end data operations for your Zoho API with Nexla. Our bi-directional Zoho connector is purpose-built for Zoho, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Zoho or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Zoho workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Zoho credential in Nexla, you need to set up an OAuth 2.0 integration in the Zoho Developer Console and obtain the required credentials. This integration enables programmatic access to the Zoho CRM API without requiring user interaction for each request.

OAuth 2.0 Setup

OAuth 2.0 authentication provides secure, token-based access to the Zoho CRM API with automatic token refresh. The OAuth flow allows Nexla to access your Zoho account on your behalf. For detailed information about setting up OAuth 2.0 authentication, see the Zoho CRM API documentation.

  1. Access Zoho Developer Console: Sign in to your Zoho account and navigate to the Zoho Developer Console.

  2. Create a Client: Create a new client application in the Zoho Developer Console. This will generate a Client ID and Client Secret that you'll use for authentication.

  3. Configure OAuth Settings: Configure your OAuth client settings, including redirect URIs and scopes. The redirect URI should match the callback URL provided by Nexla during the OAuth flow.

  4. Configure API Scopes: Ensure that the following scopes are requested during the OAuth flow:

    • ZohoCRM.modules.all - Full access to all Zoho CRM modules
    • ZohoCRM.settings.all - Full access to Zoho CRM settings
    • ZohoCRM.users.all - Full access to Zoho CRM users
    • ZohoCRM.org.all - Full access to Zoho CRM organization data
    • ZohoCRM.bulk.all - Full access to Zoho CRM bulk operations
    • ZohoCRM.coql.read - Read access to Zoho CRM COQL queries
    • ZohoCRM.notifications.read - Read access to Zoho CRM notifications
    • ZohoCRM.notifications.create - Create access to Zoho CRM notifications
    • ZohoCRM.notifications.update - Update access to Zoho CRM notifications
  5. Obtain Client Credentials: Copy your Client ID and Client Secret from the OAuth client settings. These credentials are used to authenticate with the Zoho CRM API OAuth 2.0 service.

  6. Determine API Domain: Identify your Zoho API domain based on your Zoho account region:

    • US: https://www.zohoapis.com
    • EU: https://www.zohoapis.eu
    • IN: https://www.zohoapis.in
    • AU: https://www.zohoapis.com.au
    • JP: https://www.zohoapis.jp
    • CA: https://www.zohoapis.ca

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

New Credential Overlay – Zoho

ZohoCred.png
  1. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  2. Complete the OAuth authorization flow by following the prompts to authorize Nexla to access your Zoho account. The OAuth flow will automatically handle token exchange and refresh. During the authorization process, you will be redirected to Zoho to grant permissions to Nexla.

    The OAuth 2.0 flow provides secure, token-based access to the Zoho CRM API with automatic token refresh. The authorization process requires you to sign in to your Zoho account and grant permissions to Nexla. For detailed information about Zoho CRM API authentication, see the Zoho CRM API documentation.

    All OAuth configuration settings are automatically handled by Nexla. You only need to complete the authorization flow by clicking the Authorize button and granting permissions to Nexla in the Zoho authorization page. The OAuth flow will request the following scopes: full access to Zoho CRM modules, settings, users, organization data, bulk operations, COQL queries, and notifications.

  3. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Zoho connector tile, then select the credential that will be used to connect to the Zoho instance, and click Next; or, create a new Zoho credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Zoho endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

Get All Accounts

This endpoint template gets a list of all available accounts from your Zoho CRM account. Use this template when you need to access account information, account data, or account metadata for analysis, reporting, or integration purposes. Check out the API documentation link to view details about Account record structure.

  • This endpoint automatically retrieves all accounts from your Zoho CRM account. No additional configuration is required beyond selecting this endpoint template. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of account data.

This endpoint returns all accounts from your Zoho CRM account, including account IDs, names, descriptions, and other account metadata. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of account data.

For detailed information about accounts, API response structures, pagination, and available account data, see the Zoho CRM API documentation.

Get All Leads

This endpoint template gets a list of all available leads from your Zoho CRM account. Use this template when you need to access lead information, lead data, or lead metadata for analysis, reporting, or integration purposes. Check out the API documentation link to view details about Lead record structure.

  • This endpoint automatically retrieves all leads from your Zoho CRM account. No additional configuration is required beyond selecting this endpoint template. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of lead data.

This endpoint returns all leads from your Zoho CRM account, including lead IDs, names, email addresses, phone numbers, and other lead metadata. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of lead data.

For detailed information about leads, API response structures, pagination, and available lead data, see the Zoho CRM API documentation.

Get All Contacts

This endpoint template gets a list of all available contacts from your Zoho CRM account. Use this template when you need to access contact information, contact data, or contact metadata for analysis, reporting, or integration purposes. Check out the API documentation link to view details about Contact record structure.

  • This endpoint automatically retrieves all contacts from your Zoho CRM account. No additional configuration is required beyond selecting this endpoint template. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of contact data.

This endpoint returns all contacts from your Zoho CRM account, including contact IDs, names, email addresses, phone numbers, and other contact metadata. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of contact data.

For detailed information about contacts, API response structures, pagination, and available contact data, see the Zoho CRM API documentation.

Get All Cases

This endpoint template gets a list of all available cases from your Zoho CRM account. Use this template when you need to access case information, case data, or case metadata for analysis, reporting, or integration purposes. Check out the API documentation link to view details about Case record structure.

  • This endpoint automatically retrieves all cases from your Zoho CRM account. No additional configuration is required beyond selecting this endpoint template. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of case data.

This endpoint returns all cases from your Zoho CRM account, including case IDs, subjects, descriptions, statuses, and other case metadata. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of case data.

For detailed information about cases, API response structures, pagination, and available case data, see the Zoho CRM API documentation.

Get All Invoices

This endpoint template gets a list of all available invoices from your Zoho CRM account. Use this template when you need to access invoice information, invoice data, or invoice metadata for analysis, reporting, or integration purposes. Check out the API documentation link to view details about Invoice record structure.

  • This endpoint automatically retrieves all invoices from your Zoho CRM account. No additional configuration is required beyond selecting this endpoint template. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of invoice data.

This endpoint returns all invoices from your Zoho CRM account, including invoice IDs, numbers, amounts, dates, and other invoice metadata. The endpoint uses page-based pagination to handle large result sets efficiently. Nexla will automatically follow the pagination to fetch subsequent pages of invoice data.

For detailed information about invoices, API response structures, pagination, and available invoice data, see the Zoho CRM API documentation.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Zoho data sources can also be manually configured to ingest data from any valid Zoho CRM API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom authentication headers. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, path to data, metadata, and request headers.

Zoho CRM API endpoints typically follow the pattern {api_domain}/crm/v2/{module_name}, where {api_domain} is your Zoho API domain (e.g., https://www.zohoapis.com) and {module_name} is the module name (e.g., Accounts, Leads, Contacts). The endpoint requires OAuth 2.0 authentication via the Authorization header, which is handled automatically by your credential configuration.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Zoho data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Zoho destination, and select the Send to Destination option from the menu. Select the Zoho connector from the list of available destination connectors, then select the credential that will be used to connect to the Zoho instance, and click Next; or, create a new Zoho credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Zoho endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Add or Update Accounts

This endpoint template inserts or updates accounts in your Zoho CRM account. If the account does not exist, Zoho inserts the account as new. If the account already exists, it is updated based on duplicate checks. Use this template when you need to automatically create or update accounts based on data from your Nexla flows.

  • This endpoint sends data as JSON in the request body to insert or update accounts. Each record from your Nexset will be sent as a separate API request to upsert an account. The request body should contain the account data in the format required by the Zoho CRM API, including all required fields for account creation or update.

This endpoint sends data as JSON in the request body to insert or update accounts in your Zoho CRM account. If the account does not exist, Zoho inserts the account as new. If the account already exists, it is updated based on duplicate checks. The request body should contain the account data in the format required by the Zoho CRM API, including all required fields for account creation or update.

The account structure must match the Zoho CRM API's expected format. Ensure your account data includes all required fields. For detailed information about account upsert operations, request body formats, and available account properties, see the Zoho CRM API documentation.

Add or Update Leads

This endpoint template inserts or updates leads in your Zoho CRM account. If the lead does not exist, Zoho inserts the lead as new. If the lead already exists, it is updated based on duplicate checks. Use this template when you need to automatically create or update leads based on data from your Nexla flows.

  • This endpoint sends data as JSON in the request body to insert or update leads. Each record from your Nexset will be sent as a separate API request to upsert a lead. The request body should contain the lead data in the format required by the Zoho CRM API, including all required fields for lead creation or update.

This endpoint sends data as JSON in the request body to insert or update leads in your Zoho CRM account. If the lead does not exist, Zoho inserts the lead as new. If the lead already exists, it is updated based on duplicate checks. The request body should contain the lead data in the format required by the Zoho CRM API, including all required fields for lead creation or update.

The lead structure must match the Zoho CRM API's expected format. Ensure your lead data includes all required fields. For detailed information about lead upsert operations, request body formats, and available lead properties, see the Zoho CRM API documentation.

Add or Update Contacts

This endpoint template inserts or updates contacts in your Zoho CRM account. If the contact does not exist, Zoho inserts the contact as new. If the contact already exists, it is updated based on duplicate checks. Use this template when you need to automatically create or update contacts based on data from your Nexla flows.

  • This endpoint sends data as JSON in the request body to insert or update contacts. Each record from your Nexset will be sent as a separate API request to upsert a contact. The request body should contain the contact data in the format required by the Zoho CRM API, including all required fields for contact creation or update.

This endpoint sends data as JSON in the request body to insert or update contacts in your Zoho CRM account. If the contact does not exist, Zoho inserts the contact as new. If the contact already exists, it is updated based on duplicate checks. The request body should contain the contact data in the format required by the Zoho CRM API, including all required fields for contact creation or update.

The contact structure must match the Zoho CRM API's expected format. Ensure your contact data includes all required fields. For detailed information about contact upsert operations, request body formats, and available contact properties, see the Zoho CRM API documentation.

Add or Update Cases

This endpoint template inserts or updates cases in your Zoho CRM account. If the case does not exist, Zoho inserts the case as new. If the case already exists, then Zoho updates the record based on duplicate checks. Use this template when you need to automatically create or update cases based on data from your Nexla flows.

  • This endpoint sends data as JSON in the request body to insert or update cases. Each record from your Nexset will be sent as a separate API request to upsert a case. The request body should contain the case data in the format required by the Zoho CRM API, including all required fields for case creation or update.

This endpoint sends data as JSON in the request body to insert or update cases in your Zoho CRM account. If the case does not exist, Zoho inserts the case as new. If the case already exists, then Zoho updates the record based on duplicate checks. The request body should contain the case data in the format required by the Zoho CRM API, including all required fields for case creation or update.

The case structure must match the Zoho CRM API's expected format. Ensure your case data includes all required fields. For detailed information about case upsert operations, request body formats, and available case properties, see the Zoho CRM API documentation.

Add or Update Invoices

This endpoint template inserts or updates invoices in your Zoho CRM account. If the invoice does not exist, Zoho inserts the record as new. If the invoice already exists, then Zoho updates the record based on duplicate checks. Use this template when you need to automatically create or update invoices based on data from your Nexla flows.

  • This endpoint sends data as JSON in the request body to insert or update invoices. Each record from your Nexset will be sent as a separate API request to upsert an invoice. The request body should contain the invoice data in the format required by the Zoho CRM API, including all required fields for invoice creation or update.

This endpoint sends data as JSON in the request body to insert or update invoices in your Zoho CRM account. If the invoice does not exist, Zoho inserts the record as new. If the invoice already exists, then Zoho updates the record based on duplicate checks. The request body should contain the invoice data in the format required by the Zoho CRM API, including all required fields for invoice creation or update.

The invoice structure must match the Zoho CRM API's expected format. Ensure your invoice data includes all required fields. For detailed information about invoice upsert operations, request body formats, and available invoice properties, see the Zoho CRM API documentation.

Manual configuration

Zoho destinations can also be manually configured to send data to any valid Zoho CRM API endpoint. Using manual configuration, you can also configure Nexla to automatically send the response received from the Zoho CRM API after each call to a new Nexla webhook data source. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

The Zoho CRM APIs typically expect JSON format for most operations. For upsert operations, the URL typically follows the pattern {api_domain}/crm/v2/{module_name}/upsert; for create operations, use {api_domain}/crm/v2/{module_name}; for update operations, include the ID of the object to be updated at the end of the URL.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Zoho endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Zoho endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.