This article will take you through the configuration process to integrate Vtiger CRM with 3CX.
A
Abdul Sameer
9 Apr, 2024 - Updated
7 months ago
Table of Contents
Introduction
What is 3CX?
3CX is a software-based private branch exchange (PBX) based on the SIP (Session Initiation Protocol) standard. It enables extensions to make calls via the public switched telephone network (PSTN) or via Voice over Internet Protocol (VoIP) services.
3CX Integration with Vtiger
3CX provides integration with Vtiger. The configuration is done server-side easily and straightforwardly. This integration allows users of 3CX and Vtiger CRM to
Synchronize Contacts: Inbound and outbound calls for external numbers trigger a CRM contact lookup to add to 3CX Contacts, so the contact name is automatically shown on your phone’s display over a call.
Receive Call Pop-ups: When using the 3CX Web Client or Desktop App, the customer record auto-populates when you receive an inbound call.
Call Journals: Calls are logged as events in the CRM.
Chat Journals: Chats are logged as events in the CRM.
Create a new contact: Auto creates contact records for calls from unknown numbers.
Click to Call: The Click2Call Browser extensions to place calls directly from Vtiger CRM or mobile app for Google Chrome and Microsoft Edge.
3CX Integration with Vtiger CRM is executed in two phases:
Vtiger CRM configurations
3CX Phone server-side configurations
This article will take you through the configuration process to integrate Vtiger CRM with 3CX.
Note: This integration is enabled for Vtiger Cloud CRM and disabled for Community Edition.
To integrate 3CX and use it through Vtiger CRM, you must
Have an active subscribed business account with 3CX
Enable Phone Calls Module add-on in Vtiger CRM
Key Terminologies
Caller ID Reformatting
In the 3CX Phone System, each port-trunk-PSTN gateway or VoIP Provider trunk can format the incoming Caller ID number as specified by the administrator. This is to add a prefix or display a unified number format for inbound and outbound calls.
SIP Trunk
Session Initiation Protocol trunking is a service offered by 3CX that uses the protocol to provide voice over IP (VoIP) connectivity between an on-premises phone system and the public switched telephone network (PSTN).
FQDN
A fully qualified domain name (FQDN) is the domain name for a specific computer, or host, on the internet. The FQDN has two parts - the hostname and the domain name.
Access Key
Access key provides an alternative to the security credentials of a node user or system user.
Epoch or Unix time
The Unix epoch (or Unix time or POSIX time or Unix timestamp) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap seconds.
Vtiger CRM Configurations
Vtiger CRM configurations are configured on the CRM settings page and involve three stages:
General configuration
Calls and Chats journaling
Enabling the Leads module
General Configuration
Follow these steps for the general configuration::
Log in to your Vtiger CRM account.
Click the User Menu..
Select My Preferences.
Copy the following information to a Notepad or a document:.
URL (as shown above)
Username
Access Key
Calls and Chats Journaling
To report external calls and chats to Vtiger, the email address configured for the 3CX extension must match the email address of a Vtiger user. This way, 3CX can map the 3CX extension receiving the call or chat with the Vtiger user.
Enabling the Leads module
To be able to run the contact lookup on Leads, you need to ensure that the Leads module is enabled in Vtiger CRM.
Follow these steps to enable the Leads module:
Log in to your Vtiger CRM account.
Click the User Menu.
Select Settings.
Click Module Management.
Select Modules.
Click the Checkbox beside the Leads module.
You have now successfully enabled the Leads module in Vtiger CRM.
3CX Phone Server Side Configurations
3CX Phone server-side configurations are done in the 3CX management console. This involves the following stages::
Contact matching
General settings
Calls journaling
Chat journaling
Contact creation
Contact Matching
To get a contact match with Vtiger, the incoming Caller ID must be identical to the CRM entry, including any prefix. Vtiger can store the numbers in E164 format, so ensure that your SIP Trunk provides the caller’s number in E164 format and that they match. Or you can use Caller ID Reformatting to adjust the caller’s number before being passed on to Vtiger CRM.
Follow these steps to set up the condition for contact matching:
Log in to your 3CX Management Console.
Click Advanced.
Select Contacts.
Click Options.
Set the matching condition to Match exactly.
Click OK to save.
Note: Storing numbers in Vtiger with spaces, dashes, or any non-numeric character except by the plus + prefix may cause a contact mismatch.
General Settings
Follow these steps to configure the general settings:
Contact Lookup Order: Select the preferred contact lookup order
Enable Lookup on Leads: Enable the Checkbox to enable lookup on leads.
Note: Ensure that the Leads module is enabled in Vtiger if you enable the lookup on the leads option.
Calls Journaling
If you want to report external calls to Vtiger CRM, enable the Enable Call Journaling checkbox and configure the following parameters.
The Call Journaling parameters are
Subject: The subject of the call.
Answered Inbound Call: Description for answered inbound calls (agent-customer conversation).
Missed Call: Description of missed calls.
Answered Outbound Call: Description for answered outbound calls (agent-customer conversation).
Unanswered Outbound Call: Description of unanswered outbound calls.
Note:
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).
CallDirection: The direction of the call, either Inbound or Outbound.
Name: The name of the matched contact.
EntityId: The ID of the matched contact.
EntityType: The type of the matched contact (i.e., Contacts).
Agent: The extension number of the agent handling the call.
AgentFirstName: The first name of the agent handling the call.
AgentLastName: The last name of the agent handling the call.
AgentEmail: The email 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 the local time zone, formatted using the local culture from the 3CX server.
CallStartTimeLocal: The start date & time of the call, in the 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.
CallEstablishedTimeLocal: The date & time in which the call was placed, in the local time zone, as a DateTime object, which can be formatted as the user wants.
CallEstablishedTimeUTC: The date & time in which the call was established, 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 the 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.
CallStartTimeLocalMillis: The start date & time of the call in the local time zone, expressed as milliseconds since epoch (aka unix time).
CallStartTimeUTCMillis: The start date & time of the call, in UTC time zone, expressed as milliseconds since epoch (aka unix time).
CallEstablishedTimeLocalMillis: The date & time in which the call was established in the local time zone, expressed as milliseconds since epoch (aka unix time).
CallEstablishedTimeUTCMillis: The date & time in which the call was established, in UTC time zone, expressed as milliseconds since epoch (aka unix time).
CallEndTimeLocalMillis: The end date & time of the call, in the local time zone, expressed as milliseconds since epoch (aka unix time).
CallEndTimeUTCMillis: The end date & time of the call, in UTC time zone, expressed as milliseconds since epoch (aka unix time).
Chat Journaling
If you want to report chats to Vtiger CRM, check the Enable Chat Journaling checkbox and configure the parameters below.
Chat Journaling parameters are:
Subject: The subject of the chat session.
Note: You can use variables in the Chat Journaling parameters. Variables are specified between []. For example, the external number is specified as [Number]. The available variables are
Number: The external contact number (only available when this is a chat through SMS).
Email: The external contact email address (only available when this is a chat through Live Chat).
Name: The name of the matched contact.
EntityId: The ID of the matched contact.
EntityType: The type of the matched contact (i.e., Contacts).
QueueExtension: The extension number of the queue, only when the chat arrives to the agent through a queue.
ChatMessages: The messages sent and received during the chat session.
Agent: The extension number of the agent handling the chat.
AgentFirstName: The first name of the agent handling the chat.
AgentLastName: The last name of the agent handling the chat.
AgentEmail: The email of the agent handling the chat.
Duration: The chat duration in “hh:mm:ss” format.
DurationTimeSpan: The duration of the chat as a TimeSpan object, which can be formatted as the user wants.
DateTime: The start date & time of the chat in the local time zone, formatted using the local culture from the 3CX server.
ChatStartTimeLocal: The start date & time of the chat, in the local time zone, as a DateTime object, which can be formatted as the user wants.
ChatStartTimeUTC: The start date & time of the chat, in UTC time zone, as a DateTime object, which can be formatted as the user wants.
ChatEndTimeLocal: The end date & time of the chat, in the local time zone, as a DateTime object, which can be formatted as the user wants.
ChatEndTimeUTC: The end date & time of the chat, in UTC time zone, as a DateTime object, which can be formatted as the user wants.
ChatStartTimeLocalMillis: The start date & time of the chat session in the local time zone, expressed as milliseconds since epoch (aka unix time).
ChatStartTimeUTCMillis: The start date & time of the chat session, in UTC time zone, expressed as milliseconds since epoch (aka unix time).
ChatEndTimeLocalMillis: The end date & time of the chat session in the local time zone, expressed as milliseconds since epoch (aka unix time).
ChatEndTimeUTCMillis: The end date & time of the chat session, in UTC time zone, expressed as milliseconds since epoch (aka unix time).
Contact Creation
If you want to create new contacts in Vtiger 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.
Contact Creation parameters are:
Create Contacts on Call Direction: Select if you want 3CX to create contacts on Inbound calls only or also on Outbound calls.
Create Lead or Contact: The entity to be created (Lead or Contact). Please ensure that the Leads module is enabled in Vtiger if you select “Lead” here.
New Contact First Name: The first name of the newly created Contact.
New Contact Last Name: The last name of the newly created Contact.
Note: You can use variables in the first and last names fields. Variables are specified between [ ]. For example, the external number is specified as [Number]. The available variables are
Number: The external contact number (dialed for outbound calls or the caller number for inbound calls).
CallDirection: The direction of the call, either Inbound or Outbound.