API колл-центра на автономном сервере СУО Энтер⚓
Доступно в СУО версии 4.5.0.0 и выше
API лицензируется отдельно. Лицензия определяет количество одновременно работающих операторов колл-центра.
Общие сведения⚓
API работает по протоколу HTTP на порту, сконфигурированом для службы автономного сервера СУО (по умолчанию 80).
Запросы к API выполняются через HTTP-методы GET/POST.
Тело ответа имеет формат JSON, кодировку UTF-8.
Доступ к API возможен при соблюдении следующих условий:
- Запрос выполняется с HTTP-заголовком Token, в котором указывается токен вашей системы, выданный вам администратором сервера СУО. Если токен некорректный, сервер вернет ответ с HTTP-статусом 401 Unauthorized.
- Внешней системе, Token которой указывается в заголовке, разрешено работать с данным API в настройках в разделе "Интеграция". Если такого разрешения нет, то сервер вернет ответ с HTTP-статусом 403 Forbidden.
- Оператор, который авторизуется через данное API, имеет право на доступ к колл-центру (встроенная роль "Оператор колл-центра"). Если у пользователя прав нет, то сервер вернет ответ с HTTP-статусом 500 Inetrnal Server Error.
- Количество одновроменно работающих операторов колл-центра не превышает заданное лицензией ограничение. Если лицензионное ограничение нарушено, то сервер вернет ответ с HTTP-статусом 500 Inetrnal Server Error.
Формат ответа об ошибке⚓
Ответ об ошибке приходит с HTTP-статусом 4xx или 5xx. В теле ответа приходит объект ErrorResponse.
- Ответ с HTTP-статусом 4xx означает, что вероятно проблема на стороне интегратора, или клиента.
- Ответ с HTTP-статусом 5xx означает, что проблема произошла не по вине клиента и не по вине интегратора, нужно обратится к владельцам системы с текстом ошибки.
Примечание
Если приходит UserMessage, то его обязательно нужно показать клиенту, если его нет, можно сказать общим планом, что что-то пошло не так.
Если приходит Message, значит интегратору нужно обратить на него внимание, если его нет, то никак не нужно реагировать
"ErrorResponse": {
"UserMessage": "string", //Сообщение для пользователя
"Message": "string" //Сообщение для интеграторов
}
Пример ответа на непринятый запрос⚓
// POST /api/1/callcenter/login HTTP/1.1
// Token: a0adba90-b8a7-4fcd-9f73-787ae2eed727
// Content-Length: 0
// Host: center.suo.club:82
// HTTP/1.1 401 Unauthorized
// Content-Length: 138
// Content-Type: application/json; charset=utf-8
// Server: Microsoft-HTTPAPI/2.0
// Access-Control-Allow-Origin: *
// Date: Fri, 07 Jun 2019 10:01:21 GMT
{
"UserMessage":null,
"Message":"Внешняя система с токеном a0adba90-b8a7-4fcd-9f73-787ae2eed727 не найдена."
}
Общий порядок работы⚓
Работа с этим API позволяет обеспечить атомарность выполнения каких-либо операций с талонами за счёт транзакций, а также позволяет сохранить информацию о том, кто создал или отменил талон/услугу.
В рамках одной пользовательской сессии этого API может существовать только одна активная транзакция. В целом в рамках одной сессии может быть выполнено сколько угодно транзакций.
Примерный алгоритм работы
- Открываем сессию пользователя в начале рабочего дня
- Открываем транзакцию (клиент хочет записаться на приём)
- Создаём талон
- Подтверждаем транзакцию
- Открываем новую транзакцию (клиент хочет перенести запись)
- Создаём копию старого талона
- Отменяем старый талон
- Отменяем транзакцию (клиент в последний момент отказался от переноса записи)
- Завершаем сессию пользователя в конце рабочего дня
Важно
В случае бездействия сессия истекает через 30 минут. При этом если имеется открытая транзакция, то она автоматически закрывается с отменой всех действий с талонами. Например, если начали создание талона и остановились, то через 30 минут резерв будет отменён, и слот предварительной записи освободится.