Полезные кастомизации

Начиная с версии 3.0.0.

Обновление кастомизаций, начиная с версии 3.0.0

Звонки регистрируются через API телефонии Битрикс24, что позволяет использовать сквозную аналитику.

По сравнению с версиями 2.15.0–2.15.6:

  • Выделена кастомизация need registration, в которой можно реализовать черные и белые списки;

  • Разделена кастомизация phone_number на два метода – client_phone и user_phone.

Схема обработки звонка модулем интеграции Itgrix

(Схема для версий начиная с 3.0.0)

“Сущность” – это контакт или лид. Запрос разговора – это начало звонка на внутреннем номере. В одном звонке может быть несколько разговоров (в случае перевода звонка).

Краткое описание кастомизаций

Файл кастомизации (по алфавиту)

Описание

customize_activity.php

Обновление полей дела (в конце звонка).

customize_entity.php

Обновление полей сущности (в конце звонка).

need_registration.php

Нужна ли регистрация звонка? Можно сделать черные/белые списки по внутреннему номеру/транку.

process_final_params.php

Изменение данных завершения звонка.

process_originate_params.php

Изменение параметров при инициализации звонка из CRM. Можно позвонить через другой транк, через другой контекст, сменить формат номера и прочее.

process_client_number.php

Изменение номера телефона перед регистрацией в Б24/AmoCRM: Можно сменить формат телефонного номера (+7, 8...).

process_client_number.php

Изменение номера пользователя перед поиском пользователя в Б24.

process_record_file_path.php

Кастомизация пути до файла записи разговора.

process_registration_params.php

Изменение параметров регистрации звонка.

process_task_creation_params.php

Кастомизация создания задач по пропущенным звонкам.

Входные и выходные параметры кастомизаций

1) process_originate_params

Изменение параметров при инициализации звонка из Битрикс.

Примеры: Изменения номера\контекста для вызова в Астериск.

Вход:

{ "params": { "caller_id": "<caller_id>", "channel": "<channel>", "context": "<context>", "extension": "<extension>", "priority": "<priority>" } }

Вернуть:

{ "data": { "caller_id": "<caller_id>", "channel": "<channel>", "context": "<context>", "extension": "<extension>", "priority": "<priority>" } }

К этому массиву данных можно добавить переменные "codecs" и "variables":

"codecs": "<codecs>", "variable": "variable",

2) process_client_phone

Преобразование номеров, как внешних.

Пример: Изменение номера телефона перед отправкой данных в CRM.

Вход:

{ "params": { "phone": "<номер>" } }

Вернуть:

{ "data": { "phone": "<кастомизированный_номер>" }, "state": "success" }

3) need_registration

Используется для реализации функционала чёрных/белых список по номерам, транкам и прочим сложным условиям.

Пример: Черные и белые списки. Как настроить?

Вход:

{ "params": {<Набор данных о единичном разговоре в звонке>} }

Набор данных о разговоре описан ниже в разделе Данные разговора в параметрах.

Вернуть:

{ "data": { "result": "<Булева переменная: true - регистрируем, false - игнорируем>" }, "state": "success" }

4) process_registration_params

Используется для кастомизации параметров регистрации начала звонка.

Примеры: Изменение внешнего номера в Битрикс24.

Вход:

{"params": {
"CALL_START_DATE": "<Дата, время начала звонка>",
"CRM_CREATE": "<Создавать или нет новый лид (если номер не найден в CRM)>",
"CRM_SOURCE": "<STATUS_ID источника из справочника источников>",
"LINE_NUMBER": "<Транк, на который пришел звонок>",
"PHONE_NUMBER": "<Номер для поиска сущности в битрикс>",
"SHOW": "<[0/1] Показывать ли карточку звонка при регистрации>",
"TYPE": "<Направление звонка: 2 - входящий; 1 - исходящий>",
"USER_ID": "<Идентификатор пользователя>",
"conversation": {<Набор данных о разговоре>}
}}

Набор данных о разговоре описан ниже в разделе Данные разговора в параметрах.

Вернуть:

Полный список параметров в документации Битрикса.

{"data": {
"CALL_START_DATE": "<Дата, время начала звонка>",
"CRM_CREATE": "<Создавать или нет новый лид (если номер не найден в CRM)>",
"CRM_SOURCE": "<STATUS_ID источника из справочника источников>",
"LINE_NUMBER": "<Транк, на который пришел звонок>",
"PHONE_NUMBER": "<Номер для поиска сущности в битрикс>",
"SHOW": "<[0/1] Показывать ли карточку звонка при регистрации>",
"TYPE": "<Направление звонка: 2 - входящий; 1 - исходящий>",
"USER_ID": "<Идентификатор пользователя>"
},
"state": "success"
}

5) process_final_params

Начиная с версии 2.15.0 кастомизация всех черных/белых списков реализуется через need_registration.

Примеры: Разные ответственные за пропущенные за разные транки.

Вход:

{"params": { "ADD_TO_CHAT": "<Добавить сообщение о звонке в бизнес чат>", "CALL_ID": "<Идентификатор звонка в битрикс>", "DURATION": "<Длительность>", "STATUS_CODE": 200, "USER_ID": "<Идентификатор пользователя Битрикс, ответственного за разговор>", "conversation": {<Набор данных о разговоре>} }}

Набор данных о разговоре описан ниже в разделе Данные разговора в параметрах.

Вернуть:

{"data": { "ADD_TO_CHAT": "<Добавить сообщение о звонке в бизнес чат>", "CALL_ID": "<Идентификатор звонка в битрикс. Не рекомендуется изменять!>", "DURATION": "<Длительность>", "STATUS_CODE": "<SIP-код статуса звонка>", "USER_ID": "<Идентификатор пользователя Битрикс, ответственного за разговор>" }, "state": "success" }

6) process_record_file_path

Преобразование пути до файла записи разговора.

Пример: Кастомизация имени файла аудиозаписи.

Вход:

{"params": { "call_id": "<id_звонка>", "from": "<номер>", "to": "<номер>", "path": "<путь_до_записи>" } }

Вернуть:

{"data": { "path": "<кастомизированный_путь_до_записи>" }, "state": "success" }

7) process_task_creation_params

Событие возникает перед постановкой задачи (при пропущенном входящем звонке). Полное описание полей задачи в API Битрикса.

Пример: Кастомизация создания задач по пропущенным звонкам.

Вход:

В версии 2.15.0 добавлен блок данных о разговоре (conversation).

{"params": {
"arNewTaskData": {
"DEADLINE":"<Крайний срок исполнения>",
"CREATED_BY": "<Идентификатор постановщика>",
"RESPONSIBLE_ID": "<Идентификатор сотрудника, ответственного за задачу>",
"TITLE":"<Заголовок задачи>",
"UF_CRM_TASK": ["L_11201"]
},
"conversation": {
"1550838819.13014": {<Набор данных о разговоре>},
"1550838850.13029": {<Набор данных о разговоре>}
}
}}

Набор данных о разговоре (conversation) описан ниже в разделе Данные разговора в параметрах.

Вернуть:

{"data": { "arNewTaskData": { "<Название поля задачи в битрикс>": "<Значение этого поля>" } }, "state": "success" }

8) get_updated_activity_fields

Обновление полей дела в конце звонка.

Примеры использования: Обновление полей дела.

Вход:

{"params": {<Набор данных о разговоре>} }

Набор данных о разговоре описан ниже в разделе Данные разговора в параметрах.

Вернуть:

{"data": { "<Название поля дела в битрикс>": "<Значение этого поля>" }, "state": "success" }

9) get_updated_entity_fields

В версии 2.15.0 get_updated_lead_fields перенесена в get_updated_entity_fields и вызывается и для лидов, и для контактов.

Обновление полей лида/контакта в конце входящего звонка работает только для сущностей, которые созданы в результате регистрации звонка модулем.

Примеры использования: Обновление полей сущности.

Вход:

{"params": {
"conversations": {
"1550838819.13014": {<Набор данных о разговоре>},
"1550838850.13029": {<Набор данных о разговоре>}
},
"answered_at":"",
"ended_at":"",
"from":"",
"from_local":false,
"id":"1550838797.13013",
"started_at":"",
"state":3,
"to":"",
"to_local":true,
"trunk":"",
"type":
}}

Набор данных о разговоре описан ниже в разделе Данные разговора в параметрах.

Вернуть:

{"data": { "<Название поля лида в битрикс>": "<Значение этого поля>" }, "state": "success" }

Описание полей лида в API Битрикса. Описание полей контакта в API Битрикса.

Параметры разговора (conversation)

{
"answered_at": "<Дата и время ответа>",
"channel_id": "<Идентификатор канала>",
"ended_at": "<Время завершения разговора>",
"from": "<Номер звонящего>",
"from_local": "<Является ли локальным номер звонящего: true/false>",
"id": "<Идентификатор звонка>",
"parent_channel_id": "<Идентификатор родительского канала>",
"started_at": "<Дата и время начала звонка>",
"state": "<Этап звонка. Числовое значение>",
"state_code": "<Человекопонятное название этапа.
Возмоные значения: unknown, ringing, talking, ended>",
"to": "<Номер, на который пришёл звонок>",
"to_local": "<Является ли локальным номер принимающего: true/false",
"trunk": "<Внешний номер, на который поступил звонок>",
"type": "<Направление звонка. Принимает значения:
1 - внутренний; 2 - входящий; 3 - исходящий>",
"type_code": "<Направление звонка. Принимает значения:
local - внутренний, incoming - входящий, outgoing - исходящий>",
"was_answered": "<Является ли звонок отвеченным: true/false>"
}

Пример (входящий неотвеченный разговор с номера 89123456789 на 123 через транк 3432723033):

{
"answered_at": null,
"channel_id": "1175429532.4512",
"ended_at": null,
"from": "89123456789",
"from_local": false,
"id": "1175429532.4512",
"parent_channel_id": "1175429532.4511",
"started_at": "2019-04-01 12:05:25",
"state": 1,
"state_code": "ringing",
"to": "123",
"to_local": true,
"trunk": "3432723033",
"type": 2,
"type_code": "incoming",
"was_answered": false
}