Как просто интегрировать свою телефонию?

При помощи нового REST API для телефонии вы сможете реализовать любые пользовательские сценарии

  • Разговор с клиентом
    Показ карточки звонка менеджеру, ответственному за клиента

  • Очередь обработки звонка
    Одновременная и последовательная очередь обработки входящего звонка

  • Групповая коммуникация
    Перенаправление звонка между сотрудниками

  • Записи разговоров и отчеты
    Сохранение записи звонка в CRM и стандартных отчетах


Интеграция в 3 шага!

Мы максимально упростили создание интеграций с вашей телефонией

  1. 1. всего 4 метода REST
    Новый API для телефонии включает всего 4 метода и одно событие! Можно изучить за 15 минут!

  2. 2. OAuth не нужен!
    Вместо сложного механизма аутентификации можно использовать вебхуки с пользовательскими паролями!

  3. 3. Любые сценарии
    Постепенно усложняйте сценарии интеграции от базовых до самых сложных!

Как связать входящий звонок с Битрикс24?

Базовый сценарий интеграции

  • Всего один метод REST API
    Добавьте входящий вебхук для метода telephony.externalcall.register

  • Автосправка для разработчика
    При добавлении вебхука, Битрик24 подскажет параметры и даст уже готовый URL для вызова со стороны вашей телефонии. Больше ничего не нужно!

  • Автоматическое создание лида
    Если входящий номер не записан в CRM, то Битрикс24 автоматически создаст лид и метод вернет его идентификатор!

  • Автоматический поиск клиентов в CRM
    Если подходящий лид, контакт или компания есть в CRM, то метод сообщит об этом вам!

<?php

$queryUrl = 'https://xxx.bitrix24.ru/rest/1/yyyyxxx000111/telephony.externalcall.register.json';
$queryData = http_build_query(array(
'USER_ID' => 1,
'PHONE_NUMBER' => '555666777',
'TYPE' => 2,
'CALL_START_DATE' => '2016-16-11 10:10',
'CRM_CREATE' => true
));

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));

$result = curl_exec($curl);
curl_close($curl);

$result = json_decode($result, 1);

Как совместить вашу очередь обработки звонка с Битрикс24?

Любая логика очереди!

  • Всего два метода REST API
    Добавьте входящие вебхуки для методов telephony.externalcall.show и telephony.externalcall.hide

  • Любой принцип обработки очереди
    Показывайте карточку звонка нужным пользователям одновременно или по очереди, вызывая вебхук telephony.externalcall.show, и спрячьте карточки в нужный момент при помощи telephony.externalcall.hide

<?php

$queryUrl = 'https://xxx.bitrix24.ru/rest/1/yyyyxxx000111/telephony.externalcall.hide.json';
$queryData = http_build_query(array(
'CALL_ID' => 'externalCall.a2fc40b56aa869141cc6aa2d2a965ba6.1478527542', //берется из telephony.externalcall.register
'USER_ID' => 1 // убираем карточку у пользователя 1
));

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));

$result = curl_exec($curl);
curl_close($curl);

$queryUrl = 'https://xxx.bitrix24.ru/rest/1/yyyyxxx000111/telephony.externalcall.show.json';
$queryData = http_build_query(array(
'CALL_ID' => 'externalCall.a2fc40b56aa869141cc6aa2d2a965ba6.1478527542', //берется из telephony.externalcall.register,
'USER_ID' => 6 //показываем карточку пользователю 6
));

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));

$result = curl_exec($curl);
curl_close($curl);

Как пользователь сможет позвонить из Битрикс24?

Звонки прямо из CRM!

  • Всего одно событие REST API
    Добавьте исходящий вебхук для события OnExternalCallStart 

  • Пользователь нажимает на звонок прямо в Битрикс24
    Когда пользователь нажмет на телефонный номер клиента прямо в интерфейсе Битрикс24, вебхук сообщит номер исходящего звонка вашей АТС

  • Запускайте звонок!
    Вам останется только запустить исходящий вызов на стороне вашей телефонии!

укажите url вашего обработчика в настройках исходящего webhook
https://your_server/your_webhook_script.php


код обработчика
<?php

/*

Битрикс24 передает в обработчик $_REQUEST с данными:

array(
'PHONE_NUMBER' => '555666777', //номер, на который звонит пользователь Битрикс24
'USER_ID' => '1', //пользователь, который звонит из интерфейса Битрикс24
'CRM_ENTITY_TYPE' => 'LEAD', //тип объекта CRM, из карточки которого звонит пользователь Битрикс24
'CRM_ENTITY_ID' => '248' //ID объекта CRM, из карточки которого звонит пользователь Битрикс24
)
*/

// регистрируем исходящий звонок
$queryUrl = 'https://xxx.bitrix24.ru/rest/1/yyyyxxx000111/telephony.externalcall.register.json';
$queryData = http_build_query(array(
'USER_ID' => $_REQUEST['USER_ID'],
'PHONE_NUMBER' => $_REQUEST['USER_ID'],
'TYPE' => 1, // исходящий звонок
'CALL_START_DATE' => '2016-16-11 10:10',
'CRM_CREATE' => false,
'CRM_ENTITY_TYPE' => $_REQUEST['CRM_ENTITY_TYPE'],
'CRM_ENTITY_ID' => $_REQUEST['CRM_ENTITY_ID']
));

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));

$result = curl_exec($curl);
curl_close($curl);

$result = json_decode($result, 1);

Как сохранить звонок в Битрикс24?

Данные о звонках прямо в интерфейсе CRM!

  • Всего один метод REST API
    Добавьте входящий вебхук для метода telephony.externalcall.finish

  • Простое добавление звонка
    Когда разговор завершен, вызовите вебхук, указав данные совершенного звонка – длительность и статус

  • Хранение и прослушивание записей в Битрикс24
    Вы можете дать ссылку на запись звонка и Битрикс24 автоматически закачает ее в CRM!

  • Стандартные отчеты по телефонии
    Можно даже указать стоимость звонка, чтобы пользователи могли оптимизировать свою работу!

<?php

$queryUrl = 'https://xxx.bitrix24.ru/rest/1/yyyyxxx000111/telephony.externalcall.finish.json';
$queryData = http_build_query(array(
'CALL_ID' => 'externalCall.733e885003cbac98d92b811806caeaea.1478528885', //берется из telephony.externalcall.register
'DURATION' => '120', //длительность звонка в секундах
'STATUS_CODE' => 200, //успешный звонок
'RECORD_URL' => 'http://your_server/call_record.mp3', //url на запись звонка для сохранения в Битрикс24
));

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));

$result = curl_exec($curl);
curl_close($curl);

$result = json_decode($result, 1);

Недостаточно возможностей webhooks?

Прочитайте документацию и посмотрите готовый пример создания локального приложения