Zendesk CRM Integration
Introduction
3CX provides integration with Zendesk via the 3CX API for CRM with the following features:
- Caller ID to Contact Name – inbound calls trigger a Zendesk contact lookup.
- Contact Lookup in Zendesk 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 Zendesk Contact Card as tickets.
- Create a new Zendesk contact from the 3CX client for calls from new numbers.
- Click to Call – launch calls straight from Zendesk via 3CX, using the 3CX Click2Call Browser extensions for Google Chrome and Microsoft Edge.
Step 1: Configure Zendesk
- Login to your Zendesk account.
- Click on the “Settings” icon on the side menu, then follow the link to the “Admin Center”.
- Navigate to “Apps and Integrations > APIs > Zendesk API > OAuth Clients” and click on “Add OAuth client”.
- Enter the Client Name, for example: ”3CX Integration”.
- Description - Optional.
- Company - Optional.
- Logo - Optional.
- Enter a Unique identifier. This value will be later used in the Client ID field in 3CX. The field is auto-populated with a reformatted version of the name you entered for your app. You can change it if you want.
- For Client Kind, select the option “Confidential” from the drop down list.
- In the Redirect URLs 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/api/oauth2crm”.
- When you press the Save button, Zendesk will generate the Client Secret.
- Take note of the Unique identifier and Secret, as you will need them later.
📄 Note: 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.
Step 2: Configure 3CX
- In the 3CX Admin Console go to “Integrations” > “CRM”.
- Select “ZendeskV2” from the dropdown list.
- Choose if you want to query your CRM contact list “Always” or “Only if contact is not found in 3CX Phonebook”.
- Tick the checkbox if you want your CRM contacts to be added to the 3CX company phonebook.
- Enter the URL you use to access your CRM instance, for example “https://3cx.zendesk.com”.
- Enter the Unique identifier in the Client ID field and the Secret in the Client Secret field.
- If you want to enable contact creation from the 3CX client, check this option. When the caller’s number can’t be matched to a contact, the 3CX client will let the user create the contact by filling the details in a dialog.
- Click the “Save” button and then press the “Authorize” button. A new browser tab will be launched, asking you to grant permissions to the application you just created.
📄 Note: when creating contacts in Zendesk, the company name specified in the Web Client will be ignored. This is due to Zendesk API limitations.
Step 3: Configure Call & Chat Journaling
- To report external calls and chats to Zendesk, the email address configured for the 3CX extension must match the email address of a Zendesk user. This way 3CX can map the 3CX extension receiving the call or chat to the Zendesk user.
- Check the “Enable Call Journaling” option to report external calls to the CRM, and configure these “Call Journaling” parameters:
- “Call Subject” - the call’s subject.
- “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.
- 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.
- If you want to report chats to the CRM, check the Enable Chat Journaling checkbox and configure the parameters below:
- Chat Subject: The subject of the chat session.
- Please note that 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.
See Also
- See how to integrate your CRM with the 3CX API.
- Learn how to set up Freshdesk integration.
- Learn how to set up HubSpot integration.
- Learn how to set up Jetpack CRM integration.
- Learn how to set up Salesforce integration.
- Learn how to set up Vtiger integration.
- Learn how to set up Microsoft SQL Server, MySQL and PostgreSQL database integrations.
Last Updated
This document was last updated 17 April 2025
