API
Руководство по стандартизованному API для интеграции CRM систем с Корпоративной АТС
Данное руководство описывает основные сценарии работы с API АТС для CRM систем различных вендоров. API предоставляет методы для получения статистической информации, конфигурирования АТС. Вы также можете скачать PDF файл по ссылке
Подключение
Доступ к API организован по протоколу https.
адрес: ats2.t2.ru/crm/openapi
В случае возникновения ошибки проверки подлинности сертификата ats2.t2.ru проверьте, что у вас установлены в доверенные корневой и промежуточный сертификаты. Сертификаты можно скачать по ссылкам:
https://secure.globalsign.net/cacert/Root-R3.crt
https://secure.globalsign.com/cacert/gsrsaovsslca2018.crt
Авторизация
Для авторизации, во всех методах, используется header authorization. В него необходимо передавать Access token, срок его жизни 1 сутки. Получить новый Access token, когда закончилось время жизни старого, можно с помощью метода обновления токена, для этого используется Refresh token. Срок жизни Refresh token составляет 7 суток. Первоначально получить токены можно через веб-интерфейс Корпоративной АТС.
Для того, чтобы получить токены API, необходимо выполнить следующие шаги:
Шаг 1. Зайти в корпоративную АТС под аккаунтом администратора АТС;
Шаг 2. Перейти в настройки профиля, нажав на наименование организации в правом верхнем углу экрана;
Шаг 3. Перейти в блок «Токен API»;
Шаг 4. Сгенерировать токены, нажав на кнопку «Сгенерировать токен»;
Шаг 5. В открывшемся окне будут сгенерированы два токена. Напротив каждого токена есть кнопка копирования.
Access token передается на вход при вызове любого API и действителен в течение суток с момента его получения. Через сутки клиент должен вызвать метод для получения нового Access token, используя ранее полученный Refresh token. Если, спустя сутки, клиент попытается использовать API с недействительным Access token, то получит ошибку 403 вместо данных.
Если клиент более 7 дней подряд не использовал API, то получить новый Access token через ранее выданный ему Refresh token он уже не сможет. Для возобновления доступа клиент должен снова пройти в Личный кабинет и нажать «Сгенерировать токен» для получения новой пары Access token/Refresh token.
Обратите внимание: при повторной генерации предыдущие токены становятся недействительными.
Шаг 6. Полученный Access token вы можете использовать для работы с методами. Пример авторизованного доступа:
curl
-header \'Authorization: {Access token}\'
-X GET
'https://ats2.t2.ru/crm/openapi/monitoring/calls'
Полученный Refresh token вы можете использовать для получения нового Access token после окончания срока его жизни. Пример запроса:
curl
-header 'Authorization: {Refresh token} '
-X PUT
'https://ats2.t2.ru/crm/openapi/authorization/refresh/token'
Методы
Необходимо учесть, что при создании запроса все зарезервированные символы должны быть закодированы согласно спецификации http.
Обновление токена
PUT /authorization/refresh/token
Запрос позволяет обновить пару токенов Access token, Refresh token.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Refresh token | String |
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/authorization/refresh/token'
{
"accessToken": "eyJhbGciOiJIUzUxMiJ9.eyJVc2VyRGV0YWlsc0ltcGwiOnsiY29tcGFueUlkIjozOTEsInVzZXJJZCI6NTk3NiwibG9naW4iOiJwZ190ZXN0In0sImV4cCI6MTY2MzEzMDg5Nywic3ViIjoiQUNDRVNTX09QRU5BUElfVE9LRU4ifQ.BxX0hy9YF_TSDGJ2mZ1S8mjmNH2VNeNKtMjdTTZ4ToReVmhugZxrSceVHfbfzVvKkTzhfpmfsLDcryTmL6_R4g",
"refreshToken": "eyJhbGciOiJIUzUxMiJ9.eyJVc2VyRGV0YWlsc0ltcGwiOnsiY29tcGFueUlkIjozOTEsInVzZXJJZCI6NTk3NiwibG9naW4iOiJwZ190ZXN0In0sImV4cCI6MTY2MzY0OTI5Nywic3ViIjoiUkVGUkVTSF9PUEVOQVBJX1RPS0VOIn0.Q5p15LHbSryyXjPk-kcx6U7AINkXywBz7W0by8I_4czc02eRdxO5slKmrJRwPg__nQGBO60tTo1q0468Ggzr1A"
}
Параметры ответа
Параметр строки запроса | Описание | Тип данных |
---|---|---|
accessToken | токен для доступа, срок действия 1 сутки (применяется во всех методах, описанных далее) | String |
refreshToken | токен для обновления, срок действия 7 суток применяется в текущем методе для получения нового accessToken | String |
Получение информации о текущих звонках
GET /monitoring/calls
Запрос позволяет получить информацию о текущих звонках.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/monitoring/calls'
[
{
"callType": "INTERNAL",
"callerNumberShort": "0001",
"callerNumberFull": "79535548834",
"calledNumberShort": "0002",
"calledNumberFull": "79527745939"
}
]
Метод возвращает:
-
HTTP 200 OK
Параметры ответа
Параметр | Описание | Тип данных |
---|---|---|
callType | тип вызова, может принимать значения: MULTI_CHANNEL - вызов на многоканальный номер; INTERNAL - вызов между номерами АТС; SINGLE_CHANNEL - одноканальный, вызов на конкретный номер абонента; CONFERENCE – конференция | - |
callerNumberShort | короткий номер вызывающего абонента, если существует | String |
callerNumberFull | полный номер вызывающего абонента | String |
calledNumberShort | короткий номер вызываемого абонента, если существует | String |
calledNumberFull | полный номер вызываемого абонента | String |
calledNumberShort и calledNumberFull могут отсутствовать, если вызывающий абонент еще не был направлен на номер Б.
Получение списка абонентов в очереди
GET /monitoring/calls/pending
Запрос позволяет получить список абонентов в очереди.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/monitoring/calls/pending'
Метод возвращает
-
HTTP 200 OK
Параметры ответа
Параметр строки запроса | Описание | Тип данных |
---|---|---|
queueName | название КЦ | String |
calls | список номеров в очереди | String |
Получение списка сотрудников компании
GET /employees
Запрос позволяет получить список сотрудников компании.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/employees'
[
{
"employeeId": 433,
"name": "Артем",
"fullNumber": "79081560008",
"email": "asd@asd.ru"
},
{
"employeeId": 5412
},
{
"employeeId": 5521,
"name": "Asd",
"fullNumber": "74534534454"
}
]
- HTTP 200 OK
В случае успеха метод возвращает список JSON объектов «Сотрудники».
Сlick 2 call (вызов через АТС)
POST /call/outgoing{?destination,source}
Запрос позволяет совершить вызов через АТС.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
destination | required | Номер телефона клиента | String |
source | required | Номер телефона сотрудника | String |
curl -X POST --header 'Content-Type: application/json' --header 'Accept: */*' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/call/outgoing?destination=79533933557&source=79026840778'
Метод возвращает:
Статистика
Получение общей статистики
GET /statistics/common{?end,start}
Запрос позволяет получить статистику звонков в заданный период времени по заданным номерам.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
end | required | Дата окончания периода | Date-time |
start | required | Дата начала периода | Date-time |
Параметры path
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
subscriberNumber | optional | АТС (в формате 7ХХХХХХХХХХ) | String |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/statistics/common?start=2022-07-24T10%3A15%3A30%2B03%3A00&end=2022-07-26T10%3A15%3A30%2B03%3A00'
{
"allCallCount": 22,
"successCallCount": 8,
"outgoingCallCount": 0,
"lostCallCount": 5,
"commonCallDuration": 178,
"averageCallDuration": 10,
"maxCallDuration": 72,
"callCountPerDay": 4.333333333333333,
"callCountPerHour": 0.18055555555555555,
"mnAvgCallDuration": 22,
"mnMaxCallDuration": 72,
"averageCallCountPerHour": 0,
"transferCallCount": 0,
"transferCallDuration": 0,
"averageTransferCallDuration": 0,
"hangupACallCount": 1,
"hangupBCallCount": 2,
"uniqueCallCount": 2,
"redialCount": 6,
"internalCallCount": 9,
"internalCallDuration": 717,
"averageInternalCallDuration": 79
}
Метод возвращает:
Параметры ответа
Параметр | Описание | Тип данных |
---|---|---|
allCallCount | общее количество вызовов | integer |
callCountPerDay | количество вызовов в день | number |
callCountPerHour | количество вызовов в час | number |
mnAvgCallDuration | средняя длительность звонка | integer |
mnMaxCallDuration | максимальная длительность звонка | integer |
outgoingCallCount | количество исходящих вызовов | integer |
successCallCount | количество отвеченных вызовов | integer |
commonCallDuration | общая длительность вызовов, в секундах | integer |
lostCallCount | кол-во неотвеченных вызовов | integer |
averageCallDuration | средняя продолжительность вызова, в секундах | integer |
averageCallCountPerHour | среднее кол-во вызовов в час | integer |
maxCallDuration | кол-во трансферов | integer |
transferCallDuration | общая длительность трансферных вызовов | integer |
averageTransferCallDuration | средняя длительность трансферных вызовов | integer |
hangupACallCount | кол-во отбоев со стороны инициатора вызова | integer |
hangupBCallCount | кол-во отбоев со стороны сотрудника | integer |
uniqueCallCount | общее кол-во уникальных вызовов | integer |
redialCount | общее кол-во повторных вызовов | integer |
internalCallCount | общее кол-во вызовов внутри компании | integer |
internalCallDuration | общая длительность вызовов внутри компании | integer |
averageInternalCallDuration | средняя длительность вызовов внутри компании | integer |
Получение статистики по конкретному номеру
GET /statistics/journal{?end,number,start}
Запрос позволяет получить статистику звонков в заданный период времени по заданному номеру.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
end | required | Дата окончания периода | Date-time |
start | required | Дата начала периода | Date-time |
number | optional | Номер, для которого нужно собрать статистику (в формате 7ХХХХХХХХХХ) | String |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/statistics/journal?end=2023-03-23T10%3A15%3A30%2B03%3A00&number=79535548834&start=2023-03-21T10%3A15%3A30%2B03%3A00'
{
"number": "7XXXXXXXXXX",
"startTimestamp": 1486975130,
"endTimestamp": 1487061531,
"numberOfCalls": 6,
"numberOfSuccessCalls": 3
}
Параметры ответа
Параметр строки запроса | Описание | Тип данных |
---|---|---|
endTimestamp | Конец временного отрезка | integer |
number | Номер | string |
numberOfCalls | Количество вызовов | integer |
numberOfSuccessCalls | Количество успешных вызовов | integer |
startTimestamp | Начало временного отрезка | integer |
Получение статистики по пропущенным звонкам на МКН
GET /statistics/missing{?end,start,mcn_numbers[],page,size,sort}
Запрос позволяет получить статистику по пропущенным звонкам на многоканальные номера в заданном временном интервале.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
end | required | Дата окончания периода в формате ISO OFFSET DATE TIME. Пример: 2023-08-23T13:54:21.699+00:00 | Date-time |
start | required | Дата начала периода в формате ISO OFFSET DATE TIME. Пример: 2023-08-23T13:54:21.699+00:00 | Date-time |
mcn_numbers[] | optional | Массив многоканальных номеров, для которых нужно собрать статистику (в формате 7ХХХХХХХХХХ). При отсутствии данного параметра в запросе будут выданы результаты по всем номерам | Array[String] |
pageable | optional | Параметры постраничного ответа, по умолчанию будут выданы данные со следующими параметрами: page = 0, size = 100, sort = "startDate" | Объект Pageable |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/statistics/missing?start=2023-08-01T13%3A54%3A21.699%2B00%3A00&end=2023-08-23T13%3A54%3A21.699%2B00%3A00&mcn_numbers=79779117670&page=3&size=100&sort=startDate'
[ {
"id": 31495476,
"startDate": "2023-08-28T15:03:19.68+03:00",
"waitDuration": 1,
"callerNumber": "79365113627",
"destinationNumber": "79779117670",
"calleeCompanyId": 559,
"calleeNumber": "79779117670",
"calleeName": " "
}, {
"id": 31458969,
"startDate": "2023-08-28T09:43:18.221+03:00",
"waitDuration": 1,
"callerNumber": "79993388398",
"destinationNumber": "79779117670",
"calleeCompanyId": 559,
"calleeNumber": "79779117670",
"calleeName": " "
}
]
Параметры ответа
Параметр строки запроса | Описание | Тип данных |
---|---|---|
id | id звонка | integer |
startDate | Начало звонка в формате ISO OFFSET DATE TIME. Пример: 2022-08-14T09:00:00+03:00 | date-time |
waitDuration | Время ожидания в секундах | integer |
callerNumber | Номер абонента, который звонил на многоканальный номер | string |
destinationNumber | Многоканальный номер, на который пришел звонок | string |
callerCompanyId | id компании | integer |
calleeNumber | Номер абонента АТС, которому поступил вызов. Если вызов закончился на многоканальном номере, поле будет пустым | string |
calleeName | Имя абонента АТС, которому поступил вызов. Может быть пустым. | string |
Запись разговоров
Получение списка записей разговоров
call-records/info{?start,end,caller,callee,is_recorded,page,size,sort}
Запрос позволяет получить список записей разговоров, удовлетворяющих набору параметров.
Для неотвеченных по любой причине звонков параметр recordFileName возвращает пустое значение.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
callee | optional | Номер абонента, который ответил на звонок, или на котором завершился дозвон | String |
caller | optional | Номер абонента, который звонил | String |
end | required | конец временного интервала в формате ISO OFFSET DATE TIME. Пример: 2022-08-14T09:00:00+03:00 | date-time |
is_recorded | optional | Нужно ли возвращать только те записи, разговор которых был записан. Значение по умолчанию: false. Пример: true | Boolean |
Size | optional | Количество записей на странице. Значение по умолчанию: 10. Пример: 50 | integer |
page | optional | Номер страницы. Значение по умолчанию: 0. Пример: 3 | integer |
sort | optional | Правила сортировки. Значение по умолчанию: date,ASC. Пример: date,DESC. Можно сортировать по любому полю из ответа: date, callType и т.д.. Порядок сортировки указывается после через запятую: ASC - по возрастанию, DESC - по убыванию. | integer |
start | required | начало временного интервала в формате ISO OFFSET DATE TIME. Пример: 2022-08-14T09:00:00+03:00 | date-time |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/call-records/info?callee=89056678798&is_recorded=true&start=2022-07-24T10%3A15%3A30%2B03%3A00&end=2022-07-26T10%3A15%3A30%2B03%3A00'
{
"callTimestamp": 2022-07-15T07:27:06.348Z,
"callType": "SINGLE_CHANNEL",
"destinationNumber": "79104739472",
"callerNumber": "79000258890",
"callerName": "Анастасия Исаева",
"calleeNumber": "79104739472",
"calleeName": "Оля Заплаткина",
"callDuration": 25,
"callStatus": "NOT_ANSWERED_COMMON",
"recordFileName": "2022-08-12/mo_166030706109315379"
},
{
"callTimestamp": 2022-07-15T07:27:06.348Z,
"callType": "SINGLE_CHANNEL",
"destinationNumber": "79104739472",
"callerNumber": "79000258890",
"callerName": "Анастасия Исаева",
"calleeNumber": "79104739472",
"calleeName": "Оля Заплаткина",
"callDuration": 20,
"conversationDuration": 6,
"callStatus": "ANSWERED_BY_ORIGINAL_CLIENT",
"recordFileName": "2022-08-12/mo_166030684915821522"
}
Возможные значения callType:
- SINGLE_CHANNEL,
- MULTI_CHANNEL,
- UNKNOWN_CALL,
- INTERNAL,
- HIMSELF,
- INTERNAL_QUEUE,
- CRM_OUTGOING,
- VOICEMAIL,
- CONFERENCE,
- CALLBACK,
- PICKUP_CALL,
- FAX,
- OUTGOING,
- CRM_CALLBACK
Возможные значения callStatus:
- ANSWERED_COMMON,
- ANSWERED_BY_ORIGINAL_CLIENT,
- ANSWERED_BY_BUSY_FORWARD_CLIENT,
- ANSWERED_BY_NO_ANSWER_FORWARD_CLIENT,
- NOT_ANSWERED_COMMON,
- CANCELLED_BY_CALLER,
- DENIED_DUE_TO_MAX_SESSION,
- DENIED_DUE_TO_INCOMING_CALLS_BLOCKED,
- DENIED_DUE_TO_OUTGOING_CALLS_BLOCKED,
- DENIED_DUE_TO_ONLY_INTERNAL_CALLS_ENABLED,
- DENIED_DUE_TO_BLACK_LISTED,
- DENIED_NOT_IN_WHITE_LIST,
- DENIED_DUE_TO_NOT_WORK_TIME,
- DENIED_DUE_TO_UNKNOWN_NUMBER,
- DESTINATION_BUSY,
- CANCELLED_BY_PICKUP
Метод возвращает:
Получение файла записи разговора
GET /call-records/file{?filename}
Запрос позволяет получить файл записи разговора.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
filename | required | Имя файла записи разговора | String |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/call-records/file?filename=2022-07-15%2F165787002922476116'
Метод возвращает:
Получение транкрибированного текста записей разговоров
GET /call-records/file/stt{?filename}
Запрос позволяет получить текст транскрибации записи разговоров.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
filename | required | Имя файла записи разговора | String |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/call-records/file/stt?filename=2022-08-19%252F166243421852679930'
[ {
"channel": "B",
"startTime": 0.3,
"endTime": 1.07998,
"word": "информируем"
}, {
"channel": "B",
"startTime": 1.08,
"endTime": 1.26,
"word": "что"
}, {
"channel": "B",
"startTime": 1.26,
"endTime": 1.68,
"word": "разговор"
}, {
"channel": "A",
"startTime": 4.77,
"endTime": 5.29985,
"word": "двенадцать"
}, {
"channel": "A",
"startTime": 5.4,
"endTime": 5.64,
"word": "лет"
}
]
Метод возвращает:
{
"details": "Transcribation not found for filename",
"message": "Object not found"
}
Параметры ответа
Параметр строки запроса | Описание | Тип данных |
---|---|---|
channel | Автор фразы: вызывающий или принимающий вызов абонент | String enum: “A”, “B” |
startTime | Время начала фразы | Number |
endTime | Время окончания фразы | Number |
word | Фраза | String |
Автоматическая переадресация звонков на персонального менеджера (выделенного сотрудника)
Получение списка менеджеров
GET /managers
Запрос позволяет получить список менеджеров компании.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https:/ats2.t2.ru/crm/openapi/managers'
[
{
"id": 26,
"employeeId": 440,
"companyId": 391,
"name": "r",
"customers": [
{
"id": 92,
"realNumber": "79081581621",
"companyName": "мммм",
"info": "специалист",
"isVip": false
},
{
"id": 73,
"realNumber": "79518045856",
"companyName": "P&G",
"isVip": false
},
{
"id": 449,
"realNumber": "string",
"companyName": "string",
"info": "string",
"isVip": true
}
],
"handleAllCustomers": false
}
]
Запрос возвращает список JSON объектов «Менеджер».
Метод возвращает:
-
HTTP 200 OK
Получение менеджера по ID
GET / managers/{id}
Запрос позволяет получить данные о менеджере компании по id.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
id | required | ID менеджера | long |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/managers/26'
{
"id": 26,
"employeeId": 440,
"companyId": 391,
"name": "r",
"customers": [
{
"id": 92,
"realNumber": "79081581621",
"companyName": "мммм",
"info": "специалист",
"isVip": false
},
{
"id": 73,
"realNumber": "79518045856",
"companyName": "P&G",
"isVip": false
},
{
"id": 449,
"realNumber": "string",
"companyName": "string",
"info": "string",
"isVip": true
}
],
"handleAllCustomers": false
}
Метод возвращает:
- HTTP 200 OK
Запрос возвращает JSON объект «Менеджер».
-
HTTP 404
Создание менеджера
POST /managers
Запрос позволяет добавить менеджера компании.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
manager | required | Объект класса "Менеджер" | Менеджер |
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: QwErTy' -d '{ \
"companyId": 1, \
"customers": [ \
{ \
"clientId": 1, \
"companyId": 1, \
"companyName": "test", \
"id": 1, \
"info": "test", \
"isVip": true, \
"name": "Ivanov", \
"realNumber": "8809889666" \
} \
], \
"employeeId": 2, \
"handleAllCustomers": true, \
"id": 45, \
"name": "Petrov" \
}' 'https://ats2.t2.ru/crm/openapi/managers'
Метод возвращает результат сохранения:
-
SUCCESS - успешно;
-
MANAGER_HANDLING_ALL_CUSTOMERS_ALREADY_EXISTS - менеджер с флагом handleAllCustomers=true уже есть в системе;
-
*CUSTOMER_ALREADY_ASSIGNED - абонент(ы) уже обрабатываются другим менеджером.
Редактирование менеджера
PUT /managers
Запрос позволяет изменить данные о менеджере.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
manager | required | Объект класса "Менеджер" | Менеджер |
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: QwErTy' -d '{ \
"companyId": 0, \
"customers": [ \
{ \
"clientId": 0, \
"companyId": 0, \
"companyName": "string", \
"id": 0, \
"info": "string", \
"isVip": true, \
"name": "string", \
"realNumber": "string" \
} \
], \
"employeeId": 0, \
"handleAllCustomers": true, \
"id": 0, \
"name": "string" \
}' 'https://ats2.t2.ru/crm/openapi/managers'
Метод возвращает результат сохранения:
-
SUCCESS - успешно;
-
MANAGER_HANDLING_ALL_CUSTOMERS_ALREADY_EXISTS - менеджер с флагом handleAllCustomers=true уже есть в системе;
-
CUSTOMER_ALREADY_ASSIGNED - абонент(ы) уже обрабатываются другим менеджером;
Коды ответа:
-
HTTP 200 OK
-
HTTP 404
{
"details": "Object not found",
"message": "Object not found"
}
Удаление менеджера
DELETE /managers/{id}
Запрос позволяет удалить менеджера по id.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
id | required | ID менеджера для удаления | long |
curl -X DELETE --header 'Accept: */*' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/managers/26'
-
HTTP 200 OK
-
HTTP 404
Черный список
Занесение номера в черный список
POST /blacklist
Запрос позволяет занести номер в черный список.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
msisdn | required | Номер телефона для занесения в черный список в формате 7XXXXXXXXXX | String |
curl -X POST --header 'Content-Type: html/text' --header 'Accept: application/json' --header 'Authorization: QwErTy' -d '79998887766' 'https://ats2.t2.ru/crm/openapi/blacklist'
-
SUCCESS - успешное занесение
-
DUPLICATE_BLACK_LIST_NUMBER - номер уже в списке
Удаление номера из черного списка
DELETE /blacklist/by-msisdn/{msisdn}
Запрос позволяет удалить номер из черного списка.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
Параметры строки запроса
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
msisdn | required | Номер телефона для удаления из черного списка | String |
curl -X DELETE --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/blacklist/by-msisdn/77473370262'
Метод возвращает:
- SUCCESS - успешное удаление
Удаление всех номеров из черного списка
DELETE /blacklist/all
Запрос позволяет удалить все номера из черного списка.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
curl -X DELETE --header 'Accept: application/json' --header 'Authorization: 5645645' 'https://ats2.t2.ru/crm/openapi/blacklist/all'
Метод возвращает:
- SUCCESS - успешное удаление
Получение всего черного списка
GET /blacklist
Запрос позволяет получить все номера из черного списка.
Параметры header
Параметр строки запроса | Обязательность | Описание | Тип данных |
---|---|---|---|
Authorization | required | Access token | String |
curl -X GET --header 'Accept: application/json' --header 'Authorization: QwErTy' 'https://ats2.t2.ru/crm/openapi/blacklist'
[
{
"id": 10622,
"number": "79023581212",
"sourceType": "MANUAL"
},
{
"id": 10700,
"number": "79998889988",
"sourceType": "MANUAL"
}
]
Метод возвращает:
- HTTP 200 OK
Метод возвращает список JSON объектов «Элемент черного списка».
Форматы обьектов
Формат JSON объекта "Менеджер"
{
"id": 26,
"employeeId": 440,
"companyId": 391,
"name": "r",
"customers": [
{
"id": 92,
"realNumber": "79081581621",
"companyName": "мммм",
"info": "специалист",
"isVip": false
},
{
"id": 73,
"realNumber": "79518045856",
"companyName": "P&G",
"isVip": false
},
],
"handleAllCustomers": false
}
Параметр | Описание | Тип данных |
---|---|---|
customers | Массив клиентов | Array[Customer] |
companyId | ID клиента | integer |
employeeId | ID номера, зарегистрированного в АТС (параметр берется из ответа на запрос на получение списка сотрудников компании) | integer |
handleAllCustomers | флаг, указывающий, обрабатывает ли менеджер вызовы от всех абонентов (true | false) |
id | ID менеджера | integer |
name | Имя менеджера | string |
Customer
Параметр | Описание | Тип данных |
---|---|---|
сompanyName | название компании клиента | string |
id | ID клиента | integer |
info | информация о клиенте | string |
isVIP | признак «VIP-клиент» (true | false) |
name | ФИО клиента | string |
realNumber | номер телефона клиента | string |
Данный JSON возвращается в GET запросах, а также используется для POST и PUT запросов. В PUT запросе поле \"id\" обязательно, в POST он должен отсутствовать.
Формат JSON объекта "Элемент черного списка"
Параметр | Описание | Тип данных |
---|---|---|
id | id номера телефона в черном списке | integer |
Number | номер телефона в черном списке | integer |
sourceType | источник добавления, может принимать следующие значения: FILE – если номер был добавлен через интерфейс АТС из файла; MANUAL – если номер был добавлен вручную | string |
Формат JSON объекта «Сотрудники»
{
"employeeId": 433,
"name": "Артем",
"fullNumber": "79081560008",
"email": "asd@asd.ru"
}
Параметр | Описание | Тип данных |
---|---|---|
электронная почта | string | |
employeeId | ID номера, зарегистрированного в АТС | integer |
fullNumber | федеральный номер | string |
groupName | отдел | string |
name | имя | string |
shortNumber | короткий номер | string |
surname | фамилия | string |
Коды ответов
HTTP 403. Ошибка авторизации
{
"details": "Authorization header required",
"message": "Forbidden"
}
{
"details": "The token has already been updated",
"message": "Forbidden"
}
{
"details": "Invalid token type",
"message": "Forbidden"
}