📜 ⬆️ ⬇️

Pro friendship boa with an elephant, or our experience of integrating Bitrix24 with Cisco telephony


One of the tenders gave us an interesting task: the customer needed CRM for the contact center of the residential and commercial real estate sales department. In addition to the implementation of a specific real estate catalog (chess facilities), integration with elements of the company's information infrastructure was required, among which was Cisco telephony (at the time of the commencement of work, CUCM 10.5). Despite the complete lack of experience with Cisco products, we had a clear view of the implementation of the rest on the basis of Bitrix24, as well as little experience in building call centers and a fair amount of adventurism. As a result, we proposed to organize a contact center at UCCX and associate the latter with Bitrix24. What came out of it - under the cut.

Interaction scenarios


Each call to the sales department number linked to UCCX should be transferred to the operator responsible for this customer, to a public queue or to voice mail (the call flow chart will be lower). When a call is made to a specific operator, a client card opens in its browser (for customers already existing in the system) or a sales script (for new customers).

Calls to customers the operator makes of CRM by clicking on the link with the phone number, or direct dialing. Missed or failed calls are recorded in a special report in CRM, where they are subsequently processed by the operator. The management monitors the work statistics of the contact center in Bitrix24. General scheme of product interconnections:


')
So, we implement the following interaction scenarios:


Training


To at least somehow approach integration, we need local stands with all products (we had virtual machines on ESXi). And if BitrixVM and Bitriks24 turned around in 15 minutes, the installation and configuration of CUCM + UCCX took away most of the time, which you can write a lot about for a long time. Here we denote only some of the pitfalls that stumbled upon in the process.

The first one is a long process of installing and starting / restarting the server. 10 minutes to start is normal. When you first encounter, a little discouraging. And taking into account the fact that, before obtaining an acceptable result, we had to reinstall the product 15 times, this resulted in quite a decent time.

The second is that the phone template in CUCM should be IP4 only, not IP4 + IP6, otherwise it will not be possible to get CUCM users as UCCX agents.

The third, which we encountered already when running at the customer - this is the limit on the length of the string in the user name. Full name with more than 27 characters does not allow configuring users as agents. When trying to configure, an error “Error occured while reading the Resource” is displayed .

Now two words about the workplace of the contact center operator. Of the two options offered by Cisco (the Finesse browser solution and the desktop CAD application for Windows), the choice fell on Finesse - a web client that implements all the necessary functionality on the operator’s side. Other things being equal, it has a more modern look and blends perfectly with browser Bitrix24.

So, having completed 7 laps of hell after the preparatory stage, we have two separately working systems: Bitrix24 and CUCM + UCCX. But all the interesting is yet to come.

Integration


It should be noted that the SIP-connector comes bundled with Bitrix24, which allows you to connect office PBXs to Bitrix24, but the idea of ​​using a regular module died without even having time to be born.

The fact is that this module is a virtual cloud based PBX based on Voximplant, and according to customer requirements, all elements of the system must be located in the internal network. Moreover, Asterisk as an interlayer (and by that time we had already mastered its direct integration with Bitrix24) did not suit the customer due to the lower reliability and resiliency of the system. We only had to patiently smoke mana on UCCX.

The integration itself can be divided into two parts: work on the side of UCCX / Finesse and work on the side of Bitrix24.

UCCX side actions


To begin, set up a queue - everything is according to the manual. Next, we create a trigger, a special number, when transferring a call to which the application (application) is launched from CUCM - a kind of container that includes the script and the environment (variables, language, etc.). Then we create a script (script) - a program in a special language that implements the call processing logic when passing through a call center. To create it, use the UCCX Script Editor, which comes with the UCCX. This tool allows you to create scripts and debug them. You can download it from the Cisco Unified UCCX Administrator Tools-> Plugins web interface. Installs only on Windows. Below is the script itself.


While working with different versions of UCCX, we noticed one feature: the script created in version 10.5 will not necessarily work in version 11.0. In the process of working on the integration, we moved from UCCX 10.5 to 11.0, so we had to recreate the script in the editor of the 11th version.

It is in the script that integration begins. After receiving the client number, use the Create URL Document and Create XML Document to transfer the client number to CRM and get the number of the person in charge (or information about its absence), then transfer the call to a specific operator or to a queue.

So that when you receive a call to an operator in Finesse, the necessary lead / contact opens in the next tab, using Set Enterprise Call Info, we save the caller's number in a variable that will be available in the Finesse handler. A flowchart describing the call flow logic:



Creating a workflow in Finesse


After the call went to the operator, he comes to Finesse. If the client is already registered in R, a page with information about it is opened in the next tab. If not, the sales script opens. In Finesse, this is implemented through the workflow mechanism. Select the event - call arrival, and determine the action for it. Among the supported types of actions is Open in a new tab . We set the path (our CRM, i.e. Bitrix24) and parameters (client id or sales script). There is a mechanism for testing directly from Finesse, you only need to set the values ​​of variables. All actions are done through the Finesse Administartor. Screenshots below.





This is where the UCCX / Finesse work ends. Go to Bitrix24.

Actions on the side of Bitrix24


In Bitrix24, you need to create several scripts:

1. The script that processes the request for the presence of the number of the caller (client) in CRM Bitrix24. Using the API, we make a request for a lead / contact with a client number. If there is a phone in the database, we transfer the internal number of the person in charge; if not, we create a lead with the caller’s phone and save, indicating a specially created account for the raw leads as the person in charge. If the call is processed, the operator will be made responsible when filling in the sales script, if not - the lead will be included in the report on unprocessed calls, from where the first released operator will take it.

2. The script that initiates the outgoing call from Bitrix24. Clicking on the number inside the lead / contact card and on the lead / contact list page initiates a call through Finesse. The integration mechanism is based on the Finesse REST API. The Dialog object used is Create a New Dialog (Make a Call) . Examples are in the Finesse manual.

3. Statistics.
Statistics are taken directly from UCCX. CCDR records are stored in the Informix database on the UCCX server (although there are separate solutions when the CUIC (Cisco Unifiled Intelegence Center) is installed separately). The third script is used to connect to Informix and get statistics data. The main thing is to make a request correctly, and the resulting datetime lead to the time zone of the Bitrix24 server. The structure of the base is a bit tricky, but all the tables and fields are described in detail in the manuals for Infomix. These are the reports in CRM:



Total


This engineer will solve any technical problem - for him it is only a matter of time and motivation. For us, this task turned into four months of immersion in a completely unknown product with its features and oddities. It was not easy: despite the sleepless nights, some, at first glance obvious, the results on the control points could be achieved 15 minutes before the presentation to the customer. And we did it: the system (except for the integration with telephony described here, it includes integration with three other external systems and about 400 hours for the implementation of specific functionality) was put into operation and successfully survived the major update of Bitrix24 (from version 15.5 to 16.5).

Source: https://habr.com/ru/post/313108/


All Articles