Добавление пользовательских полей к лидам
Описание
В статье описан 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": "01-01-1990"}
                    ]
             }
        },
  
        // Лид N
  
        ...
    ]
}   
Параметры запроса
| Параметр | Формат | Обязательный | Описание | 
| leads | array | Да | Массив лидов. Можно перечислить до 100 лидов за 1 запрос. Добавление пользовательских полей происходит в режиме онлайн, результат можно получить сразу же. Обязательно. | 
| leads.matching | object | Да | 
			 Здесь задается приоритет использования разных типов матчинга, по которым мы будем пытаться найти лид для добавления пользовательского поля. Чем выше находится строка с типом матчинга, тем больший приоритет она имеет. Если матчинга завершится на каком-либо типе, остальные типы ниже будут проигнорированы. Одинаковые типы матчинга могут повторяться, но общее кол-во типов не должно превышать 20 строк.  | 
	
| 
			 leads.matching .type  | 
		
			 string | 
		
			 Обязательно нужно указать хотя бы 1 тип матчинга в приоритете. | 
		
			 Тип матчинга. Возможные значения: 
 
  | 
	
| leads.addCustomFields | object | Нет | 
			 Добавление пользовательских полей к лиду. 
  | 
	
| 
			 leads.addCustomFields .customFields  | 
		array | Нет | 
			 Указание какие именно пользовательские поля надо добавить. Пользовательское поле с переданным в API названием должно быть создано в ЛК заранее. Формат: 
				 customFields: [ Максимум 20 полей. 
  | 
	
| 
			 leads.addCustomFields .overwrite  | 
		boolean | Нет | 
			 Перезаписывать ли существующее значение пользовательского поля у лида или нет. Возможные значения:
			
  | 
	
Ответ
Процесс добавления пользовательских полей запускается сразу же после отправки запроса, после чего сразу же возвращается и ответ.
Пример ответа
{
    "meta": [],
    "data": {
        "leads": [
            {
                "matchedType": "request",
                "callInfo": null,
                "requestInfo": {
                    "requestId": 1257513,
                    "requestNumber": "1257513"
                },
                "isCustomFieldsAdded": true
                "error": null
            }
        ]
    }
}
Параметры ответа
| Параметр | Формат | 
			 Описание  | 
	
| data.leads.isCustonFieldsAdded | boolean | 
			 Флаг успешного добавления пользовательских полей к лиду. Возможные значения:
			
  | 
	
| 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).
- VK (раздел «Рекламные системы»)