Call processing scheme by Itgrix integration module
(Scheme for versions starting from 3.0.0)
"Request a conversation" - when the phone rings at the employee / client.
There can be several "conversations" in one "call" (in case of call transfer).
Brief description of customizations
№
Customization file
(in alphabetical order)
Description
1
Is it necessary to register the call? It is possible to make black/white lists by internal number/trunk.
2
Change the call registration parameters.
3
Change your phone number before registering to CRM. You can change the format of your phone number (+7, 8...).
4
Change the settings for creating a contact.
5
Changing the parameters for creating a deal.
6
Changing parameters when initiating a call from CRM. You can call through another trunk, through another context, change the number format, and so on.
7
Customizing the path to the conversation recording file. Also in this file, converting from wav to mp3 format is configured.
8
9
Customization of autodistribution of incoming calls.
10
Actions after the call has been logged.
11
Change the contact's update settings.
12
Change the lead's update settings.
13
Changes the parameters for creating unsorted. Allows you to change the contact and lead fields.
Input and output parameters of customizations
1) need_registration
Used to implement black/white list functionality by numbers, trunks and other more complex conditions.
Basic black/white list configuration for internal numbers is available from the admin panel.
Examples: Black/white list for trunks.
Input:
{
"call_full": {<Full call data set>},
"call_stage": "<Call Stage. For this customization one of the options is:
conversation_requested - call request;
conversation_accepted - answer;
conversation_ended - end of conversation;
call_ended - call end>"
}
The full set of call data is described in the article Call data (call_full) in customizations.
Read more about call statuses (call_status and call_result fields) in the article Detailed call statuses.
Input:
{
"call_full": {<Full call data set>},
"call_result": "<Call result>",
"call_status": <Call Status>,
"created_at": <Date the call was created (in Unix Timestamp format)>,
"created_by": <responsible user ID>,
"direction": "<Call Direction. Values:
"inbound" - incoming, "outbound" - outgoing>",
"duration": <Duration (of the last call) in seconds>,
"link": "<Link to get the recording (of the last conversation)>",
"phone": "<Client's phone number
(already customized via process_client_phone)>",
"responsible_user_id": <responsible user ID>,
"source": "itgrix_amo"
}
The full set of call data is described in the article Call data (call_full) in customizations.
Return:
{
"data": {
"call_result": "<Call result>",
"call_status": <Call Status>,
"created_at": <Date the call was created (in Unix Timestamp format)>,
"created_by": <responsible user ID>,
"direction": "<Call Direction. Values:
"inbound" - incoming, "outbound" - outgoing>",
"duration": <Duration (of the last call) in seconds>,
"link": "<Link to get the recording (of the last conversation)>",
"phone": "<Client's phone number
(already customized via process_client_phone)>",
"responsible_user_id": <responsible user 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". Если такого поля для контактов в аккаунте нет, то модуль не запустится.
При регистрации звонка в 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"
}
{
"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
Данная кастомизация дает возможность выполнить какие-либо действия после регистрации звонка.