Кастомизации (до 2.15.0)

Как перенести кастомизации на новую версию

  1. Переименовать get_updated_lead_fields.php в get_updated_entity_fields.php.

  2. Перенести код для черных/белых списков (если есть) из кастомизаций process_search_params.php и/или process_final_params.php в need_registration.php.

Если версия с одним кастомизатором

Если у вас версия до 2.13.1, то вас скорее всего единый файл кастомизации, его нужно будет разделить на отдельные файлы.

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

(Схема для версий до 2.15.0)

Описание схемы

“Сущность” — это контакт или лид.

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

Файл кастомизации

Описание

get_search_filter.php

Фильтруем полученные из Б24 сущности. (Для посвященных в Битрикс. Только для избранных.)

Можно выбрать по параметрам, с какими сущностями работать.

get_updated_activity_fields.php

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

get_updated_entity_fields.php

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

need_registration.php

Нужна ли регистрация?

Можно сделать черно-белые списки по внутреннему номеру/транку.

process_entity_creation_params.php

Изменение параметров создания сущности в Б24

process_final_params.php

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

process_originate_params.php

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

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

process_phone_number.php

Изменение номера получаемого телефона

Можно сменить формат телефонного номера (+7, 8...).

process_record_file_path.php

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

process_registration_params.php

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

process_task_creation_params.php

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

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

1) process_phone_number

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

Примеры использования

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

Вход:

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

Вернуть:

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

2) process_record_file_path

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

Примеры использования

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

Вход:

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

Вернуть:

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

3) 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": "<codecs>", "variable": "variable"

4) process_search_params

Изменение параметров поиска сущности, а также данных на входе

Примеры использования

Черные и белые списки

Кастомизация поиска

Вход:

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

Вернуть:

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

Опционально:

"action": "<ignore/register При значении ignore, звонок НЕ будет зарегистрирован в CRM>", "filter": { - параметры для поиска в битрикс. Логика описана в статье https://bx24asterisk.ru/support/30-customize_search_params "lead": {}, "contact": {}, "company": {} }

5) process_final_params

Преобразование данных завершения звонка.

Примеры использования

Организация черных и белых списков

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

Вход:

{"params": {
"ADD_TO_CHAT": "<Добавить сообщение о звонке в бизнес чат>",
"CALL_ID": "<Идентификатор звонка в битрикс>",
"DURATION": "<Длительность>",
"STATUS_CODE": 200,
"USER_ID": "<Идентификатор пользователя Битрикс, ответственного за разговор>",
"conversation": {
"answered_at": "<Время поднятие трубки>",
"channel_id": "<Идентификатор канала>",
"ended_at": "<Время окончания разговора>",
"from": "<Номер позвонившего>",
"from_local": <Локальный номер позвонившего. Принимает значение true или false>,
"id": "<Идентификатор звонка>",
"parent_channel_id": "<Идентификатор родительского канала>",
"started_at": "<Время начала звонка>",
"state": <Статус состояния звонка>,
"state_code": "<Состояния звонка>",
"to": "<Номер, кому пришел звонок>",
"to_local": <Локальный номер принимающего. Принимает значение true или false>,
"trunk": "<Внешний номер, на который поступил звонок>",
"type": <Направление звонка. Принимает значения: 1 - внутренний; 2 - входящий; 3 - исходящий>,
"type_code": "<Направление звонка. Принимает значения: incoming - входящий, outgoing - исходящий>",
"was_answered": <Отвеченный звонок. Принимает значение true или false>
},
"entity_data": {
"entity_id": <Идентификатор сущности в битрикс>,
"entity_type": "<Тип сущности. Принимает значения: lead, company, contact>",
"was_created": <Был ли лид создан модулем (для новых лидов). Принимает значение true или false>
}
}}

Вернуть:

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

6) process_entity_creation_params

Событие возникает при входящем звонке с неизвестного номера.

Вход:

{"params": {
“type”: lead, // значения: contact, deal, lead
"ASSIGNED_BY_ID":238,
"COMMENTS":"",
"OPENED":"Y",
"PHONE": [
{"VALUE":"83432872875"}
],
"SOURCE_ID":"7",
"TITLE":""
}}

Вернуть:

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

Пример использования

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

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

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

7) process_task_creation_params

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

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

Вход:

{"params": {
"arNewTaskData": {
"DEADLINE":"<Крайний срок исполнения>",
"CREATED_BY": <Идентификатор постановщика>,
"RESPONSIBLE_ID": <Идентификатор сотрудника, ответственного за задачу>,
"TITLE":"<Заголовок задачи>",
"UF_CRM_TASK": [ - связь задачи с сущностью.
"L_11201" - состоит из типа сущности (L - лид, C - контакт, CO - компания, D - сделка) и ее идентификатора, которые указываются через символ "_".
]
}
}}

Вернуть:

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

8) get_updated_lead_fields

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

Примеры использования

Обновление полей лида

Вход: Е

Параметры звонка описаны в 5 пункте process_final_params

{"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":2
}}

Вернуть:

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

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

9) get_updated_activity_fields

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

Примеры использования

Обновление полей дела

Вход:

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

Параметры звонка описаны в 5 пункте process_final_params

{"params": {
"answered_at":"",
"channel_id":"",
"ended_at":"",
"from":"",
"from_local":false,
"id":"",
"parent_channel_id":"",
"started_at":"",
"state":3,
"state_code":"hung",
"to":"",
"to_local":true,
"trunk":"",
"type":2,
"type_code":"incoming",
"was_answered":true
}}

Вернуть:

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