Серверное Callback API
Общая информация
API - это программный интерфейс для внешних программных продуктов. Рассматриваемый в данном разделе API интерфейс позволяет отправлять заявки на обратный звонок, информация о которых будет загружена в журнал звонков.
Благодаря этому API методу можно автоматизировать прозвоны колл-центром поступающих заявок, а также настроить автоматический прозвон базы клиентов с регулированием времени звонка и выбором нужного оператора колл-центра.
Важным преимуществом данного метода в том, что для передачи заявок на обратный звонок не обязательно наличие скрипта Calltouch на сайте.
Подключение
Для подключения необходимо:
- Пополнить баланс минут и активировать услугу обратного звонка
- Создать специальный тип виджета "Форма на сайте" и настроить его.
- Включить виджет
- Настроить передачу заявок с сервера с помощью серверного API.
Далее представлены варианты передаваемых параметров для отправки заявок на обратный звонок
API-метод для создания заявок на обратный звонок
Запрос
Поддерживаемые методы отправки: POST.
POST /widget-service/v1/api/widget-request/user-form/create HTTP/1.1
HTTP-заголовки:
- Host: api.calltouch.ru
- Access-Token: <API-токен Calltouch>
Тело запроса в формате JSON:
{
"routeKey": "Ключ виджета "Форма на сайте", к которому будет привязана заявка",
"phone": "Номер телефона клиента",
"fields": [
{"name": "Название произвольного поля",
"value": "Значение произвольного поля"}
],
"sessionId": "ID сессии Calltouch",
"scheduleTime": "Время, на которое заказали обратный звонок, в формате
yyyy-mm-dd hh:mm:ss 2020-10-01 02:10:00",
"utmSource": "Произвольный источник",
"utmMedium": "Произвольный канал",
"utmCampaign": "Произвольная кампания",
"utmContent": "Произвольное объявление",
"utmTerm": "Произвольная ключевая фраза",
"callUrl": "URL-адрес страницы, с которой была отправлена заявка",
"tags": [
"Тег 1"
],
"unitId": Идентификатор отдела в виджете "Форма на сайте"
}
Параметры запроса
Да, если передается параметр fields
| Параметр | Формат | Обязательный | Описание |
| routeKey | string | Да | Ключ виджета "Форма на сайте", к которому будет привязана заявка. Любые символы, количеством от 1 до 255. Обязательное. |
| phone | string | Да |
Номер в 11-значном формате 7xxxxxxxxxx, с которым нужно соединить колл-центр. Могут быть использованы мобильные и городские номера РФ, кроме 8800 и 8804. Обязательное. |
| fields | array | Нет | Массив полей с произвольными данными. Можно перечислить до 5 дополнительных полей. Данные поля будут отображаться в журнале звонков в карточке клиента, а также доступны для подключения к синтезу речи. |
| fields.name | string |
Да, если указан параметр fields |
Название поля. Любые символы, количеством от 1 до 255. |
| fields.value | string | Да, если передается параметр fields |
Значение поля. Любые символы, количеством от 1 до 255. |
| sessionId | integer | Нет |
ID сессии Calltouch. Любые символы, максимум 100. ID сессии должен принадлежать сайту, токен которого используется в запросе. Обратите внимание, что источники повторных звонков присваиваются согласно правилу присвоения источника повторным звонкам и заявкам. Подробнее о получении sessionId в статье: Получение id сессии Calltouch |
| scheduleTime | string | Нет |
Дата и время отправки заявки. Формат: dd-mm-yyyy hh:mm:ss. |
| utmSource | string | Нет | Произвольный источник |
| utmMedium | string | Нет | Произвольный канал |
| utmCampaign | array | Нет |
Произвольная кампания |
| utmContent | object | Нет | Произвольное объявление |
|
utmTerm |
string | Нет | Произвольная ключевая фраза |
|
callUrl |
string | Нет | URL-адрес страницы, с которой была отправлена заявка |
|
tags |
array | Нет |
Добавление тегов к звонку. Если такие теги уже есть в ЛК, новые не создаются, а используются существующие. Любые символы, максимум 100 в каждом теге. Максимум 10 тегов. Формат:
|
|
unitId |
integer | Нет | Идентификатор отдела виджета "Форма на сайте", к которому будет привязана заявка. |
Пример запроса
HTTP-заголовки:
POST /widget-service/v1/api/widget-request/user-form/create HTTP/1.1 Host: api.calltouch.ru Access-Token: <token> ...
{"routeKey": "routekey_1", "phone": "79992223344"}
{
"routeKey": "routekey_1",
"phone": "79992223344",
"fields": [
{"name": "Имя", "value": "Иван"},
{"name": "Фамилия", "value": "Иванов"},
{"name": "Отчество", "value": "Иванович"},
{"name": "Город", "value": "Москва"},
{"name": "Тема", "value": "Заявка на консультацию"}
],
"sessionId": "11223344",
"scheduleTime": "2021-02-01 17:10:00",
"utmMedium": "medium",
"utmSource": "source",
"utmCampaign": "campaign",
"utmContent": "content",
"utmTerm": "term",
"tags": [
"tag1","tag2","tag3","tag10"
],
"unitId": 112233
}
Обратите внимание, что если указаны одновременно utmSource, utmMedium, utmCampaign, utmContent, utmTerm и sessionId, то sessionId имеет более высокий приоритет и источник будет взят из сессии.
Авторизация (токен)
Для работы с API необходимо в заголовке запроса указать токен, который можно получить в разделе личного кабинета Интеграции -> API и Webhooks -> API.
Идентификатор сессии Calltouch
Для получении id сессии необходимо воспользоваться одним из способов:
1. Получение id сессии из скрипта подмены.
Идентификатор сессии Calltouch присутствует в коде сайта, с которого отправляется заявка, если в этом коде установлен скрипт отслеживания Calltouch. Чтобы получить ID сессии скрипта Calltouch или проверить отработал ли он или нет, используйте JS-функцию calltracking_params, например:
window.ct('calltracking_params','mod_id').sessionId
2. Получение id сессии из cookies.
Приведем пример реализации скрипта на PHP с использованием CURL:
$sessionId = $_COOKIE['_ct_session_id'];
В обоих случаях определившийся источник заявки на обратный звонок (с помощью переданного значения сессии) будет отображен в журнале звонков:
Техническая документация
Более полное описание метода /api/widget-request/user-form/create представлено по ссылке http://api.calltouch.ru/widget-service/v1/
Данная документация отображает технические параметры запроса, а также предоставляет возможность отправки тестовых заявок на прозвон виджетом "Форма на сайте".
Для просмотра необходимо перейти в параметры заявки:
Чтобы отправить тестовую заявку необходимо авторизоваться, используя API-токен проекта, к которому вы планируете подключиться по API:
Для ознакомления с описанием метода и просмотра массива можно открыть каждый метод отдельно (строки кликабельны):

Для просмотра примера воспользуйтесь блоком "Example Value" и кнопкой Try it out + Execute.

Вы увидите ответ с описание кода:

Через данный блок, при использовании рабочего токена и routeKey, можно создать боевую заявку, которая будет обработана через сервис обратного звонка:
Для просмотра списка полей перейдите в блок Model.
Ниже список полей для создания заявки на обратный звонок:
Список ошибок
| Код | Описание |
|---|---|
| 1 | Синтаксическая ошибка JSON в запросе или запрос пустой |
| 10001 | Невозможно создать заявку виджета, недостаточно минут обратного звонка |
| 10002 | Невозможно создать заявку виджета, услуга обратного звонка не включена |
| 10003 | Невозможно создать заявку виджета, не найдено включенных виджетов с указанным ключом |
| 10004 | Невозможно создать заявку виджета, указанная сессия не найдена |
| 10005 | Превышен лимит отправки заявок в рамках сессии, если передан sessionId |
| 10006 | Превышен лимит отправки заявок на один и тот же номер телефона, если не передан sessionId |
| 10007 |
Превышен лимит минимального интервала между отправкой заявок по номеру телефону или сессии |
Система баллов API Calltouch
Система баллов API - механизм, регулирующий нагрузку на сервера Calltouch. Для каждого проекта выдается индивидуальное суточное количество баллов За каждый успешно выполненный запрос списываются баллы. Подробнее читайте в статье: Система баллов API Calltouch
Количество запросов в секунду к API Calltouch ограничено – не более 5 запросов в секунду с одного IP-адреса. Например, если в 1 секунду с одного IP-адреса поступит 11 API-запросов, то 5 выполнятся сразу, а остальные API-запросы завершатся с ошибкой.
Пример реализации
В данном примере будет рассмотрен прозвон клиентской базы, хранящейся в Google Sheets. Заявки на прозвон будут отправляться автоматически через сервис Альбато.
Подготовка таблицы Google Sheets
Для корректного прозвона списка клиентов и дальнейшей проверки необходимо подготовить данные к отправке.
На примере ниже подготовлена таблица с данными клиента (ФИО и телефон), произвольными значениями источников, заданным тегом и выбранным отделом.

Обратите внимание, что для корректной обработки полей таблицы на стороне Альбато, не должно быть пустых строк.
Настройка подключения и связок в Альбато
Для настройки связки необходимо будет создать следующие подключения:
- Google Sheets
- Calltouch
- Webhooks
Для настройки подключения к Calltouch потребуется id сайта и ключ API (токен).
В настройках подключения Webhooks необходимо будет указать:
- адрес сервера API Calltouch - https://api.calltouch.ru/widget-service/v1/api/widget-request/user-form/create
- параметры запроса:
utmSource
utmMedium
utmCampaign
utmContent
utmTerm
routeKey
phone
fields.0.name
fields.0.value
tags.0
unitId


Отображение результатов в журнале звонков
После запуска связки звонки начнут обрабатываться. В журнале звонков будут отображены звонки с полем ФИО, заданными источниками и тегом.
Таким образом был получен инструмент автоматического обзвона клиенткой базы.
При необходимости, можно обогатить передаваемую информацию дополнительными полями, что позволит передавать оператору колл-центра более полные данные о клиенте через синтез речи.
и мы поможем вам
- A/B тестирование (раздел «Подключение»)
- Email-трекинг (раздел «Подключение»)
- Отслеживание офлайн конверсии (раздел «Подключение»)
- Подключение к отслеживанию дополнительных доменов (раздел «Подключение»)
- Подмена номеров на AMP-страницах Google (раздел «Подключение»)