Полезные кастомизации itgrix_bx (Битрикс24) [С историей]

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

Дополнительные кастомизации описаны в разделе Полезные кастомизации (любая CRM).

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

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

По сравнению кастомизациями в версиях 2.15.0–2.15.6:

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

  • Разделена кастомизация process_phone_number на два метода:

    • process_user_phone – кастомизация внутреннего номера пользователя;

    • process_client_phone – кастомизация номера клиента.

  • Кастомизация get_updated_entity_fields переименована в customize_entity.

  • Кастомизация get_updated_activity_fields переименована в customize_activity.

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

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

Кастомизации версий 3.10+

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

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

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

Описание

1

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

2

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

3

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

4

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

5

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

6

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

7

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

8

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

9

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

10

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

11

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

12

Действие после регистрации звонка.

13

Изменение параметров отображения карточки звонка.

14

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

15

При получении результата Click-to-Call (событие OriginateResponse) от Asterisk. Позволяет выполнить дополнительные действия при успехе/ошибке Originate.

16

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

17

Кастомизация параметров конвертации записи звонка.

18

Кастомизация игнорируемых событий звонка.

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

1) customize_activity

3.10.0 – добавлен полный набор данных о звонке (call_full) и вынесена кастомизация customize_attach_record_url для прикрепления ссылки на запись звонка.

3.13.0 – удалено устаревшее поле conversation из корня входных данных, используйте call_full.conversation.

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

Примеры:

Вход:

{
  "activity": {
    "id":             "<ID дела>",
    "is_new":         <Всегда false>,
    "name":           "<Название дела (из поля SUBJECT)>",
    "phones":         [<Всегда пустой массив>],
    "raw":            {Поля дела как в Битрикс24},
    "responsible":    {<Данные ответственного пользователя>},
    "responsible_id": "<ID ответственного пользователя>",
    "type":           "activity"
  },

  "call_full": {<Полный набор данных о звонке>}
}

Набор данных о разговоре (conversation) описан в статье Параметры звонка (call) и разговора (conversation) в кастомизациях. В объекте raw присутствуют только поля с непустым/ненулевым значением.

Вернуть:

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

Документация полей дела в REST API Битрикс24

2) customize_entity

3.10.0 – добавлен полный набор данных о звонке (call_full) и обновление полей сущности стало выполняться вне зависимости от того, была ли сущность создана на этом звонке, или ранее.

3.13.0 – удалено устаревшее поле call из корня входных данных (остальные временно сохраняются для обратной совместимости).

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

Примеры:

Вход:

{
  "call_registration": {<Набор данных о регистрации звонка (сохранён для обратной совместимости)>},
  "entity":            {<Данные сущности>},
  "entity_type":       "<Тип сущности текстом, например lead, contact>",
  "entity_id":         "<ID сущности>",
  "entity_new":        <true/false создана ли сущность на этом звонке>,

  "call_full": {<Полный набор данных о звонке>}
}

Набор данных о звонке описан в статье Параметры звонка (call) и разговора (conversation) в кастомизациях. Формат данных сущности в поле entity описан в соответствующем разделе статьи Данные о звонке (call_full) в кастомизациях.

Вернуть:

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

Документация полей лида Документация полей контакта

3) need_registration

3.0.7 – добавлена возможность настройки чёрного/белого списка для внутренних номеров через веб-интерфейс модуля.

3.10.0 – добавлены параметры call_stage и call_full.

Определяет, нужно ли регистрировать конкретный звонок. Можно реализовать чёрные/белые списки по внутреннему номеру, транку или более сложным условиям.

Примеры:

Вход:

{
  "call_full":  {<Полный набор данных о звонке>},
  "call_stage": "<Стадия звонка. Для данной кастомизации один из вариантов:
     conversation_requested - запрос разговора;
     conversation_accepted  - ответ;
     conversation_ended     - завершение разговора;
     call_ended             - завершение звонка>"
}

Набор данных о звонке и разговорах описан в статье Параметры звонка (call) и разговора (conversation) в кастомизациях.

Вернуть:

{
  "data": {
    "result": <true – регистрируем; false – игнорируем>
  },
  "state": "success"
}

4) process_client_phone

3.0.0 – кастомизация номера разделена на две: process_user_phone (внутренний номер) и process_client_phone (номер клиента).

3.7.0 – добавлена автозамена номеров, запускается ДО выполнения кастомизации.

3.10.0 – добавлены параметры call_stage и call_full.

Преобразование телефонных номеров клиентов перед отправкой запросов в Битрикс24.

Примеры:

Вход:

{
  "phone": "<номер>",

  "call_full":  {<Полный набор данных о звонке>},
  "call_stage": "<Стадия звонка. Для данной кастомизации один из вариантов:
     call_started           - начало звонка;
     conversation_requested - запрос разговора;
     conversation_accepted  - ответ;
     conversation_ended     - завершение разговора;
     call_ended             - завершение звонка;
     forward <id>           - автораспределение звонка>"
}

Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях.

Вернуть:

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

5) process_final_params

2.15.0 – чёрные/белые списки вынесены в кастомизацию need_registration.

3.0.7 – настройка чёрного/белого списка для внутренних номеров доступна через веб-интерфейс модуля.

3.10.0 – добавлен полный набор данных о звонке (call_full).

3.13.0 – удалено устаревшее поле call из корня входных данных.

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

Примеры:

Вход:

{
  "params": {
    "ADD_TO_CHAT":   <[0/1] Добавить ли сообщение о звонке в бизнес чат. По умолчанию 1>,
    "CALL_ID":       "<ID звонка в Битрикс24. Не рекомендуется изменять!>",
    "DURATION":      <Длительность звонка в секундах>,
    "STATUS_CODE":   "<Статус звонка в Битрикс24>",
    "USER_ID":       <ID пользователя Битрикс24, ответственного за разговор>,

    "entity_type":       "<Тип сущности текстом, например lead, contact (сохранён для обратной совместимости)>",
    "entity_id":         "<ID сущности, в которую будет записан звонок (сохранён для обратной совместимости)>",
    "entity_new":        <true/false создана ли сущность на этом звонке (сохранено для обратной совместимости)>,
    "call_full":         {<Полный набор данных о звонке>},
    "call_registration": {<Набор данных о регистрации звонка (сохранён для обратной совместимости)>}
  }
}

Статусы звонка в Битрикс24 описаны в статье Детальные статусы звонка. Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях.

Вернуть:

{
  "data": {
    "ADD_TO_CHAT":   <[0/1] Добавить ли сообщение о звонке в бизнес чат>,
    "CALL_ID":       "<ID звонка в Битрикс24. Не рекомендуется изменять!>",
    "DURATION":      <Длительность звонка в секундах>,
    "STATUS_CODE":   "<Статус звонка>",
    "USER_ID":       <ID пользователя Битрикс24, ответственного за разговор>
  },
  "state": "success"
}

Документация параметров завершения звонка в REST API Битрикс24

6) process_originate_params

Изменение параметров при инициализации звонка из Битрикс24 (Click-to-Call).

Подробное описание с примерами в статье Изменение параметров при click-to-call.

7) process_record_file_path

3.10.19 – таймаут выполнения кастомизации стал настраиваемым (ранее был жёстко зафиксирован в 10 секунд).

3.13.0 – конвертация записей вынесена в основную логику коннектора, кастомизация служит только для изменения пути до файла записи.

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

Примеры:

8) process_registration_params

3.10.0 – добавлен полный набор данных о звонке (call_full), показ карточки звонка вынесен в отдельную кастомизацию customize_show_call_card.

3.13.0 – удалены устаревшие поля call, conversation из корня входных данных.

Кастомизация параметров регистрации начала звонка.

Примеры:

Вход:

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

    "call_full":  {<Полный набор данных о звонке>},
    "call_stage": "<Стадия звонка. Для данной кастомизации один из вариантов:
      conversation_requested - запрос разговора;
      call_ended             - завершение звонка>"
  }
}

Номера внешних линий в Битрикс24 (LINE_NUMBER) соответствуют транкам в настройках коннектора Itgrix. Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях.

Вернуть:

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

Документация параметров регистрации звонка в REST API Битрикс24

9) process_task_creation_params

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

3.4.0 – возможность настройки задач через веб-интерфейс модуля.

3.10.0 – добавлен полный набор данных о звонке (call_full).

3.13.0 – удалено устаревшее поле conversation из корня входных данных.

Кастомизация параметров создания задачи (при пропущенном входящем звонке или неотвеченном исходящем). Запускается только если создание задач включено в настройках коннектора.

Примеры:

Вход:

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

  "call_full": {<Полный набор данных о звонке>}
}

Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях.

Вернуть:

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

Документация полей задачи в REST API Битрикс24

10) process_user_phone

3.0.0 – кастомизация номера разделена на две: process_user_phone (внутренний номер) и process_client_phone (номер клиента).

3.7.0 – добавлена автозамена номеров, запускается ДО выполнения кастомизации.

3.10.0 – добавлены параметры call_stage и call_full.

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

Примеры:

Вход:

{
  "phone": "<номер>",

  "call_full":  {<Полный набор данных о звонке>},
  "call_stage": "<Стадия звонка. Для данной кастомизации один из вариантов:
    conversation_requested - запрос разговора;
    conversation_accepted  - ответ;
    conversation_ended     - завершение разговора;
    call_ended             - завершение звонка;
    forward <id>           - автораспределение звонка>"
}

Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях.

Вернуть:

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

11) customize_autodistribution

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

Вход:

{
  "number": "<номер пользователя на которого распределять звонок>",
  "name":   "<имя пользователя на которого распределять звонок>",

  "from":   "<номер с которого пришёл звонок>",
  "trunk":  "<номер транка>",
  "user":   {
    "id":       <ID пользователя числом>,
    "phones":   ["<список номеров пользователя>"],
    "name":     "<Полное имя пользователя>",
    "email":    "<email пользователя>",
    "position": "<должность пользователя>"
  },
  "entity": {
    "type":           "<Тип сущности текстом, например lead, contact>",
    "id":             <ID сущности числом>,
    "name":           "<Имя сущности>",
    "responsible_id": <ID ответственного пользователя числом>
  },
  "error": "<текст ошибки>",
  "request_data": {<Параметры запроса>},
  "call_full":    {<Полный набор данных о звонке>}
}

Вернуть:

{
  "data": {
    "number": "<Номер пользователя, на которого распределять звонок>",
    "name":   "<Имя пользователя, на которого распределять звонок, лимит 20 символов>"
  },
  "state": "success"
}

Примечания:

  • name – текст который появится в CallerID и будет отображен в телефоне (или софтфоне) оператора. Должен быть не более 20 символов (ограничение Asterisk)!

  • Поля from, trunk, user, entity и error – только для чтения и присутствуют только когда не пустые. Они будут автоматически удалены, даже если вернуть их в объекте data.

12) post_registration

3.10.0 – кастомизация добавлена.

Действие после регистрации звонка. Может быть вызвана в разные моменты в зависимости от типа звонка:

  • Для звонков кликом (click-to-call, c2c) – в начале обработки стадии Запрос разговора (Conversation requested)

  • Пропущенные звонки на IVR – на стадии Завершение звонка (Call ended)

  • Для всех остальных звонков – после выполнения запроса регистрации звонка в Битрикс24 на стадии Запрос разговора (Conversation requested)

Вход:

{
  "call_full":  {<Полный набор данных о звонке>},
  "call_stage": "<Стадия звонка. Для данной кастомизации один из вариантов:
    conversation_requested - запрос разговора;
    call_ended             - завершение звонка>",
}

Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях.

Вернуть:

{
  "state": "success"
}

13) customize_show_call_card

3.10.0 – кастомизация добавлена.

Изменение параметров отображения карточки звонка.

Вход:

{
  "CALL_ID": <ID зарегистрированного звонка в Битрикс24>,
  "USER_ID": <ID пользователя>,
  
  "call_full":  {<Полный набор данных о звонке>},
  "call_stage": "<Стадия звонка. Для данной кастомизации один из вариантов:
    conversation_requested - запрос разговора;
    conversation_accepted  - ответ;
    conversation_ended     - завершение разговора;
    call_ended             - завершение звонка>"
 }

Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях.

Вернуть:

{
  "data": { 
    "CALL_ID": <ID зарегистрированного звонка в Битрикс24>,
    "USER_ID": <ID пользователя>
  },
  "state": "success"
}

Документация параметров показа карточки в REST API Битрикс24

14) customize_attach_record_url

3.10.0 – кастомизация добавлена.

Кастомизация прикрепления ссылки на запись звонка. Запускается только если настроено прикрепление ссылки на запись вместо файла записи звонка.

По умолчанию в описание дела записывается HTML-код аудиоплеера (тег audio) со ссылкой на запись звонка.

Вход:

{
  "DESCRIPTION":       "<Описание дела с аудиоплеером и ссылкой на запись звонка>",
  "DESCRIPTION_TYPE":  <Тип содержания в виде целого числа, по умолчанию 3, т.е. HTML>,

  "activity": {
    "id":             "<ID дела>",
    "is_new":         <Всегда false>,
    "name":           "<Название дела (из поля SUBJECT)>",
    "phones":         [<Всегда пустой массив>],
    "raw":            {Поля дела как в Битрикс24},
    "responsible":    {<Данные ответственного пользователя>},
    "responsible_id": "<ID ответственного пользователя>",
    "type":           "activity"
  },
  "call_full":       {<Полный набор данных о звонке>},
  "record_url":      "<URL записи звонка>",
  "old_description": "<Описание дела до кастомизации>"
}

Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях. В объекте raw присутствуют только поля с непустым/ненулевым значением.

Вернуть:

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

Документация полей дела в REST API Битрикс24

15) process_originate_response

3.13.0 – кастомизация добавлена.

Кастомизация результата Click-to-Call. Запускается при получении события OriginateResponse от Asterisk после выполнения запроса Click-to-Call. Позволяет выполнить дополнительные действия при успехе/ошибке Originate.

Вход:

{
  "originate_params":   {<Параметры запроса Click-to-Call>},
  "originate_response": {<Поля события AMI OriginateResponse>},
  "request_id":         <ID запроса Click-to-Call>,
  "call_full":          {<Полный набор данных о звонке>}
}

Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях. Поле call_full может быть пустым, если на момент получения события OriginateResponse звонок отсутствует в кэше коннектора.

Вернуть:

{
  "state": "success"
}

16) customize_recording_query

3.13.0 – кастомизация добавлена.

Кастомизация запроса поиска записи звонка. Запускается перед поиском записи звонка в таблице CDR.

Вход:

{
  "query": "<SQL-запрос поиска записи звонка>",

  "callID":        "<ID звонка>",
  "from_variants": ["<Список вариантов номера источника звонка>"],
  "to_variants":   ["<Список вариантов номера получателя звонка>"],

  "call_full": {<Полный набор данных о звонке>}
}

Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях. Запрос поиска записи звонка можно отменить, вернув пустой объект query.

Вернуть:

{
  "data": {
    "query": "<SQL-запрос поиска записи звонка>"
  },
  "state": "success"
}

17) customize_record_conversion

3.13.0 – кастомизация добавлена.

Кастомизация параметров конвертации записи. Запускается перед конвертацией записи в mp3.

Вход:

{
  "IN":                               "<Путь к исходному файлу записи>",
  "OUT":                              "<Путь к конечному файлу записи>",
  "recording_converter_path":         "<Путь программы для конвертации записи>",
  "recording_converter_args":         "<Аргументы запуска программы конвертации записи>",
  "recording_converter_timeout_msec": <Таймаут выполнения конвертации записи в миллисекундах>,
  "overwrite_cdr_recordingfile":      <true - обновлять путь к записи в таблице CDR; false - не обновлять>,
  "initial_cdr_recordingfile":        "<Исходный путь к записи в таблице CDR>",
  "updated_cdr_recordingfile":        "<Конечный путь к записи в таблице CDR>",
  "delete_original_recordings":       <true - удалить исходный файл записи после конвертации; false - не удалять>,

  "call_full": {<Полный набор данных о звонке>}
}

Описание блока call_full см. в статье Данные о звонке (call_full) в кастомизациях. Поле call_full может быть пустым, если на момент выполнения конвертации записи звонок отсутствует в кэше коннектора. Выполнение конвертации записи можно отменить, вернув пустой объект data.

Входные значения соответствуют настройкам конвертации записи.

Вернуть:

{
  "data": {
    "IN":                               "<Путь к исходному файлу записи>",
    "OUT":                              "<Путь к конечному файлу записи>",
    "recording_converter_path":         "<Путь программы для конвертации записи>",
    "recording_converter_args":         "<Аргументы запуска программы конвертации записи>",
    "recording_converter_timeout_msec": <Таймаут выполнения конвертации записи в миллисекундах>,
    "overwrite_cdr_recordingfile":      <true - обновлять путь к записи в таблице CDR; false - не обновлять>,
    "initial_cdr_recordingfile":        "<Исходный путь к записи в таблице CDR>",
    "updated_cdr_recordingfile":        "<Конечный путь к записи в таблице CDR>",
    "delete_original_recordings":       <true - удалить исходный файл записи после конвертации; false - не удалять>
  },
  "state": "success"
}

Примечание: Поля initial_cdr_recordingfile и updated_cdr_recordingfile используются для формирования SQL-запроса обновления записи в таблице CDR: UPDATE CDR SET CDR.recordingfile = '<updated_cdr_recordingfile>' WHERE CDR.recordingfile = '<initial_cdr_recordingfile>'

18) process_rejected_call_event

3.13.0 – кастомизация добавлена.

Кастомизация игнорируемых событий звонка. Запускается когда событие звонка намеренно не обрабатывается стандартной логикой, например при звонке между сотрудниками или звонке неопределенного типа.

Вход:

{
  "call_full":  {<Полный набор данных о звонке>},
  "call_stage": "<Стадия звонка. Для данной кастомизации один из вариантов:
    call_started           - начало звонка;
    conversation_requested - запрос разговора;
    conversation_accepted  - ответ;
    conversation_ended     - завершение разговора;
    call_ended             - завершение звонка>",
  "rejection_reason": "<Причина отклонения события звонка>"
}

Возможные значения поля rejection_reason:

  • "no active conversation" - событие разговора без указания ID разговора;

  • "local conversation" - событие разговора между сотрудниками;

  • "unknown conversation type" - событие разговора неопределенного типа;

  • "self conversation type" - событие разговора с совпадающими номерами from и to;

  • "conversation processed earlier" - событие разговора уже обработано ранее;

  • "invalid event name" - неизвестное событие звонка;

  • "local call" - звонок между сотрудниками;

  • "unknown call type" - звонок неопределенного типа;

  • "self call type" - звонок с совпадающими номерами from и to;

  • "call processed earlier" - звонок уже обработан ранее.

Вернуть:

{
  "state": "success"
}

Last updated

Was this helpful?