Создание новой ТМ кампании

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

Method: POST

URL: /api/v1/telemarketing/campaigns/progress.do

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

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

Поле тип значения описание
name* string() название ТМ кампании
typeProcessing* string() Тип обработки. Может иметь значения: OPERATOR, SMS, IVR.
В зависимости от выбраного типа обработки следует формировать значения других полей, которые связаны с типом обработки:
OPERATOR
callingMode* string() режим обзвона. Может иметь значения: PROGRESSIVE_NEW, PREDICTIVE_NEW, PREVIOUS_PREVIEW_NEW
SMS
smsProviderId* integer() уникальный идентификатор SMS провайдера Как узнать значения smsProviderId
IVR
ivrScenarioId* integer() уникальный идентификатор IVR сценария Как узнать значения ivrScenarioId
callingSearchSpaceId* integer() id направления для звонков Как узнать значения этого параметра
callStatusRuleProcessorId* integer() Id процессора обработки по неуспешным попыткам Как узнать значения этого параметра
automaticStart boolean() Значение true указывает на автоматический запуск ТМ кампании. Значение по умолчанию - false.
При включении этого значения, следует заполнять следующии поля: * - обязательные
startDate* string() дата начала. Пример формата: 2015-08-08
endDate string() дата окончания. Пример формата: 2015-08-08
startTime string() начало работы в будни. Пример формата: 12:30
endTime string() конец работы в будни. Пример формата: 12:30
weekendsStartTime string() начало работы на выходных. Пример формата: 12:30
weekendsEndTime string() окончание работы на выходных. Пример формата: 12:30
weekDays string() дни проведения кампании (Mon, Tue, Wed, Thu, Fri, Sat, Sun)
vindicationProcessingType string() тип виндикации. Вожможные значения: NONE, PRE_VINDICATION, VINDICATION. По умолчанию - NONE
notResponceTime integer() время дозвона до клиента (сек.). По умолчанию - 30 сек
lossPercentage integer() потери (%). По умолчанию - 3%
workingTime integer() время working (сек.). По умолчанию - 10 сек
callToOperatorTime integer() время дозвона до оператора (сек.). По умолчанию - 30 сек
description string() описание кампании
lifoApplicationsProcessing boolean() последняя добавленая заявка будет обрабатываться первой (Last in, first out). Значение по умолчанию - false
multiplePhones boolean() набор номеров (при типе обработки IVR и SMS) одновременно или последовательно. Значение по умолчанию - false
queueScenarioId integer() уникальный идентификатор сценария. Как узнать значенние этого параметра
previewTimeout integer() время на предварительный просмотр (сек., доступно только в режиме обзвона «Предварительный просмотр»)
allowAutoAnswer boolean() разрешить автоответ (доступно в режиме обзвона «Предиктив» та «Прогрессивный»)
dynamicRouting boolean() разрешить динамическую маршрутизацию звонков
dialOnlyActivePhoneNumbers boolean() разрешить обзвон только активных номеров. Значение по умолчанию - false
clientsBlockedPhoneNumbersSupport boolean() разрешить поиск нормализированных номеров. Значение по умолчанию - false
endless boolean() бесконечная обработка заявок в телемаркетинге (после обработки всех заявок не переходит из статуса In process в другие статусы, а ждет на новые заявки)
limitTimeCalls boolean() разрешить обзвон по таймзонам (доступен только при бесконечном режиме).
При этой настройке следует задать такие дополнительные параметры: * - обязательные
startCallsTime* string() начало обзвона по таймзоне клиента. Пример формата: 09:00
endCallsTime* string() окончание обзвона по таймзоне клиента. Пример формата: 09:00
disableLimitForFirstCall boolean() отключение ограничения для первой попытки. По умолчанию - false
dayNightModeEnabled boolean() Режим день-ночь. По умолчанию - false

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

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

 

 


Удаление ТМ кампании

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

Method: DELETE

URL: /api/v1/telemarketing/campaigns/{campaignId}/remove.do

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

Поле тип значения описание
{campaignId}* integer() id телемаркетинг камании, которую следует удалить.

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

Примеры неуспешного ответа (ошибок):
{"errorMessage":"TelemarketCampaign 11 not found"}

 

 


Запуск кампании телемаркетинга

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

Method: POST

URL: /api/v1/telemarketing/campaigns/{campaignId}/progress.do

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

Поле тип значения описание
{campaignId}* integer() id телемаркетинг камании, которую следует запустить.

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

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

 

 


Остановка кампании телемаркетинга

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

Method: DELETE

URL: /api/v1/telemarketing/campaigns/{campaignId}/progress.do

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

Поле тип значения описание
{campaignId}* integer() id телемаркетинг камании, которую следует остановить.

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

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

 

 


Перезапуск кампании телемаркетинга

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

Method: PUT

URL: /api/v1/telemarketing/campaigns/{campaignId}/progress.do

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

Поле тип значения описание
{campaignId}* integer() id телемаркетинг камании, которую следует перезапустить.

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

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

 

 


Возврат значения taskId по id телемаркетинга

Описание: метод позволяет узнать параметр taskId, по id телемаркетинга (используется, например при добавлении телемаркетинга в группу).

Method: GET

URL: /api/v1/telemarketing/campaigns/{campaignId}/taskId.json

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

Поле тип значения описание
{campaignId}* integer() id телемаркетинг камании, по которой нужно узнать значения taskId.

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

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "TelemarketCampaign 261 not found" }

 

 


Добавление задачи (task) к группе

Описание: метод позволяет добавить задачу (task) в заданную группу

Method: POST

URL: /api/v1/groups/{groupId}/tasks/{taskId}/exec.do

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

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

Поле тип значения описание
{groupId}* integer() id группы, в которую нужно добавить задачу. Как узнать значения {groupId}
{taskId}* integer() id задачи, которую нужно добавить группу. Как узнать значения {taskId}
taskPriority* integer() присваивается определенной задаче в зависимости от важности ее обработки. Чем больше выставлен приоритет задаче, тем быстрее, первоочередно она будет обрабатываться
userSelectionMode* string() критерий выбора оператора (возможные значения: BY_ROUND, BY_PRIORITY, LONGEST_AVAILABLE)
previewTimeout* integer() время на обработку менее приоритетной задачи в случае если на группу поступает задача с большим приоритетом. В случае если оператор не обработает задачу с меньшим приоритетом за указанное время, то она будет автоматически закрыта и оператору откроется новая

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

Примеры неуспешного ответа (ошибок):
{ "errorMessage": "TelemarketCampaign 261 not found" }

 

 


Получение данных по телемаркетингах

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

Method: GET

URL: /api/v1/telemarketing/campaigns.do?limit={limitN}&offset={offsetN}

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

Поле тип значения описание
{limitN}* integer() число выгружаемых данных. Макс = 100
{offsetN} integer() значение смещения

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


  [
      {
          "id": 2670,
          "ccProjectId": 1038,
          "automaticStart": true,
          "ivrScenarioId": null,
          "smsMessage": null,
          "smsProviderId": null,
          "typeProcessing": "OPERATOR",
          "startTime": "08:30",
          "endTime": "22:00",
          "weekendsStartTime": "08:30",
          "weekendsEndTime": "22:00",
          "startDate": "2019-03-22",
          "endDate": null,
          "callToOperatorTime": 40,
          "callingMode": "PREDICTIVE_NEW",
          "lossPercentage": 3,
          "name": "Чехол",
          "notResponceTime": 30,
          "vindicationProcessingType": "NONE",
          "workingTime": 600,
          "callStatusRuleProcessorId": 62,
          "callingSearchSpaceId": 200,
          "previewTimeout": 30,
          "allowAutoAnswer": false,
          "description": null,
          "multiplePhones": false,
          "dynamicRouting": false,
          "dialOnlyActivePhoneNumbers": false,
          "clientsBlockedPhoneNumbersSupport": false,
          "weekDays": [
              "Tue",
              "Sun",
              "Fri",
              "Wed",
              "Sat",
              "Mon",
              "Thu"
          ],
          "endless": true,
          "lifoApplicationsProcessing": true,
          "limitTimeCalls": false,
          "startCallsTime": null,
          "endCallsTime": null,
          "disableLimitForFirstCall": false,
          "dayNightModeEnabled": false,
          "queueScenarioId": null
      },
      {
          "id": 2666,
          "ccProjectId": 1082,
          "automaticStart": true,
          "ivrScenarioId": null,
          "smsMessage": null,
          "smsProviderId": null,
          "typeProcessing": "OPERATOR",
          "startTime": "08:30",
          "endTime": "21:30",
          "weekendsStartTime": "08:30",
          "weekendsEndTime": "21:30",
          "startDate": "2019-03-21",
          "endDate": null,
          "callToOperatorTime": 40,
          "callingMode": "PROGRESSIVE_NEW",
          "lossPercentage": 3,
          "name": "Жидкая кожа",
          "notResponceTime": 50,
          "vindicationProcessingType": "NONE",
          "workingTime": 200,
          "callStatusRuleProcessorId": 62,
          "callingSearchSpaceId": 200,
          "previewTimeout": 30,
          "allowAutoAnswer": false,
          "description": null,
          "multiplePhones": false,
          "dynamicRouting": false,
          "dialOnlyActivePhoneNumbers": false,
          "clientsBlockedPhoneNumbersSupport": false,
          "weekDays": [
              "Tue",
              "Sun",
              "Fri",
              "Wed",
              "Sat",
              "Mon",
              "Thu"
          ],
          "endless": true,
          "lifoApplicationsProcessing": true,
          "limitTimeCalls": false,
          "startCallsTime": null,
          "endCallsTime": null,
          "disableLimitForFirstCall": false,
          "dayNightModeEnabled": false,
          "queueScenarioId": null
      }
  ]

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

 

 


Создание ТМ callback

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

Method: POST

URL: /api/v1/callbacks/exec.do?type=tm

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

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

Поле тип значения описание
name* string() Название перезвона
description* string() описание ТМ перезвона
clientIdentifiers* array() должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве
phone* string() номер телефона клиента, на которого будет создан callback
campaignId* integer() это идентификатор ТМ компании в которой нужно создать перезвон
operatorId* integer() идентификатор оператора на которого будет создан колбек
callAt* string() время когда должен сработать перезвон (задается в формате 2019-05-28T20: 20: 00 + 03: 00)
callAutomatically* boolean() параметр, который отвечает, запустится ли перезвон автоматически (при указанном “true”), если выбрано “false” тогда оператору поступит напоминание в указанное время.

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

   
{
  "name": "ТМ callback",
  "description": "Created via api",
  "clientIdentifiers": {
      "offerDomain": "project-07",
      "offerId": 694
  },
  "phone": "0734948442",
  "campaignId": 2671,
  "operatorId": 1309,
  "callAt": "2019-07-28T20:20:00+03:00",
  "callAutomatically": false
}

Примеры неуспешного ответа (ошибок):
{"errorMessage":"callAt must be in future"}
{"errorMessage":"Client not found in campaign"}
{"errorMessage":"Campaign not found"}

 

 


Создание заявки на продзвон из клиента

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

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: PUT

URL: /api/v1/tacs/campaigns/{campaignId}/applications/by/syncId/remove.do

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

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

Поле тип значения описание
{campaignId}* integer() id телемаркетинг камании
clientIdentifiers* array() Массив идентификаторов клиентов, который должен содержать список полей настроенной карточки клиента, как идентификатор синхронизации, по которых произойдет идентификация клиента в системе (таких полей может быть одно, или несколько). Если поле определено как идентификатор синхронизации, то оно должно присутствовать в списке и не может быть пустым, иначе возникнет соответствующая ошибка о невозможности идентификации клиентов. Название поля определяется названием, сконфигурированным в карточке клиента в колонке “Синхронизация” Узнать подробно как формировать поля в этом массиве
cancelCallbacks* boolean() Значение true определяет что, если на заявку был создан callback, тогда ручной callback будет удален вместе с заявкой, а автоматический перейдет в статус "CANCEL". Значение false - оставить колбеки.

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

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

 

 


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

Описание: метод позволяет удалить заявку/клиента из продзвона заданной ТМ камапании по фильтру статусов заявки, дозвонов и т.д. Данным методом заявки можно удалить, используя такие фильтры как статус заявки статус закрытия формы оператором, номер клиента, статус звонка клиента, значение карточки клиента по названию поля "Синхронизация" (типы полей: Number, TextField, ComboBox, Statusfield).

Method: PUT

URL: /api/v1/tacs/campaigns/{campaignId}/applications/by/filter/remove.do

Пример данных запроса:

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

Поле тип значения описание
{campaignId}* integer() id телемаркетинг камании
criteria* array() Массив критериев фильтрования. в данном массиве задаются параметры: key, value, operator
key* string() ключ, по которому произойдет фильтрование. Возможные значения:
"application.status" - фильтр по статус заявки.
"application.ccprojectCallStatus" - фильтр по статус закрытия формы оператором
"phones.phoneNumber" - фильтр по номеру клиента
"ts.clientCallStatus" - фильтр по статус звонка клиента
"client_sync_name" - фильтр по идентификаторах клиента.
value* string() это значение может принимать разные данные, в зависимости от ключа key:

если key: "application.status": NONE, STARTED, FAILED, SUCCESS, EXPIRED, BLOCKED, CANCEL, ERROR, INVALID

если key: "application.ccprojectCallStatus": ANSWERED, NO_ANSWER, BUSY, INVALID_NUMBER, QUEUE_HANGUP, INCORRECT_NUMBER, LINE_UNAVAILABLE, NOT_FOUND_SUITABLE_PHONE, SCHEDULE_NOT_ALLOWED, NO_ROUTING, REJECT, CHANUNAVAIL

если key: "phones.phoneNumber": номер телефона в формате string

если key: "ts.clientCallStatus": ANSWERED, BUSY, INCORRECT_NUMBER, INVALID_NUMBER, LINE_UNAVAILABLE, NOT_FOUND_SUITABLE_PHONE, NO_ANSWER, NO_ROUTING, QUEUE_HANGUP

если key: "application.hasRecall": true, false

если key: "client_sync_name", то "value" может принимать значения в зависимости от заданного поля (типы полей: Number, TextField, ComboBox, StatusField). если key равно одному из значений полей карточки клиента: к примеру, если key: "id", то “value”: 12345, если key: "first_name", то “value”: “Петр” (значения integer без '' '', значения string з '' '').
operator* string() Оператор стравнения: доступные операторы "LIKE", "NOT LIKE", "="

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

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