Integration of your CRM and telephony

Setup guides / Other CRM

Why do you need to integrate your own CRM/ERP/Desk with PBX

Most systems for business (CRM/ERP/Desk etc.) automate communication with clients and/or partners. While a significant part of communication is handled over the phone, the system simply has to be integrated with IP-telephony.

Especially for CRM/Desk and other automation system developers we are offering a manual for integrating your system with Zadarma IP-telephony.

Advantages of integrating with Zadarma:

  • large Zadarma client database (over 2 million) will get an access to your services;
  • your clients can integrate telephony at no expenses (PBX, API, integrations are free);
  • worldwide coverage, your clients can be anywhere in the world (support in 7 languages, data centers on three continents, virtual numbers in 100 countries).

Also, after the integration, if your website is visited by over 30 thousand users a month, we are ready to test your integration and place the instruction on our website (what will give you access to free traffic from top VoIP providers in Europe).

In the personal account by this link there are direct integrations available (developed by us) with various systems, as well as in the section Help – Setup manual you can find integrations with third-party systems developed without our input. Open API allows to fulfill a complete integration with Zadarma virtual PBX, this can be accomplished by any developer due to a low level of difficulty. For efficiency, we will take a look at the integration of virtual Zadarma PBX and a third-part CRM.

Main features:

Interaction with API can be conditionally divided into two parts:

1. Requests (POST, GET) from CRM side to API Zadarma

2. System of call notifications (webhook), POST-requests with information regarding calls send by our API to CRM

The full API documentation can be found here.

1. Integration setup on Zadarma side

Conditions necessary to start the integration:

In Zadarma personal account:

1. API authorization keys are generated (Key and Secret)

2. Virtual PBX is created and Setup wizard completed (PBX extension lines with call recording according to the number of CRM users, incoming calls scenario)

We have a Zadarma account and a certain CRM, which has a URL address for telephony module, for example:

https://mybestcrm.com/zadarma

or

https://id12345678.mybestcrm.com/zadarma

Further we will use this link as an example https://mybestcrm.com/zadarma (You need to have a link indicating your CRM)

In Zadarma personal account in section Settings – API in the column “Notify me and send the data in the following events:” all types of notifications have to be checked. In the section “Call notifications to the PBX” in the field “Link to your website” enter your CRM’s URL, the notifications about calls will be sent to this address.

In order for the system to accept the link, it is necessary to add a verification code at the beginning of the script.

Example for PHP:


<?php if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']); ?>

Link validation occurs after clicking the “Add” button, a random collection of symbols is sent to the link, for example, 1234567. According to the code above the link has to send back the value without additional symbols, spaces, BOM sequences, etc. If the link doesn’t go through validation, check what value is returned and send a curl request to your link adding to it ?zd_echo=1234567


 curl https://mybestcrm.com/zadarma?zd_echo=1234567

The link has to return the value 1234567.

If it is empty or has a value different from 1234567 – validation was not successful.

To increase security, we recommend you to allow access to your link only from IP 185.45.152.42 In each request to your link you will receive and additional title "Signature", which can also be used to check data integrity and authenticity. More on that here.

2. Integration setup on the CRM side

In Zadarma personal account you already have a validated link to the CRM that will receive call notifications, and authorization keys created, now these keys have to be saved in CRM. On CRM side there should be a page for integration setup, let’s call it “Telephony settings”, this page has to have the following main parameters:

  • Fields for keys authorization (Key and Secret).
  • Link to telephony module in CRM, which we have been validating before https://mybestcrm.com/zadarma.
  • A list of users with an option to set a unique PBX extension number for each of them.

A list of extension numbers can be obtained using method GET /v1/pbx/internal/

From the received list of extension numbers we form a contextual menu for assigning and extension number to each CRM user. If an extension number is already assigned to a user, it cannot be available for choosing or assigned to another user.

We recommend making one of the users responsible by default, by creating an appropriate checkbox on the telephony setup page. Responsible by default is an employee that will be automatically appointed for events that do not have a clearly assigned manager. For example, an incoming call from a new client is simultaneously directed to 5 extension numbers (5 CRM users) and if none of them picks up, we don’t want to lose a client. For such situation an event should be created in CRM where a “Missed call from number” task or lead is added, but if it is assigned to all 5 users, the client will receive 5 callback, which is not ideal. In this case, the event can be assigned to the responsible by default (for instance a Sales Manager). If you have a pool of undealt with leads in CRM and users themselves take leads and become responsible according to an internal algorithm, the option to create a responsible by default can be skipped.

Telephony settings in CRM are usually available only to the user with administrator/manager access. For call centers displaying remaining Zadarma balance on the telephony settings page can be useful. You can obtain balance using this method GET /v1/info/balance/

3. Outgoing calls from CRM interface

4. Pop-up call notifications in CRM interface

5. Audio records and call statistics

6. Automatic contact/lead/deal creation during a call from a new client

7. Automatic incoming call routing to the responsible employee

8. Client name display in IP-phone/softphone

9. Missed calls reminders

10. Blacklist in CRM

11. Adding the integration to Zadarma personal account

We recommend to make features from items 6-10 optional so that the end-user can enable/disable needed features on the page “Telephony settings” in CRM