Читать 5

Добавление пользовательских полей к лидам


Описание

В статье описан API-метод добавления пользовательских полей к лидам.

Запрос

POST:

https://api.calltouch.ru/lead-service/v1/api/customfield/lead/add   

HTTP-заголовки:

  • Access-Token — API-ключ
  • SiteId — ID ЛК Calltouch

Тело запроса в формате JSON.

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

{
    "leads": [
  
     // Лид 1
  
        {
            "matching": [
                {
                    "type": "request",
                    "requestParams": {
                        "requestId": 1,
                        "tags": ["тег1", "тег2"],
                        "tagsLogic": "and"
                    }
                },
                {
                    "type": "leadContact",
                    "leadContactParams": {
                         "emails": ["name@server.com"],
                         "phones": ["79157771122", "+7 (915) 888-11-22"],
                         "searchAmongPhonesInText": false,
                         "date": "Дата и время лида",
                         "tags": ["тег1","тег2"],
                         "tagsLogic": "and",
                         "leadTypeToMatch": "nearest",
                         "searchDepth": 262800
                },
                {
                    "type": "requestContact",
                    "requestContactParams": {
                        "emails": ["name@server.com"],
                        "phones": ["79157771122", "+7 (915) 888-11-22"],
                        "md5Phones": ["4fec00b25336e719d4a0b255ea5aa0f5"],
                        "date": "Дата и время заявки",
                        "requestTypeToMatch": "nearestUniq",
                        "searchDepth": 262800
                    }
                }
            ],
            "addCustomFields": {
                "overwrite": false,
                "customFields":
                    [
                         {"field": "test_field", "value": "test value"},
                         {"field": "name", "value": 123.4},
                         {"field": "birthday", "value": "1990-01-01"}
                    ]
             }
        },
  
        // Лид N
  
        ...
    ]
}   

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

Параметр Формат Обязательный Описание
leads array Да Массив лидов. Можно перечислить до 100 лидов за 1 запрос. Добавление пользовательских полей происходит в режиме онлайн, результат можно получить сразу же. Обязательно.
leads.matching object Да

Здесь задается приоритет использования разных типов матчинга, по которым мы будем пытаться найти лид для добавления пользовательского поля. Чем выше находится строка с типом матчинга, тем больший приоритет она имеет. Если матчинга завершится на каком-либо типе, остальные типы ниже будут проигнорированы. Одинаковые типы матчинга могут повторяться, но общее кол-во типов не должно превышать 20 строк.

leads.matching

.type

string
Обязательно нужно указать хотя бы 1 тип матчинга в приоритете.

Тип матчинга. Возможные значения:

  • call — поиск звонка по ID
  • request — поиск заявки по ID
  • callContact — поиск звонка по номеру телефона / дате
  • requestContact — поиск заявки по номеру телефона / почте / дате
  • leadContact — поиск лида по номеру телефона / почте / дате.
Подробное описание полей в объекте matching в этой статье.

leads.addCustomFields object Нет

Добавление пользовательских полей к лиду.

leads.addCustomFields
.customFields
array Нет

Указание какие именно пользовательские поля надо добавить. Пользовательское поле с переданным в API названием должно быть создано в ЛК заранее.

Формат:

customFields: [
     {"field": "test_field", "value": "test value"},
     {"field": "name", "value": 123.4},
     {"field": "birthday", "value": "1990-01-01"}
]

Максимум 20 полей.

leads.addCustomFields
.overwrite
boolean Нет Перезаписывать ли существующее значение пользовательского поля у лида или нет. Возможные значения:
  • true — при наличии у лида значения пользовательского поля — оно перезапишется.
  • false — при наличии у лида значения пользовательского поля — оно не перезапишется.

Ответ

Процесс добавления пользовательских полей запускается сразу же после отправки запроса, после чего сразу же возвращается и ответ.

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

{
    "meta": [],
    "data": {
        "leads": [
            {
                "matchedType": "request",
                "callInfo": null,
                "requestInfo": {
                    "requestId": 1257513,
                    "requestNumber": "1257513"
                },
                "isCustomFieldsAdded": true
                "error": null
            }
        ]
    }
}

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

Параметр Формат

Описание

data.leads.isCustonFieldsAdded boolean Флаг успешного добавления пользовательских полей к лиду. Возможные значения:
  • true
  • false
data.leads.callInfo object Если пользовательское поле добавилось к звонку, то блок callInfo не пустой.
data.leads.callInfo.callId string ID звонка в Calltouch
data.leads.callInfo.callReferenceId string ID звонка из API-метода импорта звонков, может быть null
data.leads.callInfo.sipCallId string ID звонка с АТС
data.leads.requestInfo object Если пользовательское поле добавилось к заявке, то блок requestInfo не пустой
data.leads.requestInfo.requestId string ID заявки в Calltouch
data.leads.requestInfo.requestNumber string ID заявки, переданный из формы сайта
data.leads.error string Отображется причина ошибки добавления пользовательского поля

 

Типовые ошибки

Если в запросе обнаруживаются ошибки валидации, то добавление пользовательского поля не выполняется и выводится ошибка. 

{
    "meta": [],
    "data": {
        "type": "validationError",
        "apiErrorData": null,
        "validationErrorData": {
            "violations": [{
                "fieldPath": "leads[0].addCustomFields.customFields",
                "message": "This value should not be blank."
            }]
        }
    }
}

Если в запросе указаны некорректные авторизационные данные — то выводится ошибка. 
Список типовых ответов при запросах с некорректными авторизационными данными, или некорректными данными в теле API запроса вы можете посмотреть в этой статье.

Система баллов API Calltouch

Система баллов API — механизм, регулирующий нагрузку на сервера Calltouch. Для каждого проекта выдается индивидуальное суточное количество баллов/ За каждый успешно выполненный запрос списываются баллы. Подробнее читайте в статье: Система баллов API Calltouch.

Количество запросов в секунду к API Calltouch ограничено — не более 5 запросов в секунду с одного IP-адреса. Например, если в 1 секунду с одного IP-адреса поступит 11 API-запросов, то 5 выполнятся сразу, а остальные API-запросы завершатся с ошибкой c кодом 429 (Too Many Requests).

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