Выгрузка журнала заявок через API

Читать 23

Назначение

API — это программный интерфейс для внешних программных продуктов. Рассматриваемый в данном разделе API интерфейс позволяет получить статистику о заявках, которая может быть проанализирована другими системами, и на основе которой клиенты сервиса могут сделать свои выводы и прогнозы, интегрировать данные в CRM, или другие сервисы.

API-метод для выгрузки заявок

Посмотреть создавшиеся заявки можно не только в интерфейсе Calltouch, но и получить их выгрузку в формате JSON через API.

Запрос

Поддерживаемый метод отправки: GET.

Формат результатов выборки: JSONMapObject

API-запрос:

https://api.calltouch.ru/calls-service/RestAPI/requests

Параметры запроса

Параметр Обязательный Описание
clientApiId Да API токен. Получить его можно в разделе:  Интеграции /  Отправка данных во внешние системы / API и Webhooks / API.

siteId Да ID личного кабинета. Получить его можно в разделе:  Интеграции /  Отправка данных во внешние системы / API и Webhooks / API.
dateFrom Да
Начальная дата создания заявок, с которой они будут выгружены. Формат mm/dd/yyyy.
dateTo Да Конечная дата создания заявок, до которой они будут выгружены. Формат mm/dd/yyyy.
timeFrom Нет Время начала периода выгрузки в формате hh:mm:ss. 
timeTo Нет Время конца периода выгрузки в формате hh:mm:ss. 
attribution Нет

Модель атрибуции заявок. Возможные значения:

  • 0 — последнее взаимодействие;
  • 1 — последний непрямой;

По умолчанию, если параметр не указан - заявки выгружаются согласно модели атрибуции, настроенной в ЛК. Более подробно о моделях атрибуции Вы можете узнать в соответствующей статье.

requestNumber
Нет Внешний ID заявки, которую необходимо выгрузить. Для выгрузки нескольких заявок допустимо вводить несколько значений, разделенный запятой. При выгрузке заявок по их ID - параметры dateFrom и dateTo указывать не обязательно.
requestId Нет ID заявки в Calltouch, которую необходимо выгрузить. Для выгрузки нескольких заявок допустимо вводить несколько значений, разделенный запятой. При выгрузке заявок по их ID - параметры dateFrom и dateTo указывать не обязательно.
subject Нет В качестве его значения можно указать название формы, для выгрузки только тех заявок, которые были сделаны с этой формы. Поиск среди заявок происходит по названию формы, которое "начинается с" указанного значения в параметре subject.
keywords Нет В качестве его значения можно указать ключевой запрос, по которому пользователь совершил переход на отслеживаемый сайт и оставил заявку - в этом случае Поиск среди заявок происходит по ключевому запросу, который "содержит" указанное значение в параметре keywords.
city Нет В качестве его значения можно указать название города, для выгрузки только тех заявок, которые были сделаны пользователем из этого города. Поиск среди заявок происходит по названию города, которое "полностью совпадает" с указанным значением в параметре city. Название городов указываются в формате базы данных Sypex Geo.
source Нет В качестве его значения можно указать название источника, для выгрузки только тех заявок, которые были сделаны пользователем при переходе на сайт с этого источника. Поиск среди заявок происходит по названию источника, которое "полностью совпадает" с указанным значением в параметре source.
medium Нет В качестве его значения можно указать название канала, для выгрузки только тех заявок, которые были сделаны пользователем при переходе на сайт с этого канала. Поиск среди заявок происходит по названию канала, которое "полностью совпадает" с указанным значением в параметре medium.
bindTo Нет Флаг выгрузки заявок с привязкой к разным метрикам. Возможные значения:

  • request — по дате создания заявок (по умолчанию)
  • session — по дате сессий
ani.value Нет

В качестве его значения можно указать телефонный номер, для выгрузки только тех заявок, в которых был указан этот телефонный номер.

ani.filterMode Нет

Режим фильтрации предыдущего параметра по номеру телефона, оставленного в заявке. Описание режимов смотри ниже.

email.value Нет

В качестве его значения можно указать электронную почту, для выгрузки только тех заявок, в которых была указана эта электронная почта.

email.filterMode Нет

Режим фильтрации предыдущего параметра по электронной почте, оставленной в заявке. Описание режимов смотри ниже.

withMapVisits Нет

Флаг истории посещений посетителя, оставившего заявку. Формат: withMapVisits=true - включить в ответ историю посещений, withMapVisits=false или отсутствие параметра - не включать.

withRequestTags Нет

Флаг выгрузки тегов, которые были присвоены заявкам. 

Формат: 

  • true - включить в ответ теги заявок
  • false - отсутствие параметра - не включать. По умолчанию false

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, а также виджета Умной заявки

Формат:

  • withWidgetInfo=true — выгружать данные
  • withWidgetInfo=false или отсутствие параметра — не выгружать данные
Данные будут доступны только для заявок из виджетов в выходном параметре widgetInfo.
withCustomFields Нет Флаг выгрузки данных по пользовательским полям.

Формат:

  • withCustomFields=true — выгружать данные
  • withCustomFields=false или отсутствие параметра — не выгружать данные

Если параметр не указан - по умолчанию false

Данные будут доступны в выходном параметре customFields.

withDcm Нет Флаг выгрузки данных по интеграции с DoubleClick Campaign Manager. Возможные значения:

  • true — выгрузить данные по отправке заявки в DCM
  • false — не выгружать данные

По каждой заявки может быть несколько отправок в 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",
"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

Комментарии к заявкам. Возможные значения: 

  • Если у заявки не будет комментариев, значение параметра будет в виде пустого массива:
    "comments": []
  • Если у заявки будут комментарии, значение параметра будет массив комментариев:

Где вложенные объекты элемента массива:

  • commentId — ID комментария (число);
  • requestId — ID заявки, по которой оставлен комментарий (число);
  • comment —- комментарий (строка);
  • partyId — ID пользователя, оставившего комментарий (число);
  • partyName — логин пользователя, оставившего комментарий (строка).

Обратите внимание, в конце комментария comment может присутствовать символ \n. Он означает перенос строки, не забудьте учесть это при парсинге параметров.

requestNumber Уникальный идентификатор заявки на Вашем сайте, который Вы отправили в запросе. Если Вы не отправляли данный параметр, в ответе будет содержаться уникальный идентификатор заявки в Calltouch (он же будет и в объекте Дата и время создания заявки в формате dd/mm/yyyy hh:mm:ss. далее).
dateStr Дата и время создания заявки в формате dd/mm/yyyy hh:mm:ss.
manager ФИО менеджера, который был присвоен заявке с помощью API-метода присвоения менеджеров к лидам. Если у заявки нет менеджера, передается значение null.
session

Объект будет содержать вложенные объекты с описанием посещения, за которым закрепилась заявка. Описание вложенных объектов:

  • keywords — ключевой запрос;
  • city — город посетителя (определяется по его IP-адресу);
  • ip — IP-адрес;
  • browser — user agent браузера;
  • source — Источник перехода;
  • medium — Канал перехода;
  • ref — адрес страницы, с которой был совершен реферальный переход на Ваш отслеживаемый сайт (присутствует только если переход посетителя был реферальным);
  • url — адрес входа на сайт (может отличаться от страницы, с которой в итоге был совершен звонок);
  • utmSource — значение utm-метки utm_source;
  • utmMedium — значение utm-метки utm_medium;
  • utmTerm — значение utm-метки utm_term;
  • utmContent — значение utm-метки utm_content;
  • utmCampaign — значение utm-метки utm_campaign;
  • device — тип устройства;
  • os — название операционной системы;
  • browserName — название браузера;
  • guaClientId — идентификатор Google Client ID (присутствует, если настроена интеграция с Google Analytics);
  • yaClientId — идентификатор Yandex Client ID (присутствует, если настроена интеграция с Яндекс.Метрика);
  • ctGlobalId — глобальный идентификатор посетителя Calltouch, общий для сайтов, на которых установлен скрипт Calltouch;
  • sessionId — идентификатор сессии Calltouch, который Вы отправили в запросе ранее;
  • attribution — текущая модель атрибуции, согласно которой определился источник заявки (модель атрибуции может быть изменена в системных настройках ЛК, после этого источники будут "на лету" переопределены у всех звонков и заявок ранее);
  • attrs — Сторонние параметры, переданные заранее в статистику Calltouch.

Если Вы не отправляли идентификатор сессии Calltouch в запросе, объект будет равен значению null.

requestId Уникальный идентификатор заявки в Calltouch.
subject Название формы на Вашем сайте, которое Вы отправили в запросе.
requestUrl
URL страницы, с которой была отправлена заявка
uniqTargetRequest Уникально-целевая заявка. Может принимать следующие значения:
  • true (уникально-целевая заявка);
  • false (не уникально-целевая заявка).
uniqueRequest Уникальная заявка. Может принимать следующие значения:
  • true (уникальная заявка);
  • false (повторная заявка).
siteId ID сайта
client

Объект будет содержать вложенные объекты с описанием клиента, данные по которому Вы отправили в запросе. Описание вложенных объектов:

  • fio — имя клиента;
  • clientId — идентификатор клиента внутри Calltouch;
  • phones — содержит массив, внутри которого в объекте phoneNumber содержится номер телефона клиента;
  • contacts — содержит массив, внутри которого в объекте contactValue содержится почта клиента.
targetRequest

Целевая заявка. Может принимать следующие значения:

  • true (целевая заявка);
  • false (не целевая заявка).
orders

Массив всех сделок, связанных с заявкой. Для каждой сделки будет содержать вложенные объекты с описанием сделки, связанной с заявкой, если таковые были созданы (см. статью Управление сделками через API). Описание вложенных объектов:

  • orderId — идентификатор сделки внутри Calltouch;
  • dateCreated — дата и время создания сделки;
  • status — cтатус сделки;
  • sum — бюджет сделки;
  • orderNumber — уникальный идентификатор сделки в Вашей CRM (если при создании сделки Вы не отправляли данный параметр, в ответе будет содержаться уникальный идентификатор сделки в Calltouch - он же будет и в объекте orderId выше).

Если Вы не отправляли идентификатор сессии Calltouch в запросе, массив будет пустой.

mapVisits

История посещений. Параметр присутствует в случае, если указан входной параметр истории посещений withMapVisits=true. Результат будет содержать все посещения пользователя оставившего заявку на сайте,

  • utmSource
  • sessionDate
  • sessionID
  • city
  • ip
  • utmTerm
  • utmContent
  • userAgent
  • sessionId
  • source
  • medium
  • utmCampaign
  • url
  • ref
  • additionalTags
  • utmMedium
  • guaClientId
  • keyword
  • ctClientId
  • ctGlobalId
yandexDirect

Если источник звонка или заявки рекламная кампания Яндекс.Директ, между Calltouch и Яндекс.Директ включена интеграция, то в данном параметре выводится следующая информация:

  • campaignId — ID кампании;
  • adGroupId — ID группы;
  • adId — ID объявления;
  • criteriaId —ID фразы
    Пример ответа, когда у звонка или заявки есть эти данные:
"yandexDirect": {
 "campaignId": 32515134,
 "adGroupId": 325245212134,
 "adId": 2546356252,
 "criteriaId": 254251323
}

Пример ответа, когда у звонка или заявки нет этих данных (не настроена интеграция, либо данные еще не собрались):

"yandexDirect": null
googleAdWords Если источник звонка или заявки рекламная кампания Google AdWords, между Calltouch и Google AdWords включена интеграция, то в данном параметре выводится следующая информация:
  • campaignId — ID кампании;
  • adGroupId — ID группы;
  • creativeId — ID объявления;
  • criteriaId — ID фразы
    Пример ответа, когда у звонка или заявки есть эти данные:
"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
2. Если withDcm=true, но не было отправок в DCM, то:
"dcm": []
3. Если withDcm=true, отправки были, то:
"dcm": [
{
"profileIdDCM": 1411789,
"floodlightConfigurationId": "10355394",
"floodlightActivityId": "10501143",
"requestStatus": "ERROR",
"requestErrors": "HTTP_AUTH_ERROR"
}
]

Где:

  • profileIdDCM — идентификатор профиля DCM;
  • floodlightConfigurationId — конфигурация из DCM;
  • floodlightActivityId — идентификатор флудлайта;
  • requestStatus — статус отправки заявки в DCM. Возможные значения:
    • success — успешная отправка;
    • error — отправка, завершенная ошибкой;
  • requestErrors — описание ошибки отправки заявки в DCM, если она возникает. Если нет, то значение будет null.
widgetInfo

Данные по кастомным полям заявки из виджета. Выгружаются только для заявок через виджеты, если был передан входной параметр withWidgetInfo=true

Формат ответа:

[
    {
        ...
       "widgetInfo" : {
         "fields": [
             {"name":"Имя", "value": "Иван" },
             { "name": "Номер телефона", "value": "+7 (977) 684-11-08", "type": "phone", "title": null },
          ]
        }
      ...
   }
]
customFields

Данные по пользовательским полям в звонках. Будут в ответе если был передан входной параметр withCustomFields=true.

Формат ответа:

[
    {
        ...
       "customFields": [
            {"field": "name", "value": "Вася"},
      {"field": "birthday", "value": "1990-01-01"}
        ]
      ...
    }]
ctClientId

Идентификатор посетителя Calltouch. Он представляет из себя значение нашей куки _ct. Если в звонке значение отсутствует (у лида нет сессии, например, звонок на статический номер), то в значении будет null.

ctClientId

Идентификатор посетителя Calltouch. Он представляет из себя значение нашей куки _ct. Если в звонке значение отсутствует (у лида нет сессии, например, звонок на статический номер), то в значении будет null.

RequestTags[i].names

Теги заявок, присутствуют в случае, если указан входной параметр withRequestTags=true. 

Параметр содержит следующие данные: 

  • category (категория тега, по умолчанию равна имени тега);

  • names (имя тега) 

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).


Не нашли решение проблемы?
Заполните форму, и мы вам поможем.