Уведомление о звонке

С помощью метода API можно добавлять уведомление о том, что в данный момент происходит звонок по определенному номеру телефона.

При этом система автоматически найдет контакт или компанию с этим номером телефона, а также все связанные сущнонсти и покажет в уведомлении одну из них со следующим приоритетом:

  • если у контакта/компании есть одна активная сделка, и нет связанных покупателей то будет показана сделка
  • если у контакта/компании есть один покупатель и нет активных сделок, то будет показан покупатель
  • в случае если у контакта/компании более одной активной сделки/покупателя или связанные сущности отсутствуют, то будет показана карточка контакта/компании

Если же такого номера в системе еще нет, то в уведомлении будет предложено создать контакт с этим номером.

Этот способ уведомления о звонке позволит не делать лишних запросов на поиск сущностей по номеру телефона через API. Что значительно оптимизирует работу интегрируемых телефоний. Теперь достаточно создать запрос через бэкэнд к данному API методу, передав номер телефона и список пользователей, которые сразу в аккаунте получат уведомление о звонке. И также по описанному выше алгоритму, получат в уведомлении наиболее актуальную в данный момент сущность, связанную с переданным номером телефона.

URL метода
POST /api/v2/events/

Параметры

Параметр Тип Описание
type
require
string Тип уведомления - phone_call
users array|int Id пользователей для которых будет отправлено уведомление. Если не передавать этот параметр, то уведомление будет отправлено для всех пользователей
phone_number
require
string Номер телефона на который поступает звонок. Можно передавать в любом формате

Пример запроса

Приведём пример запроса на добавление уведомления.

  1. {
  2.    add: [
  3.       {
  4.          type: "phone_call",
  5.          phone_number: "+79998885533",
  6.          users: [88888, 99999]
  7.       }
  8.    ]
  9. }

Описание параметров ответа

Параметр Тип Описание
element_id int|null Уникальный идентификатор сущности для которой было вызвано уведомление, если сущность не была найдена то вернется null
element_type int|null Тип сущности для которой было вызвано уведомление, если сущность не была найдена то вернется null
uid string Уникальный идентификатор уведомления
phone_number string Номер телефона по которому вызвано уведомление

Response Headeres содержит следующие заголовки:

  • Content-Type:application/hal+json

Пример ответа

  1. {
  2.    _links: {
  3.       self: {
  4.          href: "/api/v2/events",
  5.          method: "post"
  6.       }
  7.    },
  8.    _embedded: {
  9.       items: [
  10.          {
  11.             element_id: 1234565,
  12.             element_type: 2,
  13.             uid: "0e3455ff-67aa-4779-bebe-66ddc038a4ee",
  14.             phone_number: "+79998885533"
  15.         }
  16.       ]
  17.    }
  18. }
Приведём пример запроса для добавления уведомлений о звонке.

Пример интеграции

  1. $calls_event['add'] = [
  2.     [
  3.         'phone_number' => '+79998885533',
  4.         'users' => [88888, 99999],
  5.         'type' => 'phone_call'
  6.     ]
  7. ];
  8.  
  9.  
  10. #Формируем ссылку для запроса
  11. $link='https://mysubdomain.amocrm.ru/api/v2/events';
  12.  
  13. $curl=curl_init(); #Сохраняем дескриптор сеанса cURL
  14. #Устанавливаем необходимые опции для сеанса cURL
  15. curl_setopt($curl,CURLOPT_POST,TRUE);
  16. curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE);
  17. curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
  18. curl_setopt($curl,CURLOPT_HEADER,FALSE);
  19. curl_setopt($curl,CURLOPT_TIMEOUT,10);
  20. curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
  21. curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
  22. curl_setopt($curl,CURLOPT_URL,$link);
  23. curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($calls_event));
  24. $out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
  25. $code=curl_getinfo($curl,CURLINFO_HTTP_CODE);
  26. $code=(int)$code;
  27.  
  28. $response=json_decode($out,TRUE);
  29. if( count($response['_embedded']['items']) > 0 ) {
  30.     $output .= 'Успешно добавленные звонки:' . PHP_EOL;
  31.     foreach($response['_embedded']['items'] as $v) {
  32.         $output .= $v . PHP_EOL;
  33.     }
  34. }