Выгрузка журнала заявок через API
Назначение
API — это программный интерфейс для внешних программных продуктов. Рассматриваемый в данном разделе API интерфейс позволяет получить статистику о заявках, которая может быть проанализирована другими системами, и на основе которой клиенты сервиса могут сделать свои выводы и прогнозы, интегрировать данные в CRM, или другие сервисы.
API-метод для выгрузки заявок
Посмотреть создавшиеся заявки можно не только в интерфейсе Calltouch, но и получить их выгрузку в формате JSON через API.
Запрос
Поддерживаемый метод отправки: GET.
Формат результатов выборки: JSONMapObject
API-запрос:
https://api.calltouch.ru/calls-service/RestAPI/requests
Параметры запроса
| Параметр | Обязательный | Описание |
| clientApiId | Да |
API токен. Получить его можно в разделе:
|
| siteId | Да |
ID личного кабинета. Получить его можно в разделе: |
| dateFrom |
Да |
Начальная дата создания заявок, с которой они будут выгружены. Формат mm/dd/yyyy. |
| dateTo | Да | Конечная дата создания заявок, до которой они будут выгружены. Формат mm/dd/yyyy. |
| timeFrom | Нет | Время начала периода выгрузки в формате hh:mm:ss. |
| timeTo | Нет | Время конца периода выгрузки в формате hh:mm:ss. |
| attribution | Нет |
Модель атрибуции заявок. Возможные значения:
По умолчанию, если параметр не указан - заявки выгружаются согласно модели атрибуции, настроенной в ЛК. Более подробно о моделях атрибуции Вы можете узнать в соответствующей статье. |
|
requestNumber |
Нет | Внешний ID заявки, которую необходимо выгрузить. Для выгрузки нескольких заявок допустимо вводить несколько значений, разделенный запятой. При выгрузке заявок по их ID - параметры dateFrom и dateTo указывать не обязательно. |
| requestId | Нет |
ID заявки в Calltouch, которую необходимо выгрузить. Для выгрузки нескольких заявок допустимо вводить несколько значений, разделенный запятой. При выгрузке заявок по их ID - параметры dateFrom и dateTo указывать не обязательно. |
| subject | Нет | В качестве его значения можно указать название формы, для выгрузки только тех заявок, которые были сделаны с этой формы. Поиск среди заявок происходит по названию формы, которое "начинается с" указанного значения в параметре subject. |
| keywords | Нет | В качестве его значения можно указать ключевой запрос, по которому пользователь совершил переход на отслеживаемый сайт и оставил заявку - в этом случае Поиск среди заявок происходит по ключевому запросу, который "содержит" указанное значение в параметре keywords. |
| city | Нет | В качестве его значения можно указать название города, для выгрузки только тех заявок, которые были сделаны пользователем из этого города. Поиск среди заявок происходит по названию города, которое "полностью совпадает" с указанным значением в параметре city. Название городов указываются в формате базы данных Sypex Geo. |
| source | Нет | В качестве его значения можно указать название источника, для выгрузки только тех заявок, которые были сделаны пользователем при переходе на сайт с этого источника. Поиск среди заявок происходит по названию источника, которое "полностью совпадает" с указанным значением в параметре source. |
| medium | Нет | В качестве его значения можно указать название канала, для выгрузки только тех заявок, которые были сделаны пользователем при переходе на сайт с этого канала. Поиск среди заявок происходит по названию канала, которое "полностью совпадает" с указанным значением в параметре medium. |
| bindTo | Нет |
Флаг выгрузки заявок с привязкой к разным метрикам. Возможные значения:
|
| ani.value | Нет |
В качестве его значения можно указать телефонный номер, для выгрузки только тех заявок, в которых был указан этот телефонный номер. |
| ani.filterMode | Нет |
Режим фильтрации предыдущего параметра по номеру телефона, оставленного в заявке. Описание режимов смотри ниже. |
| email.value | Нет |
В качестве его значения можно указать электронную почту, для выгрузки только тех заявок, в которых была указана эта электронная почта. |
| email.filterMode | Нет |
Режим фильтрации предыдущего параметра по электронной почте, оставленной в заявке. Описание режимов смотри ниже. |
| withRequestTags | Нет |
Флаг выгрузки тегов, которые были присвоены заявкам. Формат:
|
| withYandexDirect | Нет |
Флаг выгрузки данных по рекламным кампаниям Яндекс.Директ. Если входной параметр withYandexDirect = true, то в выгрузке присутствует выходной параметр yandexDirect, если withYandexDirect = false или не указан, то выходной параметр yandexDirect отсутствует. |
| withGoogleAdwords | Нет | Флаг выгрузки данных по рекламным кампаниям Google AdWords. Если входной параметр withGoogleAdwords = true, то в выгрузке присутствует выходной параметр googleAdWords, если withGoogleAdwords = false или не указан, то выходной параметр googleAdWords отсутствует. |
| withAttrs | Нет |
Флаг выгрузки сторонних параметров, переданных заранее в статистику Calltouch. Возможные значения: 1. Флаг withAttrs=false или не указан, по умолчанию. Сторонние параметры не выгружаются, значение выходного параметра attrs=null. 2. Флаг withAttrs=true. Сторонние параметры выгружаются в выходной параметр attrs. Если их нет, то значение выходного параметра attrs=null. |
|
withMapVisits |
Нет | Флаг истории посещений посетителя, оставившего заявку. Формат: withMapVisits=true - включить в ответ историю посещений, withMapVisits=false или отсутствие параметра - не включать. |
| manager | Нет | В качестве его значения можно указать ФИО менеджера, для выгрузки только тех заявок, которым был присвоен этот менеджер с помощью API-метода присвоения менеджеров к лидам. |
| withWidgetInfo | Нет |
Флаг выгрузки данных (ФИО, email, номер телефона, кастомные поля), оставленных в соц. сетях VK, Facebook, TikTok, а также виджетах: Умная заявка, Промо-лендинг (на заявках), Трейд-ин (на заявках), Колесо-Фортуны (на заявках), Автопрозвон заявок с сайта (при включенной настройке сбор заявок в нерабочее время).
Формат:
|
| withCustomFields | Нет |
Флаг выгрузки данных по пользовательским полям. Формат:
Если параметр не указан - по умолчанию false Данные будут доступны в выходном параметре customFields. |
| withDcm | Нет |
Флаг выгрузки данных по интеграции с DoubleClick Campaign Manager. Возможные значения:
По каждой заявки может быть несколько отправок в DCM, в соответствии с настройками интеграции. Поэтому в ответе будет массив данных, каждая отправка будет в отдельном элементе массива. В ответ на запрос к API попадает последняя попытка отправки на момент обращения к нашему API. |
Режимы фильтрации
Выборку некоторых параметров выше, имя которых параметр.filterMode, можно дополнительно отфильтровать:
- startwith — начинается с
- contains — содержит
- exact — полное соответствие (по умолчанию если фильтр не задан)
Примеры GET-запросов на выгрузку заявок
- Выгрузка нескольких заявок
Запрос далее выгрузит заявки, созданные за период с 28 марта по 4 апреля 2019 года:
https://api.calltouch.ru/calls-service/RestAPI/requests/?clientApiId=mD4rd.Nc5JINXrWEDLIi7/jvY/3CR64etYH40DggYFpCo&dateFrom=03/28/2019&dateTo=04/04/2019&withMapVisits=true
- Выгрузка одной заявки
Запрос далее выгрузит заявку с идентификатором 79825254:
https://api.calltouch.ru/calls-service/RestAPI/requests/?clientApiId=GllU3tbwhrTkA1Chryud4xIT48WE8FPeNyrGQQswIb3nr&requestId=79825254
Ответ
Пример ответа
После успешной отправки API-запроса на выгрузку заявок, возвращается следующий JSON-ответ:
[
{
"date": 1554382259240,
"comments": [
{
"commentId": 7319,
"requestId": 145507,
"comment": "Колин комментарий",
"partyId": 19688,
"partyName": "API"
}
],
"requestType": "CLIENT_ORDER",
"dateStr": "04/04/2019 15:50:59",
"manager": "Вася",
"session": {
"keywords": "(not set)",
"city": "moscow",
"ip": "95.163.114.76/32",
"browser": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36",
"source": "(direct)",
"medium": "(none)",
"ref": "",
"url": "https://alftest.ru/calltouch/supertest/",
"utmSource": "<не указано>",
"utmMedium": "<не указано>",
"utmTerm": "<не указано>",
"utmContent": "<не указано>",
"utmCampaign": "<не указано>",
"guaClientId": null,
"yaClientId": null,
"sessionId": 16441053,
"additionalTags": [],
"attribution": 1,
"attrs": null
},
"subject": "Заявка на звонок",
"uniqTargetRequest": true, "requestUrl": "https://test.ru/123", "hostname": "test.ru",
"mapVisits": [
{
"utmSource": "<не указано>",
"sessionDate": "03/04/2019 16:02:51",
"city": "moscow",
"ip": "95.163.114.76/32",
"utmTerm": "<не указано>",
"utmContent": "<не указано>",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36",
"sessionId": 15952760,
"source": "(direct)",
"medium": "(none)",
"utmCampaign": "<не указано>",
"url": "https://alftest.ru/calltouch/supertest/",
"ref": "",
"additionalTags": [],
"utmMedium": "<не указано>",
"guaClientId": null,
"keyword": "(not set)"
},
{
"utmSource": "<не указано>",
"sessionDate": "04/04/2019 15:50:34",
"city": "moscow",
"ip": "95.163.114.76/32",
"utmTerm": "<не указано>",
"utmContent": "<не указано>",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36",
"sessionId": 16441053,
"source": "(direct)",
"medium": "(none)",
"utmCampaign": "<не указано>",
"url": "https://alftest.ru/calltouch/supertest/",
"ref": "",
"additionalTags": [],
"utmMedium": "<не указано>",
"guaClientId": null,
"keyword": "(not set)"
}
],
"uniqueRequest": true, "widgetInfo: { "fields": [ { "name": "Имя", "value": "Андрей" }, { "name": "Номер телефона", "value": "+7 (977) 684-11-08", "type": "phone", "title": null } ] }, "RequestTags": [ { "category": "", "type": "AUTO-CT", "names": [ "Тег заявки" ] } ],
"requestNumber": "145507",
"requestId": 145507,
"client": {
"fio": "Коля",
"clientId": 640236,
"phones": [
{
"phoneNumber": "79991234567",
"phoneType": "OTHER"
}
],
"contacts": [
{
"contactType": "EMAIL",
"contactValue": "kolya@yandex.ru"
}
]
},
"orders": [
{
"orderId": 119901,
"callId": null,
"dateCreated": 1554382620000,
"status": "PENDING",
"realSum": "2800.0000",
"offered": null,
"sent": "04.04.2019",
"sum": "2800.0000",
"isMarked": null,
"commentsCount": 0,
"currentAmount": 2800,
"orderNumber": "119901",
"orderSum": "2800.0000",
"orderStatus": "PENDING",
"orderComments": "",
"session": {
"keywords": "(not set)",
"city": "moscow",
"ip": "95.163.114.76/32",
"browser": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36", "device": "desktop", "os": "Windows", "browserName": "Chrome",
"source": "(direct)",
"medium": "(none)",
"ref": "",
"url": "https://alftest.ru/calltouch/supertest/",
"utmSource": "<не указано>",
"utmMedium": "<не указано>",
"utmTerm": "<не указано>",
"utmContent": "<не указано>",
"utmCampaign": "<не указано>",
"guaClientId": null,
"yaClientId": null,
"sessionId": 16441053,
"additionalTags": [],
"attribution": 1,
"attrs": null
}
}
],
"targetRequest": true,
"status": "NOT_SET",
"order": {
"orderId": 119901,
"callId": null,
"dateCreated": 1554382620000,
"status": "PENDING",
"realSum": "2800.0000",
"offered": null,
"sent": "04.04.2019",
"sum": "2800.0000",
"isMarked": null,
"commentsCount": 0,
"currentAmount": 2800,
"orderNumber": "119901",
"orderSum": "2800.0000",
"orderStatus": "PENDING",
"orderComments": "",
"session": {
"keywords": "(not set)",
"city": "moscow",
"ip": "95.163.114.76/32",
"browser": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36",
"source": "(direct)",
"medium": "(none)",
"ref": "",
"url": "https://alftest.ru/calltouch/supertest/",
"utmSource": "<не указано>",
"utmMedium": "<не указано>",
"utmTerm": "<не указано>",
"utmContent": "<не указано>",
"utmCampaign": "<не указано>",
"guaClientId": null,
"yaClientId": null,
"sessionId": 16441053,
"additionalTags": [],
"attribution": 1,
"attrs": null
}
}
}, ... { ... } ]
JSON-объекты:
| Объект | Описание |
| date | Дата и время создания заявки в формате Unix Timestamp в миллисекундах. |
| comments |
Комментарии к заявкам. Возможные значения:
Где вложенные объекты элемента массива:
Обратите внимание, в конце комментария comment может присутствовать символ \n. Он означает перенос строки, не забудьте учесть это при парсинге параметров. |
| requestNumber | Уникальный идентификатор заявки на Вашем сайте, который Вы отправили в запросе. Если Вы не отправляли данный параметр, в ответе будет содержаться уникальный идентификатор заявки в Calltouch (он же будет и в объекте Дата и время создания заявки в формате dd/mm/yyyy hh:mm:ss. далее). |
| dateStr | Дата и время создания заявки в формате dd/mm/yyyy hh:mm:ss. |
| manager | ФИО менеджера, который был присвоен заявке с помощью API-метода присвоения менеджеров к лидам. Если у заявки нет менеджера, передается значение null. |
| session |
Объект будет содержать вложенные объекты с описанием посещения, за которым закрепилась заявка. Описание вложенных объектов:
Если Вы не отправляли идентификатор сессии Calltouch в запросе, объект будет равен значению null. |
| requestId | Уникальный идентификатор заявки в Calltouch. |
| subject | Название формы на Вашем сайте, которое Вы отправили в запросе. |
|
requestUrl |
URL страницы, с которой была отправлена заявка |
|
hostname |
Отслеживаемый домен или поддомен ресурса, на который был осуществлен переход (например: yoursite.ru). |
| uniqTargetRequest |
Уникально-целевая заявка. Может принимать следующие значения:
|
| uniqueRequest |
Уникальная заявка. Может принимать следующие значения:
|
| siteId | ID сайта |
| client |
Объект будет содержать вложенные объекты с описанием клиента, данные по которому Вы отправили в запросе. Описание вложенных объектов:
|
| targetRequest |
Целевая заявка. Может принимать следующие значения:
|
| orders |
Массив всех сделок, связанных с заявкой. Для каждой сделки будет содержать вложенные объекты с описанием сделки, связанной с заявкой, если таковые были созданы (см. статью Управление сделками через API). Описание вложенных объектов:
Если Вы не отправляли идентификатор сессии Calltouch в запросе, массив будет пустой. |
| mapVisits |
История посещений. Параметр присутствует в случае, если указан входной параметр истории посещений withMapVisits=true. Результат будет содержать все посещения пользователя оставившего заявку на сайте,
|
| yandexDirect |
Если источник звонка или заявки рекламная кампания Яндекс.Директ, между Calltouch и Яндекс.Директ включена интеграция, то в данном параметре выводится следующая информация:
"yandexDirect": {
"campaignId": 32515134,
"adGroupId": 325245212134,
"adId": 2546356252,
"criteriaId": 254251323
}
Пример ответа, когда у звонка или заявки нет этих данных (не настроена интеграция, либо данные еще не собрались): "yandexDirect": null |
| googleAdWords |
Если источник звонка или заявки рекламная кампания Google AdWords, между Calltouch и Google AdWords включена интеграция, то в данном параметре выводится следующая информация:
"googleAdWords": {
"campaignId": 35635656,
"adGroupId": 134524245,
"creativeId": 23134141,
"criteriaId": 4324553542
}
Пример ответа, когда у звонка или заявки нет этих данных (не настроена интеграция, либо данные еще не собрались):
"googleAdWords": null |
| attrs |
Сторонние параметры, переданные заранее в статистику Calltouch. Выгружаются, если во входных параметрах был передан флаг withAttrs=true. Возможные значения:
attrs: {"param1":"value1","param2":"value2"}
|
| dcm |
Данные по отправке заявки с DoubleClick Campaign Manager. Формат ответа: 1. Если входной параметр withDcm (см. выше) не задан или false, то:
"dcm": null "dcm": [] "dcm": [ Где:
|
| widgetInfo |
Данные по кастомным полям заявки из виджета. Выгружаются только для заявок через виджеты, если был передан входной параметр withWidgetInfo=true Формат ответа:
[ |
|
customFields |
Данные по пользовательским полям в звонках. Будут в ответе если был передан входной параметр withCustomFields=true. Формат ответа: [ |
| ctClientId |
Идентификатор посетителя Calltouch. Он представляет из себя значение нашей куки _ct. Если в звонке значение отсутствует (у лида нет сессии, например, звонок на статический номер), то в значении будет null. |
|
RequestTags[i].names
|
Теги заявок, присутствуют в случае, если указан входной параметр withRequestTags=true. Параметр содержит следующие данные:
category — устаревший параметр, оставлен в API для обратной совместимости и в ЛК нигде не используется. Теги нужно парсить из RequestTags[i].names. Если там встречается запятая – это разделить тегов и их там несколько. |
- JSON-объекты, не описанные выше, но присутствующие в ответе — являются устаревшими, их следует игнорировать в ответе.
- Выгрузка данных осуществляется в соответствии с ограничениями по сегментам у пользователя-владельца токена. Если пользователь имеет ограниченный доступ к ряду сегментов, то в ответе будут присутствовать только те заявки, которые входят в сегменты, доступные пользователю.
- Данные из Яндекс.Директ и Google AdWords подгружаются в Calltouch на следующий день после фиксирования звонка или заявки. Если данные обновляются на стороне Яндекс.Директ или Google AdWords (они могут обновиться 4 раза в месяц), то они будут изменены и в API-выгрузке.
Система баллов API Calltouch
Система баллов API — механизм, регулирующий нагрузку на сервера Calltouch. Для каждого проекта выдается индивидуальное суточное количество баллов За каждый успешно выполненный запрос списываются баллы. Подробнее читайте в статье: Система баллов API Calltouch.
Количество запросов в секунду к API Calltouch ограничено — не более 5 запросов в секунду с одного IP-адреса. Например, если в 1 секунду с одного IP-адреса поступит 11 API-запросов, то 5 выполнятся сразу, а остальные API-запросы завершатся с ошибкой c кодом 429 (Too Many Requests).
- A/B тестирование (раздел «Подключение»)
- Email-трекинг (раздел «Подключение»)
- Отслеживание офлайн конверсии (раздел «Подключение»)
- Подключение к отслеживанию дополнительных доменов (раздел «Подключение»)
- Подмена номеров на AMP-страницах Google (раздел «Подключение»)