Integrate 3CX Phone System Pro with
Zero Admin
With the new Dashboard
Bulletproof Security
With SSL certs and NGINX
Install on $150 Appliance
Intel MiniPC architecture
New, Intuitive Windows Client
More themes, more UC
More CRM Integrations
Scripting Interface to add your own
Improved Integrated Web Conferencing
iOS and Android apps included
Personal Click2Meet URLs

Integrate 3CX with Salesforce Integration

This guide will show you how to integrate Salesforce with 3CX Phone System

On this topic Integration


System Requirements

Deploying the Salesforce Integration

Configuring the Salesforce Plugin

General configuration

Salesforce configuration

Configuring Outbound Calls Via Salesforce

Launching Calls


3CX provides out of the box integration with Salesforce. This integration allows showing the contact record on inbound calls, saving the call information in the contact’s history, and launching outbound calls to your Salesforce contacts directly from the Salesforce web interface.

System Requirements

  • 3CX v15 PRO edition
  • 3CX client for Windows installed and running
  • Salesforce Enterprise account, Salesforce Unlimited account, or Salesforce Professional account with web services enabled (Salesforce Web Services API is used)

Deploying the Salesforce Integration

In order to deploy the Salesforce integration to your users, please follow these steps:

  1. From the 3CX Management Console you need to download the plugin from the 3CX update server to your 3CX server. Go to “Dashboard > Updates” Page. From the Integration category select “Salesforce” and press “Download.”
  2. To assign the Salesforce plugin to an Extension, go to the extensions page from the management console. Select the extension and click Edit, then navigate to the to the “Integration” tab. Enable Integration and select the from the list.
  3. Repeat the previous step for each extension you need to be set with Salesforce integration.

After completing these steps, and once the 3CX client is provisioned, the integration package will be received from the 3CX server and will be ready for use by the extension.

Configuring the Salesforce Plugin

In order to open the configuration dialog, press the Settings button in the 3CX client for Windows.


Select Advanced Settings” and then click Integration”. The configuration dialog will be shown.

General configuration

Click on “General” to open the general settings page. Here you can configure when you want to open the contact record in Salesforce (on ring, on answer, or don’t open it), and if you only want to open the contact record if the Caller ID length is larger than a number of digits (so it’s not launched when another extension is calling you).

If you also want to automatically register the call activity in the contact’s activity history, you must check the “Enable Journaling” option. When this option is set, the plugin will add a new record containing information about the call in the contact's activity history, after the call has ended. If you want to create a new contact when the Caller ID is not found, just check the option.

In the Behavior section you can also change the maximum digit length to compare. When an inbound call arrives at your extension, the caller ID may have different formats depending on your PSTN or VoIP Provider. It could have an international format (including the country code), national format (including the region or city code), or local format (including only the local number).

Also, you may have created your contact’s phone numbers in your Salesforce account with prefixes that are not present in the caller ID, such as mobile phone prefixes. In this case, to match the caller ID with the contact’s phone number, you need to specify the maximum digit length to compare parameter. Usually this parameter should be the length of your local phone number.

The Salesforce plugin will compare the final number digits of the Caller ID with the final number digits that appear in your contact’s phone number. If you configure this parameter to compare a high number of digits, there's a greater chance that the Caller ID will match up with the contact, but it's possible that the Caller ID will not always match up with some contacts. If you configure the maximum digit length to compare to a lower number of digits, you get less accuracy when matching the Caller ID with your contacts.

Salesforce configuration

Now, you need to fill in the Login Information section. Just enter your email address, password and security token. If you don't have a Security Token, login to Salesforce using the web interface and go to “Setup > My Personal Information > Reset My Security Token.”

Then, in the Contact Lookup section you can choose to look for contact information in the Contacts, Leads and / or Accounts tables, and select the lookup order in these tables. And finally, when opening a contact record, you can specify if you want it opened in your default browser, or configure the plugin to open the contact record in another browser.

Configuring Outbound Calls Via Salesforce

The Salesforce plugin automatically creates custom fields in your Salesforce database when a user with administration privileges is configured to use the application. Each created field allows you to easily dial a different number of a contact, lead or account. The list of fields automatically created follows:

  1. In the Contact table
  • Call assistant phone via 3CX
  • Call fax via 3CX
  • Call home phone via 3CX
  • Call other phone via 3CX
  • Call mobile phone via 3CX
  • Call phone via 3CX
  1. In the Lead table
  • Call fax via 3CX
  • Call mobile phone via 3CX
  • Call phone via 3CX
  1. In the Account table
  • Call fax via 3CX
  • Call phone via 3CX

These fields are hidden by default. In order to view them in the Contacts, Leads or Accounts pages, you need to login to Salesforce and change the field accessibility. To do this:

  1. Go to “Setup Home > Objects and Fields > Object Manager > Contact > Fields.” The custom fields will be included on the list. .
  2. Click on the custom field that you want to make visible, for example “Call mobile phone via 3CX”.

  1. Press the “View Field Accessibility” button on the upper right side of the screen.
  2. Click on the “Hidden” label on the right of “Standard User”.
  3. Under the “Field-Level Security” check the “Visible” option.

  1. Under the “Page Layout” select the “Add the Call mobile phone via 3CX…”, choose the “Contact Information” option from the “Section” drop down and check “Visible”.
  2. Press the “Save” button to finish.

Repeat the same procedure for every field that you want to view in the Contact page.

Repeat the same procedure for Leads and Accounts by going to “Setup Home > Objects and Fields > Object Manager > Leads / Accounts > Fields.” and selecting the desired field.

Launching Calls

The Salesforce plugin allows you to automatically dial contacts simply by clicking “Call this contact”. The call will be triggered and set up to the user’s desktop phone WITHOUT having to actually dial the number on the phone. This saves users a great deal of time.

Once you have changed the visibility attributes of the created custom fields, you are able to launch calls directly from the Salesforce web interface. The Contacts page should look as follows:

Now, for example, clicking on the link “Click here to call this contact with 3CX (client)” will launch a call to the contact’s phone using 3CX and connect it to your extension.

You might also be interested in:

Ask a Question

Please only post questions in regards to the document you are currently reading.
Technical support or pre sales questions must be posted via the support or sales channels and such comments will be deleted. Thank you for understanding

Leave a Reply

  1. Pingback: 3CX VoIP blog » Connect your 3CX Phone System to your CRM

  2. Pingback: 3CX VoIP blog » Integration with 3CX VoIP PBX

  3. Pingback: CRM Integration mit 3CX Phone System Pro - Optimierter Kudenservice

  4. Pingback: Intégration CRM avec 3CX Phone System Pro -Augmenter le service client

  5. Tiffany

    When I try to connect 3cx to salesforce, the fields do not automatically show up after following all the steps. What might be going wrong?

    July 1, 2015 at 10:05 pm Reply
    • Charalambos Eleftheriou

      Hi Tiffany, As this is a specific issue you will need to open a ticket with out support team so that they can investigate it for you.

      July 2, 2015 at 10:15 am
  6. When initiating and out-bound call from Salesforce through 3CX, is the Salesforce “Log a Call” function automatically invoked as well, or does the user need to execute a manual step to log the call in Salesforce also?

    February 24, 2016 at 10:44 pm Reply
    • Charalambos Eleftheriou

      @Greg, thanks for the question. If Journaling is enabled within the 3CX Plugins Manager tool the call will be logged automatically into Salesforce when the call ends.

      February 25, 2016 at 11:07 am
  7. Paul

    If call recording is enabled in 3CX, will the logged call activity record in Salesforce include a link to the recording?

    May 25, 2016 at 1:01 am Reply
    • Ernesto

      @Paul, no, the link to the recording will not be available, only the date and time the call started and ended, and the status (if the call was answered or not).

      May 25, 2016 at 4:14 pm
  8. Lauren

    Is there anyway to see any call log error on the 3cx side if the Salesforce plug-in is not working properly?

    June 7, 2016 at 12:52 am Reply
    • Ernesto

      @Lauren, the CRM Plugins logs are located at %AppData%\3CX CRM Integration\Logs

      June 7, 2016 at 9:06 am
  9. When I try to connect 3CX to SalesForce, the fields do not automatically show up after following all the steps. What step am I missing or what might be going wrong? Must I follow different steps with the SF Professional edition?

    June 22, 2016 at 5:32 am Reply
    • Ernesto

      @Maylene Peel, there are different possible reasons for this, first you need a Salesforce account with WebServices API enabled (some Professional accounts don’t have it and you need to ask for the feature), another possible cause is lack of permissions for your user. You can check the logs from “%AppData%\3CX CRM Integration\Logs” to see the error message you’re getting, and if you still have problems please open a ticket so we can help you with this. Thanks.

      June 22, 2016 at 3:41 pm
  10. Pingback: 3CX v15 DIY CRM Integration – Mear Technology Blog

  11. Inayat Khan

    I understand that If Journaling is enabled within the 3CX Plugins Manager tool the call will be logged automatically into Salesforce when the call ends.could you please let me know where to find Journaling option?

    October 17, 2016 at 2:53 pm Reply
    • Journaling is enabled by default. In salesforce the journaling is saved into the contact’s history when the call ends.

      October 18, 2016 at 11:01 am
  12. Nisar Ahmed

    Can we integrate/configure 3CX in salesforce sandbox and test it before configuring it in production ?

    November 15, 2016 at 12:43 pm Reply
    • Just put it on the live salesforce and proceed. What do you want to test in sandbox for? What can happen? At most a popup will open on your screen..
      The integration can be tested live. You make a call, the caller id must match and open the lead record. Journal entry is done and that’s it. There is nothing so dangerous or critical to test that requires you to stage a sandbox environment.

      November 15, 2016 at 12:52 pm
  13. stephanie Flouris

    hi trying to install on our Salesforce both Sandbox and Prod… not having any luck. Feilds arent getting created… any ideas on what we can do

    November 29, 2016 at 2:40 am Reply
    • Should work.. Do not use sandbox- Use production.
      Delete everything and start again from scratch – probably there is a confusion by using multiple salesforce platforms.

      November 29, 2016 at 2:08 pm
  14. Inayat Khan

    We integrated 3CX into Salesforce , working perfectly fine only problem we are facing is that when the call comes in it will open Salesforce contact in a new window and if we don’t answer the call and if the same caller calls back then it will open another window for the same contact even though the contact window is already opened on my PC, any idea how can i resolve this issue please.

    November 29, 2016 at 6:49 pm Reply
    • Ernesto

      @Inayat Khan, that’s the behavior by design. Every inbound call will pop up the contact record. If you already have that contact record opened, then the plug-in will pop it up again. The plug-in doesn’t have any way to know if the contact record is currently shown in the browser or not…

      November 29, 2016 at 8:17 pm
  15. Frazer

    After making a call in salesforce detail page (Accounts, contact) there are only a few columns showing up in “Activity History” related list (example: Subject, Call type,Created date…etc) . I have added few other columns in edit page layout but they ae still not populated (example : call duration in minutes, call notes, call from, call to…. etc). Any idea how I can fix this, please.

    December 5, 2016 at 11:58 am Reply
    • Ernesto

      @Frazer, the Salesforce plug-in fills the following fields when creating the activity history entry:
      – Date
      – Call Duration in seconds
      – Call Type (inbound / outbound)
      – Status (Completed)
      – Subject

      If you need to fill any other field, you can change the provided script. If you have questions related to how to update the script, please open a support ticket or make your question in the 3CX forum.

      December 5, 2016 at 2:28 pm
  16. I am using 3CX pro version 15, I have setup integration for salesforce on by softphone running Windows however when I go to salesforce I am not seeing the new custom fields.

    December 10, 2016 at 12:04 am Reply
    • What new custom fields are you expecting?

      December 10, 2016 at 11:11 am
    • Ernesto

      @Herbert, custom fields are hidden by default. You need to make them visible as explained in this article. If you can’t find the custom fields even hidden, then maybe there is a problem creating them. Please check the logs from the 3CXPhone client machine in folder “%AppData%\3CXPhone for Windows\Logs”. If you can’t figure it out, please open a support ticket or ask a question in our forums so we can help you out.

      December 11, 2016 at 2:01 am
  17. Ruben

    Supports this link lighting?

    January 2, 2017 at 7:34 pm Reply
    • Ernesto

      @Ruben, yes, we have many users running the plug-in in “Lightning Experience” mode without any issue.

      January 2, 2017 at 8:40 pm
  18. Raul Ortiz

    I have everything set up but when the call engages the 3CX windows client, the call drops right after the first ring. Has anyone seen this?

    January 11, 2017 at 9:55 pm Reply
    • Ernesto

      @Raul Ortiz, that’s not normal, please open a support ticket or post your question in the 3CX forums, so we can help you out.

      January 11, 2017 at 10:10 pm
    • Raul

      It seems it was the fact that the digits in salesforce did not match my digit mapping in 3CX. (xxx)xxx-xxxx vs 1xxxxxxxxxx.

      January 11, 2017 at 10:14 pm