"Запрос разговора" – когда звонит телефон у сотрудника/клиента.
В одном "звонке" может быть несколько "разговоров" (в случае перевода звонка).
Краткое описание кастомизаций
№
Файл кастомизации
(по алфавиту)
Описание
1
Нужна ли регистрация звонка?
Можно сделать черные/белые списки по внутреннему номеру/транку.
2
Изменение параметров регистрации звонка.
3
Изменение номера телефона перед регистрацией в CRM.
Можно сменить формат телефонного номера (+7, 8...).
4
Изменение параметров создания контакта.
5
Изменение параметров создания сделки.
6
Изменение параметров при инициализации звонка из CRM.
Можно позвонить через другой транк, через другой контекст, сменить формат номера и прочее.
7
Кастомизация пути до файла записи разговора.
8
9
Кастомизация автораспределения входящих звонков.
10
Действия после регистрации звонка.
11
Изменение параметров обновления контакта.
12
Изменение параметров обновления сделки.
13
Изменение параметров создания неразобранного. Позволяет изменить поля контакта и сделки.
Входные и выходные параметры кастомизаций
1) need_registration
Используется для реализации функционала чёрных/белых список по номерам, транкам и прочим более сложным условиям.
Вход:
{
"call_full": {<Полный набор данных о звонке>},
"call_stage": "<Стадия звонка. Для данной кастомизации один из вариантов:
conversation_requested - запрос разговора;
conversation_accepted - ответ;
conversation_ended - завершение разговора;
call_ended - завершение звонка>"
}
{
"call_full": {<Полный набор данных о звонке>},
"call_result": "<Результат звонка>",
"call_status": <Статус звонка>,
"created_at": <Дата создания звонка (в формате Unix Timestamp)>,
"created_by": <ID ответственного пользователя>,
"direction": "<Направление звонка. Принимает значения:
"inbound" - входящий, "outbound" - исходящий>",
"duration": <Длительность (последнего разговора) в секундах>,
"link": "<Ссылка на получение записи (последнего разговора)>",
"phone": "<Телефонный номер клиента
(уже кастомизированный через process_client_phone)>",
"responsible_user_id": <ID ответственного пользователя>,
"source": "itgrix_amo"
}
Вернуть:
{
"data": {
"call_result": "<Результат звонка>",
"call_status": <Статус звонка>,
"created_at": <Дата создания звонка в Unix Timestamp>,
"created_by": <ID ответственного пользователя>,
"direction": "<Направление звонка. Принимает значения:
"inbound" - входящий, "outbound" - исходящий>",
"duration": <Длительность (последнего разговора) в секундах>,
"link": "<Ссылка на получение записи (последнего разговора)>",
"phone": "<Телефонный номер клиента
(уже кастомизированный через process_client_phone)>",
"responsible_user_id": <ID ответственного пользователя>,
"source": "itgrix_amo"
},
"state": "success"
}
3) process_client_phone
Преобразование телефонных номеров клиентов перед отправкой запросов в amoCRM.
Вход:
{
"phone": "<номер>",
"call_full": {<Полный набор данных о звонке>},
"call_stage": "<Стадия звонка. Для данной кастомизации один из вариантов:
conversation_requested - запрос разговора;
conversation_accepted - ответ;
conversation_ended - завершение разговора;
call_ended - завершение звонка>"
}
В amoCRM по умолчанию в контакте нет поля для телефонного номера. Вместо этого используются пользовательские поля контактов.
Itgrix_amo работает с полем контактов "code": "PHONE" с доступным значением "enum": "WORK". Если такого поля для контактов в аккаунте нет, то модуль не запустится.
Вход:
{
"call_full": {<Полный набор данных о звонке>},
"custom_fields_values": [
{
"field_id": <ID пользовательского поля контактов в аккаунте
(получено автоматически)>,
"values": [
{
"enum_code": "<Значение поля.
Itgrix работает со значением "WORK">",
"value": "<Номер телефона звонившего>"
}
]
}
],
"name": "<Имя контакта. По умолчанию "Контакт <Тел.номер>">",
"responsible_user_id": <ID ответственного пользователя>,
"tags": [
"Itgrix"
]
}
Вернуть:
{
"data": {
"custom_fields_values": [
{
"field_id": <ID пользовательского поля контактов в аккаунте
(получено автоматически)>,
"values": [
{
"enum_code": "<Значение поля.
Itgrix работает со значением "WORK">",
"value": "<Номер телефона звонившего>"
}
]
}
],
"name": "<Имя контакта. По умолчанию "Контакт <Тел.номер>">",
"responsible_user_id": <ID ответственного пользователя>,
"tags": [
"Itgrix"
]
// Прочие поля также можно установить
},
"state": "success"
}
5) process_lead_creation_params
Изменение параметров создания сделки.
Вход:
{
"call_full": {<Полный набор данных о звонке>},
"_embedded": {
"contacts": [
{"id": <ID контакта, с которыми связана сделка>}
],
"tags": [
{"name": "Itgrix"}
]
},
"name": "<Название сделки.
По умолчанию "<Тел.номер> - [пропущенный] входящий/исходящий">",
"pipeline_id": <ID воронки сделок>,
"responsible_user_id": <ID ответственного пользователя>,
"status_id": <ID статуса, в который добавляется сделка>
}
Вернуть:
{
"data": {
"_embedded": {
"contacts": [
{"id": <ID контакта, с которыми связана сделка>}
],
"tags": [
{"name": "Itgrix"}
]
},
"name": "<Название сделки.
По умолчанию "<Тел.номер> - входящий/исходящий звонок">",
"pipeline_id": <ID воронки сделок>,
"responsible_user_id": <ID ответственного пользователя>,
"status_id": <ID статуса, в который добавляется сделка>
// Прочие поля также можно установить
},
"state": "success"
}
6) process_originate_params
Изменение параметров при инициализации звонка из amoCRM.
7) process_record_file_path
Преобразование пути до файла записи разговора.
При регистрации звонка в amoCRM в заметку будет добавлен плеер для проигрывания записи этого звонка (по ссылке, которую модуль Itgrix добавляет автоматически). Но плеер поддерживает только формат mp3.
Поскольку конвертация записей может занимать значительное время, у этой кастомизации индивидуальный таймаут 10 секунд (изменить можно в конфигурационном файле коннектора - /etc/itgrix_amo/config.json).
Если запись не успеет сконвертироваться до истечения таймаута, будет использован исходный файл.
8) process_task_creation_params
Кастомизация параметров создания задачи (при пропущенном входящем звонке или неотвеченном исходящем).
При этом сначала применяются настройки, описанные в статье, а затем выполняется данная кастомизация.
Вход:
{
"call_full": {<Полный набор данных о звонке>},
"complete_till": <Дата-время, когда задача должна быть завершена
(в формате Unix Timestamp)>,
"created_by": <ID пользователя, создающего задачу>,
"entity_id": <ID сущности, к которой привязана задача>,
"entity_type": "<Тип сущности, к которой привязана задача.
Принимает значения: "contacts", "leads">",
"is_completed": <Выполнена ли задача. При создании всегда false>,
"responsible_user_id": <ID ответственного пользователя>,
"task_type": <Тип задачи. Числовое значение:
1 - Звонок, 2 - Встреча, 3 - Письмо>,
"text": "<Описание задачи. По умолчанию:
"Перезвонить <Имя сущности> по пропущенному звонку с номера <Тел.номер>">"
}
Вернуть:
{
"data": {
"complete_till": <Дата-время, когда задача должна быть завершена
(в формате Unix Timestamp)>,
"created_by": <ID пользователя, создающего задачу>,
"entity_id": <ID сущности, к которой привязана задача>,
"entity_type": "<Тип сущности, к которой привязана задача.
Принимает значения: "contacts", "leads">",
"is_completed": <Выполнена ли задача. При создании всегда false>,
"responsible_user_id": <ID ответственного пользователя>,
"task_type": <Тип задачи. Числовое значение:
1 - Звонок, 2 - Встреча, 3 - Письмо>,
"text": "<Описание задачи. По умолчанию:
"Перезвонить <Имя сущности> по пропущенному звонку с номера <Тел.номер>">"
// Прочие поля также можно установить
},
"state": "success"
}
9) customize_autodistribution
Кастомизация автораспределения входящих звонков.
Вход:
{
"number": "<номер пользователя на которого распределять звонок>",
"name": "<имя пользователя на которого распределять звонок>",
"from": "<номер с которого пришёл звонок>",
"trunk": "<Номер транка>",
"request_data": {<Параметры запроса автораспределения как есть>},
"entity": {<Данные найденной сущности>},
"error": "<текст ошибки>"
}
Вернуть:
{
"data": {
"number": "<Номер пользователя, на которого распределять звонок>",
"name": "<Имя пользователя, на которого распределять звонок>"
},
"state": "success"
}
name - текст который появится в CallerID и будет отображен в телефоне (или софтфоне) оператора.
Должен быть не более 20 символов (ограничение Asterisk)!
Поля from, trunk, entity и error - только для чтения и присутствуют только когда не пустые.
Эти поля, а также request_data будут автоматически удалены, даже если вернуть их в объекте data.
10) post_registration
Данная кастомизация дает возможность выполнить какие-либо действия после регистрации звонка.
Вход:
{
"call_full": {<Полный набор данных о звонке>}
}
Вернуть:
Нужно вернуть только state, остальное игнорируется:
{
"state": "success"
}
11) process_contact_update_params
Изменение параметров обновления контакта.
Вход:
{
"call_full": {<Полный набор данных о звонке>},
"id": <ID контакта>,
"responsible_user_id": <ID ответственного пользователя>
}
Вернуть:
{
"data": {
"id": <ID контакта>,
"responsible_user_id": <ID ответственного пользователя>
// Прочие поля также можно изменить
},
"state": "success"
}
12) process_lead_update_params
Изменение параметров обновления сделки.
Вход:
{
"call_full": {<Полный набор данных о звонке>},
"id": <ID сделки>,
"responsible_user_id": <ID ответственного пользователя>
}
Вернуть:
{
"data": {
"id": <ID сделки>,
"responsible_user_id": <ID ответственного пользователя>
// Прочие поля также можно изменить
},
"state": "success"
}
13) process_unsorted_creation_params
Изменение параметров создания неразобранного. Позволяет изменить поля контакта и сделки.
Вход:
{
"call_full": {<Полный набор данных о звонке>},
"_embedded": {
"contacts": [{
"custom_fields_values": [{
"field_id": <ID пользовательского поля контактов в аккаунте
(получено автоматически)>,
"values": [{
"enum_code": "<Значение поля.
Itgrix работает со значением "WORK">",
"value": "<Номер телефона звонившего>"
}]
}],
"name": "<Имя контакта. По умолчанию "Контакт <Тел.номер>">",
"tags": [
"Itgrix"
]
}],
"leads": [{
"name": "<Название сделки.
По умолчанию "<Тел.номер> - [пропущенный] входящий/исходящий">",
"pipeline_id": <ID воронки сделок>,
"tags": [
{"name": "Itgrix"},
]
}]
},
"created_at": <Дата создания неразобранного (в формате Unix Timestamp)>,
"metadata": {
"called_at": <Когда сделан звонок (в формате Unix Timestamp)>,
"duration": <Длительность звонка в секундах>,
"from": "<Номер телефона звонившего>",
"is_call_event_needed": false,
"link": "<Ссылка на запись звонка>",
"phone": "<Номер телефона, на который звонили>",
"service_code": "itgrix_amo",
"uniq": "<Уникальный идентификатор звонка.
Itgrix передает linkedid звонка>"
},
"pipeline_id": <ID воронки сделок>,
"source_name": "itgrix_amo",
"source_uid": "<UID источника заявки.
Itgrix передает linkedid звонка>"
}
Вернуть:
{
"data": {
"_embedded": {
"contacts": [{
"custom_fields_values": [{
"field_id": <ID пользовательского поля контактов в аккаунте
(получено автоматически)>,
"values": [{
"enum_code": "<Значение поля.
Itgrix работает со значением "WORK">",
"value": "<Номер телефона звонившего>"
}]
}],
"name": "<Имя контакта. По умолчанию "Контакт <Тел.номер>">",
"tags": [
"Itgrix"
]
}],
"leads": [{
"name": "<Название сделки.
По умолчанию "<Тел.номер> - [пропущенный] входящий/исходящий">",
"pipeline_id": <ID воронки сделок>,
"tags": [
{"name": "Itgrix"},
]
}]
},
"created_at": <Дата создания неразобранного (в формате Unix Timestamp)>,
"metadata": {
"called_at": <Когда сделан звонок (в формате Unix Timestamp)>,
"duration": <Длительность звонка в секундах>,
"from": "<Номер телефона звонившего>",
"is_call_event_needed": false,
"link": "<Ссылка на запись звонка>",
"phone": "<Номер телефона, на который звонили>",
"service_code": "itgrix_amo",
"uniq": "<Уникальный идентификатор звонка.
Itgrix передает linkedid звонка>"
},
"pipeline_id": <ID воронки сделок>,
"source_name": "itgrix_amo",
"source_uid": "<UID источника заявки.
Itgrix передает linkedid звонка>"
// Прочие поля также можно установить
},
"state": "success"
}
Также в этом файле настраивается конвертирование из формата wav в mp3. Описание в статье .
Изменение параметров создания задач по пропущенным звонкам. Изменение названия задачи может помешать опции .
Базовая настройка черного/белого списка для внутренних номеров доступна .
Примеры:.
Полный набор данных о звонке описан в статье .
Подробнее про статусы звонка (поля call_status и call_result) в статье .
Полный набор данных о звонке описан в статье .
Доступна , она запускается ДО выполнения кастомизации.
Примеры в статье .
Полный набор данных о звонке описан в статье .
Подробное описание пользовательских полей в .
Пример:.
Полный набор данных о звонке описан в статье .
Параметры запроса создания контакта описаны в .
Пример: .
Полный набор данных о звонке описан в статье .
Параметры запроса создания сделки описаны в .
Подробное описание с примерами в статье .
Подробное описание с примерами в статье .
При установке Itgrix_amo по умолчанию уже включена .
Данная кастомизация работает, только если создание задач включено в настройках коннектора: .
Полный набор данных о звонке описан в статье .
Параметры запроса создания задачи описаны в .
Для работы функции автораспределения необходимо выполнить настройку Asterisk, описанную в статье .
Полный набор данных о звонке описан в статье .
Полный набор данных о звонке описан в статье .
Параметры запроса обновления контакта описаны в .
Полный набор данных о звонке описан в статье .
Параметры запроса обновления сделки описаны в .
Полный набор данных о звонке описан в статье .
Параметры запроса создания неразобранного описаны в .