Добавление клиента в базу данных КЦ

Описание: метод позволяет добавить или создать нового клиента/клиентов в базе КЦ

Method: POST

URL: /api/v1/clients/exec.do

Пример данных запроса:* - вид параметров может отличатся (см. описание ниже)

Описание полей: * - обязательные параметры.
recovery - параметр, который отвечает за возможность восстановления карточки клиента при повторном добавлении клиента в базу данных КЦ. При установленном значении "true" карточка будет восстановлена и поля которые передавались в запросе будут отредактированы
Информация об клиенте/клиентах формируется и передается в общем масиве "clients".

Разшифровка полей для инфо клиента, наведена в таблице

Поле тип значения описание
uuid * string() уникальный uuid для каждого клиента в границах одного запроса на создание клиента. Необходим для получения подтверждения о создании определенного клиента или группы клиентов в запросе.
clientRoleId * integer(25) Роль клиента в системе. В зависимости от конфигурации КЦ, клиент в системе КЦ может иметь любые роли, сконфигурированные пользователем. Как узнать значение clientRoleId
type * string() тип клиента в системе. Может иметь два стандартизированных значения "SIMPLE", "VIP"
timeZone * string(25) часовой пояс клиента. Нужен для обзвона клиентов с учетом изменения времени относительно часового пояса. Список доступных таймзон
fields * array() определяет нужный список полей настроенной карточки клиента, которые следует передавать в систему. Если поле определено как обязательное и как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет ошибка о невозможности добавления клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке "Синхронизация".

Пример заполненого массива:
"fields": {
  "fio": "TEST-API_VP",
  "offerName": "TEST",
  "offerId": 10,
  "externalId": 0
}
Узнать подробно как формировать перечень полей в массиве "fields"
phones * array() содержит список телефонов, закрепленных за клиентом. Телефонов у клиента может быть как один, так и несколько.

Поля масива телефонов: * - обязательные параметры
phoneNumber* string() номер телефона
type* string() тип телефона. Типы телефонов стандартизированы и могут иметь следующие значения: MOB, HOME, WORK, FAX.
active boolean() статус номера телефона (Активный (true), Неактивный (false)). Значение по умолчанию - true
disabled boolean() параметр указывает на нормализацию телефона. Значение по умолчанию - false.
Примеры сформированого массива:
  
"phones": [{ "phoneNumber": "790000000000", "type": "MOB" }]
"phones": [{ "phoneNumber": "790000000000", "type": "MOB" }, { "phoneNumber": "798888888888", "type": "HOME", "active": false } ]
addresses* array() содержит список адресов, закрепленных за клиентом. Если таковых не предвидется, то должен передаватся пустым "addresses":[]

Поля масива адресов: * - обязательные параметры
address* string() значение адреса
type* string() тип адреса. Типы адресов стандартизированы и могут иметь следующие значения: WORK, HOME
active boolean() статус адреса (Активный (true), Неактивный (false)). Значение по умолчанию - true
Примеры сформированого массива:
          
"addresses": [{ "address": "Адрес клиента", "type": "WORK", "active": true }]
"addresses": [{ "address": "Адрес клиента", "type": "WORK", "active": true }, { "address": "Адрес клиента 2", "type": "HOME", "active": true }]
emails* array() содержит список e-mail адресов клиента. Если таковых не предвидется, то должен передаватся пустым "emails":[]

Поля масива адресов: * - обязательные параметры
email* string() значение email адреса
active boolean() статус email адреса (Активный (true), Неактивный (false)). Значение по умолчанию - true
Примеры сформированого массива:
          
"emails": [{ "email": "test@test.com", "active": true }]
"emails": [{ "email": "test@test.com", "active": true }, { "email": "test2@test.com", "active": true }]

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 201, и JSON масивом с данными об результате добавления каждого клиента в запросе:

{
	"createResult": [{
		"uuid": "000000000",
		"result": "Success",
		"createdClientId": 1783162
	}]
}

uuid - уникальный uuid для каждого клиента в границах данного запроса
result - результат создания. Success - успех
createdClientId - значение внутреннего идентификатора созданого клиента

Примеры неуспешного ответа (ошибок):

    {
	"createResult": [{
		"uuid": "1234567890",
		"result": "Success",
		"createdClientId": 21230
	}, {
		"uuid": "1234567891",
		"result": "Client doesn't have all syncronize identifier fields."
	}, {
		"uuid": "1234567892",
		"result": "Field [first_name] is required."
	}]
}

 

 


Изменение данных клиента по идентификаторам

Описание: метод позволяет изменить данные по клиенту КЦ (изменить данные в карточке клиента, например, его имя или фамилию, или другие)

Method: PUT

URL: /api/v1/clients/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
syncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве
fieldsToUpdate* array() определяет список полей настроенной карточки клиента, данные в которых необходимо изменить. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и данными OK

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=dev1, offerId=458}]" }

 

 


Добавление номера телефона в карточку клиента

Описание: метод позволяет добавить новый номер телефона в карточку клиента

Method: POST

URL: /api/v1/clients/phones/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
clientSyncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве
phoneNumber* string() Номер телефона
type* string() Тип телефона. Типы телефонов стандартизированы и могут иметь следующие значения: MOB, HOME, WORK, FAX.

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и данными OK

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=project-051, offerId=142}]" }

 

 


Изменение статуса номера телефона в карточке клиента

Описание: метод позволяет менять статус номера телефона клиента на активный или неактивный.

Method: PUT

URL: /api/v1/clients/phones/statuses/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
clientSyncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве
phoneNumber* string() Номер телефона
active* boolean() Статус телефона. Активный - true; неактивный - false

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и данными OK

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=project-051, offerId=142}]" }

 

 


Добавление электронной почты в карточку клиента

Описание: метод позволяет добавлять новый Email в карточку клиента

Method: POST

URL: /api/v1/clients/emails/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
clientSyncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве
emailAddress* string() Значение e-mail адреса

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и данными OK

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=project-051, offerId=142}]" }

 

 


Изменение статуса электронной почты в карточке клиента

Описание: метод позволяет менять статус email почты на активный или неактивный

Method: PUT

URL: /api/v1/clients/emails/statuses/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
clientSyncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве
emailAddress* string() Значение e-mail адреса
active* boolean() Статус email. Активный - true; неактивный - false

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и данными OK

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=project-051, offerId=142}]" }

 

 


Добавление адреса в карточку клиента

Описание: метод позволяет менять статус email почты на активный или неактивный

Method: POST

URL: /api/v1/clients/addresses/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
clientSyncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве
clientAddress* string() Значение адреса клиента
type* string() тип адреса. Типы адресов стандартизированы и могут иметь следующие значения: WORK, HOME

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и данными OK

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=project-051, offerId=142}]" }

 

 


Изменение статуса адреса в карточке клиента

Описание: метод позволяет менять статус адреса на активный или неактивный

Method: PUT

URL: /api/v1/clients/addresses/statuses/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
clientSyncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве
clientAddress* string() Значение адреса клиента
active* boolean() Статус адреса клиента. Активный - true; неактивный - false

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и данными OK

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=project-051, offerId=142}]" }

 

 


Изменение синхронизированных полей в карточке клиента

Описание: метод позволяет менять значения синхронизированного поля карточки клиента по внутреннему идентификатору.

Method: PUT

URL: /api/v1/clients/{clientId}/syncIdentifiers/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
{clientId}* integer() Внутренний идентификатор клиента. Узнать откуда взять значение {clientId}
clientSyncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации (таких полей может быть одно, или несколько). Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и данными OK

Примеры неуспешного ответа (ошибок):

 

 


Получение данных карточки клиента ClientDTO

Описание: метод позволяет получить данные из карточки клиента по идентификаторам синхронизации

Method: POST

URL: /api/v1/clients/by/syncIds.json

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
clientSyncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и JSON c информацией об клиенте относительно с конфигурацией карточки клиента (пример ответа):


  {
      "clientFieldsToValues": {
          "offerDomain": "project-05",
          "fullUrl": "http://site/client/order/142",
          "fullName": "Проэкт 5",
          "offerId": 142,
          "id": 1510359313,
          "clientType": "SIMPLE",
          "timeZone": "Europe/Kiev",
          "externalIdStr": null,
          "personalOperatorId": 0,
          "legalAddress": null,
          "presentation": "project-05"
      }
  }

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=project-051, offerId=142}]" }

 

 


Удаление клиента из системы по идентификаторам

Описание: метод позволяет удалить клиента из системы КЦ (клиент в КЦ переводится в статус deleted true, в случае необходимости данные по нему можно восстановить)

Method: DELETE

URL: /api/v1/clients/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
syncIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и информацией OK

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=project-051, offerId=142}]" }

 

 


Из клиента создать заявку продзвона в ТМ

Описание: метод позволяет добавлять клиента КЦ, как заявку на прозвон в нужную ТМ кампанию по заданному идентификатору

Method: POST

URL: /api/v1/tacs/campaigns/{campaigId}/exec.do

Данные запроса:

Описание полей: * - обязательные параметры

Поле тип значения описание
{campaigId}* integer() Id кампании телемаркетинга, в которую нужно добавить клиента на прозвон
maxCallCount* integer() максимальное число дозвона к клиенту, число от 1 до нужной величины дозвона
disableDuplicatePhonesValidation boolean() проверка на дубли телефонов. Значение по умолчанию true. Если мы передаем false, то происходит проверка на одинаковые номера телефонов; если true, то нет.
clients* array() масив из идентификаторов клиентов, которых следует добавить в прозвон. Каждый елемент масива определяется масивом clientIdentifiers, куда входят поля идентификаторов клиента.
clientIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация”
Пример добавления одного клиента:
  "clients": [{
     "clientIdentifiers": {
         "offerName": "TEST",
         "offerId": 10
     }
 }]
Пример добавления больше одного клиента:
  "clients": [{
     "clientIdentifiers": {
         "offerName": "TEST",
         "offerId": 10
     }
 },
 {
    "clientIdentifiers": {
        "offerName": "TEST",
        "offerId": 11
    }
}]

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и пустым JSON {}

Примеры неуспешного ответа (ошибок):
{ "errors": [ { "clientIdentifiers": { "offerName": "TEST", "offerId": 11 }, "errorMessage": "Client already exists" } ] }
{ "errors": [ { "clientIdentifiers": { "offerName": "TEST", "offerId": 11 }, "errorMessage": "Client is in blacklist" } ] }
{ "errors": [ { "clientIdentifiers": { "offerName": "TEST", "offerId": 11 }, "errorMessage": "No such client" } ] }

 

 


Получение всех заявок прозвона, созданных на клиента

Описание: метод возвращает список задач продзвона (телемаркетингов) где есть созданные заявки на указанного клиента

Method: GET

URL: /api/v1/tacs/byClientIdentifiers.json?{ClientsIdentifiers}

Описание полей: * - обязательные параметры

Поле тип значения описание
{ClientsIdentifiers}* FormArray() должен содержать список полей как параметры GET, настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация”

Возможные ответы:
При успешном запросе, сервер ответит HTTP статусом 200, и массив с информацией о статусах заявок в JSON формате

  [
    {
        "maxCallCount": 30,
        "calledCount": 9,
        "status": "NONE",
        "lastCall": 1563199899000,
        "nextCall": 1563203559000,
        "nextPhoneNumber": "7999999999",
        "telemarketCampaignId": 2295,
        "hasRecall": false,
        "id": 12289510
    }
]

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "No clients with identifiers: [{offerDomain=project-051, offerId=142}]" }