Introduction

3CX provides integration with Zoho via the 3CX API for CRM. The configuration is done server side, in an easy and straightforward way. This integration provides many benefits to users of 3CX and Zoho, these being:

  • Contact Synchronization – inbound calls from external numbers trigger a CRM contact lookup to add to 3CX Contacts, so the caller name is automatically shown on your phone’s display when receiving the call.
  • Call Pop-ups – when using the 3CX Web Client, the customer record is brought up to you automatically when you receive an inbound call.
  • Call Journals – calls are logged as CRM call records
  • Create a new contact automatically when a call is received from an unknown number.
  • Click to Call – launch calls straight from Zoho via 3CX, using the 3CX Browser Extension.

This guide takes you through the steps required to setup your Zoho with 3CX.


Zoho Configuration

General Settings

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

Call Journaling

  1. If you want to report external calls to Zoho, you need to define the extension number for every Zoho user. This way 3CX can map the extension number of the agent that received the call to the Zoho user. You can use an existing standard field from the User entity, or you can also create a custom field. Information on how to process user fields can also be found here and here.
  2. You need to log in to your Zoho CRM account with Administrative privileges and go to Setup > Users and Control > Users.
  1. Select the user you want to edit from the list of available CRM users and click the Edit icon.
  1. In the Edit User form, click the Manage fields link
  1. In the User form builder select a Phone field from the New Fields Tray on the left and drag the required field type, and drop it into the desired module section on the right.
  1. Specify the label of the field. The unique field id that will be needed in 3CX Setup, is the initial label value of the field after replacing any spaces with “_”. In the example below the field id would be “Extension Number”“Extension_Number”
  1. Refresh the Edit User page, populate the newly created field with the extension number and click Save.
  1. Open any other Users for whom you need to report calls and fill the extension field.

3CX CRM Server Side Configuration

General Settings

  1. Login to the 3CX management console > "Settings" > "CRM Integration" > Server Side tab.
  2. Select Zoho from the dropdown list.
  1. 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 in based in Europe.
  2. Enter the Client ID and Client Secret from the previous step.
  3. Press the “Authorize” button. A new browser tab will be launched, asking you to grant permissions to the Client ID you just created.
  1. Press the Accept button to grant access to the data from your Zoho account, to the Client ID previously created.

Call Journaling

  1. If you want to report external calls to the CRM, check the Enable Call Journaling checkbox and configure the parameters below. Please note that this feature is only available for 3CX v16 and later installations.

2. Call Journaling parameters are:

  • Extension Field ID: The unique field id of the User entity field,created in the previous step, that holds the extension number of the User. This parameter must be set when call journaling is enabled. This parameter is used to map the 3CX Agent handling the call to the CRM User and assign the call to the specific User. Information on how to process user custom fields can be found here.
  • Subject: The subject of the call.
  • Answered Inbound Call: Description for answered inbound calls.
  • Missed Call: Description for missed calls.
  • Answered Outbound Call: Description for answered outbound calls.
  • Unanswered Outbound Call: Description for unanswered outbound calls.

3. Please note that you can use variables in the Call Journaling parameters. Variables are specified between [], for example the external number is specified as [Number]. The available variables are:

  • CallType - The type of call, it can be “Inbound”, “Outbound”, “Missed”, or “Unanswered”.
  • Number - The external contact number (the number dialed for outbound calls or the caller number for inbound calls).
  • Agent - The extension number of the agent handling the call.
  • Duration - The duration of the call in “hh:mm:ss” format.
  • DurationTimeSpan - The duration of the call as a TimeSpan object, which can be formatted as the user wants.
  • DateTime - The start date & time of the call, in local time zone, formatted using the local culture from the 3CX server.
  • CallStartTimeLocal - The start date & time of the call, in local time zone, as a DateTime object, which can be formatted as the user wants.
  • CallStartTimeUTC - The start date & time of the call, in UTC time zone, as a DateTime object, which can be formatted as the user wants.
  • CallEndTimeLocal - The end date & time of the call, in local time zone, as a DateTime object, which can be formatted as the user wants.
  • CallEndTimeUTC - The end date & time of the call, in UTC time zone, as a DateTime object, which can be formatted as the user wants.

Contact Creation

  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 Enable Contact Creation checkbox and configure the parameters below. Please note that this feature is only available for 3CX v16 and later installations.

2. Contact Creation parameters are:

  • Create Lead or Contact - The entity to be created (Lead/Contact).
  • New Contact First Name - The first name of the newly created Contact.
  • New Contact Last Name - The last name of the newly created Contact.

3. Please note that you can use variables in the first name and last name fields. Variables are specified between [], for example the external number is specified as [Number]. The available variables are:

  • Number - The external contact number (the number dialed for outbound calls or the caller number for inbound calls).