Zoho CRM Integration

Introduction

3CX Integration with Zoho CRM

3CX provides integration with Zoho via the 3CX API for CRM with the following features:

  • Caller ID to Contact Name – inbound calls trigger a Zoho contact lookup.
  • Contact Lookup in Zoho based on Name, Number or Email if you search for a name in the 3CX Webclient
  • Call & Chat Journalling – calls and chats are logged in the Zoho Contact Card as CRM call records.
  • Create a new Zoho contact from the 3CX client for calls from new numbers.
  • Click to Call – launch calls straight from Zoho via 3CX, using the 3CX Click2Call Browser extensions for Google Chrome and Microsoft Edge.

Step 1: Configure Zoho Integration

Zoho CRM - Add client

  1. Login and go to Zoho Developer Console
  2. Click on “ADD CLIENT”.
  3. When asked to choose a client type, select “Server-based Applications”
  4. Enter the Client Name, for example: “3CX Integration”.
  5. Enter the “Homepage URL” which is the URL of your 3CX Admin Console, for example: “https://my-pbx.example.com”.
  6. In the Authorized redirect URIs field, enter the URL you use to access your 3CX Admin Console, adding “/api/oauth2crm” at the end, e.g.: “https://my-pbx.example.com/api/oauth2crm”.
  7. When you press the Create button, Zoho will generate the Client ID and Client Secret.
  8. Take note of the Client ID and Client Secret, as you will need them later.

Take note of the Client ID and Client Secret

Integration Notes and Pre-Requisites

  • 3CX Version 20, Update 6 now supports PKCE (Proof Key for Code Exchange). When the PBX is updated to the latest version, PKCE authentication flow will be applied and no further action is required on your part.

  • For correct integration between 3CX and Zoho CRM, ensure that you have the Projects module enabled in your Zoho CRM environment, with at least one project created.

Step 2: Configure 3CX

CRM configuration from 3CX Admin Console

  1. In the 3CX Admin Console go to “Integrations” > “CRM”.
  2. Select Zoho from the dropdown list.
  3. Enter the Accounts Server URL and Zoho CRM URL. The default value applies in many cases, but you can use for example https://accounts.zoho.eu and https://crm.zoho.eu if your account is based in Europe.
  4. Enter the Client ID and Client Secret from the previous step.
  5. Press the “Save” button and then the “Authorize” button. A new browser tab will be launched, asking you to grant permissions to the Client ID you just created.

Browser tab asking you to grant permissions to the Client ID.

  1. You will be prompted to select an account, choose your normal user account (not the developer account). Press the Accept button to grant access to the data from your Zoho account, to the Client ID previously created.

Step 3: Configure Call & Chat Journaling

Configuring Call & Chat journaling via 3CX Admin Console

  1. To report external calls and chats to Zoho, the email address configured for the 3CX extension must match the email address of a Zoho user. This way 3CX can map the 3CX extension receiving the call or chat to the Zoho user.
  2. Check the “Enable Call Journaling” option to report external calls to the CRM, and configure these “Call Journaling” parameters:
  1. “Call Subject” - the call’s subject.
  2. “Answered Inbound Call” - description for answered inbound calls.
  3. “Missed Call” - description for missed calls.
  4. “Answered Outbound Call” - description for answered outbound calls.
  5. “Unanswered Outbound Call” - description for unanswered outbound calls.
  1. Please note that you can use variables in the “Call Journaling” parameters, denoted as
    [variable_name]
    , e.g. the external number is specified as
    [Number]
    . The available variables to use are listed
    here.

Configuring Call & Chat journaling via 3CX Admin Console

  1. If you want to report chats to the CRM, check the Enable Chat Journaling checkbox and configure the parameters below:
  1. Create Task or Call: This parameter lets you decide whether chats should be stored in the CRM as Tasks or Calls.
  2. Chat Subject: The subject of the chat session.
  1. You can use variables in the “Chat Journaling” parameters, denoted as
    [variable_name]
    , e.g. the external number is specified as
    [Number]
    .
    The available variables to use are listed here.

Step 4: Configure e164 contacts and caller ID

  1. To get a match with Zoho, the incoming Caller ID must be identical to the CRM entry, including any prefix, as Zoho performs whole number lookups. Querying Zoho using a subset of the digits, does not return any data.
  2. To make Zoho integration work, you must store the numbers in Zoho using E164 format, and your SIP Trunk must provide the caller’s number in E164 format as well, so both match. If this is not the case, you can use Caller ID Reformatting to adjust the caller’s number before being passed on to the CRM.

Configure E.164 contacts and caller ID via 3CX Admin Console

  1. Now Go to “System” > “Phonebook” > “Options”, set the matching strategy to "Match exactly" and click “OK”.

Step 5: Configure Contact Creation

If you want to create new contacts in the CRM when a call is received from an unknown number, check the <b>“Allow contact creation directly to your CRM using 3CX Web Client”</b>

  1. If you want to create new contacts in the CRM when a call is received from an unknown number (not found in both 3CX and CRM), check the “Allow contact creation directly to your CRM using 3CX Web Client” checkbox and configure the parameters below.
  2. Contact Creation parameters are:
  • Create Lead or Contact - The entity to be created (Lead/Contact).
  1. When the caller’s number can’t be matched to a contact, the 3CX client will let the user complete the details in a dialog.

See Also

Last Updated

This document was last updated on 17 April 2025

https://www.3cx.com/docs/pbx-crm-integration-zoho/