Asterisk (PBX) (Private Branch Exchange) – открытая коммуникационная платформа, используемая для внедрения программных АТС, систем голосовой связи, VoIP-шлюзов, IVR-систем (интерактивное голосовое меню), голосовой почты, телефонных конференций и call-центров.
На основе этой технологии работает много телефоний, которые вы можете подключить к KeyCRM, чтобы:
- совершать звонки с CRM и обрабатывать входящие;
- видеть, кто вам звонит, если покупатель уже есть в системе;
- создавать покупателей, заказы или заявки прямо с карточки звонка;
- видеть всю историю вызовов с записями разговоров.
Шаг 1. Создаем канал телефонии в KeyCRM
Перейдите в «Настройки» → «Коммуникации» → вкладка «Телефония» и нажмите кнопку «Добавить новую службу».
В появившемся окне на вкладке «Основные»:
- Название – ведите название телефонии;
- Сервис телефонии – выберите «Other».
- Ссылка для инициализации звонка — URL создается на стороне телефонии. После начала звонка менеджером в CRM, на него будет отправлен POST запрос в формате json;
- Ссылка для завершения звонка (необязательно) — URL создается на стороне телефонии. На него будет отправлен POST запрос в формате json, когда менеджер завершит звонок с карточки звонка в CRM.
Если не указать, то в карточке звонка НЕ будет кнопки для завершения вызова и его нужно завершать напрямую через IP телефон, софтфон и т.д.; - Ссылка на Webhook — ссылка на которую телефония должна отправлять запросы с информацией по звонкам в CRM. Скопируйте её для дальнейших настроек на стороне телефонии;
- Использовать deep link — активируйте, только если вы используете софтфон, поддерживающий эту технологию;
- Связь с воронками – включите и выберите значение:
• Нет — карточки НЕ будут создаваться автоматически;
• Одноразовый — карточки будут созданы только один раз при условии, что еще нет карточки с этим номером;
• Повторяющийся — карточки будут создаваться всегда при повторных звонках при условии, что у номера нет карточки в рабочих статусах (все статусы кроме успешного и отклоненных). - Тип звонка — выберите тип звонков с которых будут создаваться карточки: только входящие, только исходящие или все — входящие и исходящие;
- Воронка — укажите воронку для создания карточек. Если у вас только одна воронка, она выбирается автоматически, а самого поля с выбором не будет;
- Источник — выберите источник, с которым будет создаваться карточка. Если не выбрать – карточка создается с пустым значением в поле источника.
Как работает функция deep link
Deep link – функция, которая сразу совершает звонок в программе по умолчанию на устройстве.
Особенности работы:
- Если у вас на устройстве приложение по умолчанию для звонков софтфон, он активен и в настройках телефонии активирована функция deep link: когда вы нажимаете «Позвонить» в CRM – открывается сразу это приложение для совершения звонка клиенту.
- Использование deep link нужно активировать только при использовании софтфона, который поддерживает эту технологию (например, MicroSIP или платный Zoiper). Если не уверены, можете протестовать. Сначала активируйте, если исходящие вызовы с CRM не будут работать, то деактивируйте.
- Если отключить deep link - вызов будет происходить через телефонию. Сначала CRM отправит в телефонию запрос на начало звонка, телефония получив его совершит вызов на софтфон или IP телефон менеджеру, менеджер поднимает трубку и начинается соединение с клиентом.
- IP телефоны функцию deep link не поддерживают, поэтому при работе с ними она должна быть выключена.
Шаг 2. Подключение номеров
В открывшемся окне настроек перейдите на вкладку «Номера пользователей» и заполните данные:
- Внутренний номер — номер внутренней линии телефонии;
- Менеджер — пользователь CRM, который соответствует этому номеру.
В списке для выбора будут пользователи, которым предоставлен доступ к телефонии.
После внесенной информации обязательно сохраните канал и переходите к следующему шагу.
Шаг 3. Настройка на стороне телефонии
KeyCRM принимает информацию о вызовах из телефонии и отображает ее внутри системы. Поэтому необходимо реализовать передачу данных из телефонии в CRM.
Все запросы нужно передавать методом POST в формате json, описание параметров:
Параметр | Тип данных | Обязательно | Описание |
action | string | да |
|
call | objects | да | объект с подробной информацией по звонку, включает параметры: |
id | string | да | уникальный идентификатор звонка, генерируемый на стороне телефонии |
direction | string | да |
направление звонка:
|
destination_number | string | да |
всегда номер телефона клиента |
caller | string | да | всегда номер внутренней линии менеджера из телефонии |
state | string | да |
статус звонка:
|
duration | int | нет | продолжительность звонка в секундах, нужно передавать только после завершения звонка |
audio_url | string | нет | ссылка на аудиозапись звонка в телефонии, нужно передавать только после завершения звонка |
Пример запроса для сохранения звонка:
{
"action": "call",
"call": {
"id": "1233123",
"direction": "outgoing",
"destination_number": "380730000001",
"caller": "301",
"state": "started",
"duration": 5666,
"audio_url": "https://google.mp3"
}
}
Примеры сценариев работы интеграции
1. Исходящий вызов при выключенном deep link
- Менеджер нажимает на «Позвонить» в CRM;
- CRM отправляет POST запрос в формате json на ссылку указанную в настройках телефонии «Ссылка для инициализации звонка»:
{
"caller": "333", // номер внутренней линии менеджера, который инициировал звонок
"destination_number": "380730000001" // номер телефона клиента
}
- Телефония принимает запрос и инициирует вызов на своей стороне. И отправляет запрос начала звонка в CRM на Webhook, указанный в настройках телефонии:
{
"action": "call",
"call": {
"id": "1233123",
"direction": "outgoing",
"destination_number": "380730000001",
"caller": "333",
"state": "started"
}
}
- После поднятия трубки телефония отправляет в CRM тот же запрос, но со статусом звонка answered.
- После завершения звонка телефония отправляет в CRM такой же запрос, но со статусом звонка completed и дополнительными параметрами: duration и audio_url.
2. Входящий звонок
- При поступлении входящего вызова телефония отправляет сразу в CRM POST запрос начала входящего вызова в формате json на Webhook, указанный в настройках телефонии:
{
"action": "call",
"call": {
"id": "1233123",
"direction": "incoming",
"destination_number": "380730000001",
"caller": "333",
"state": "started"
}
}
- Далее телефония отправляет запросы в соответствии с изменениями статуса звонка.
3. Сохранение аудиозаписи звонка в историю вызовов CRM
Вы можете отправить продолжительность вызова и аудиозапись сразу с передачей запроса со статусом завершения звонка.
Или, если получаете эти данные позже, то в любой момент можете передать их, указав обязательно идентификатор этого звонка(id):
{
"action": "call",
"call": {
"id": "1233123",
"direction": "incoming",
"destination_number": "380730000001",
"caller": "333",
"state": "completed",
"duration": 5666,
"audio_url": "https://google.mp3"
}
}
4. Пример получения информации о покупателе
- Чтобы получить данные покупателя из базы CRM, нужно из телефонии отправить POST запрос в формате json на Webhook.
В параметре «action» для этого запроса всегда значение «route», а в параметре «route» номер телефона покупателя:
{
"action": "route",
"route": "380730000001"
}
- В ответе вы получите:
{
"client": {
"id": 47820, // идентификатор покупателя в CRM
"profile_url": "https://demo.keycrm.app/app/clients?id=47820", // ссылка на карточку покупателя в CRM
"name": "Пономарь Владислав", // полное имя покупателя
"manager": {
"id": 81, // идентификатор ответственного менеджера покупателя в CRM
"name": "Владислав Пономарь", //имя ответственного менеджера покупателя в CRM
"number": null // номер телефона ответственного менеджера покупателя, указанный у него в профиле в CRM
}
}
}