Отправка исходящих сообщений от бота
Метод /api/v1/chatbot/outgoing предназначен для отправки ботом исходящих сообщений клиенту и для передачи параметров маршрутизации тредов.
Пример запроса
{
"message": {
"text": "Привет! Это бот"
},
"client": {
"id": "3201234",
"channel": {
"channelType": "TELEGRAM",
"appMarker": "telegram",
"authorized": true
}
},
"routingParams": {
"userIds": [1],
"expiredAt": "2025-05-05T21:00:00Z"
}
}
Параметры запроса
Параметры Message
| Параметр | Тип данных | Характер | Описание |
|---|---|---|---|
Message | object | Обязательный | Исходящее сообщение. |
Message.text | string | Обязательный, если не задан formattedText | Текст исходящего сообщения. |
Message.formattedText | string | Обязательный, если не задан text | Текст исходящего сообщения с поддержкой разметки Markdown. Приоритетнее параметра text. |
Message.attachments | array | Необязательный | Настройки вложения. Поля: - - - |
Message.quickReplies | array | Необязательный | Настройки быстрого ответа. Поля: - - - - - - Длина и количество быстрых ответов устанавливается в базе данных в настройках |
Message.settings | object | Необязательный | Дополнительные настройки исходящего сообщения. |
Message.settings.blockInput | boolean | Необязательный | Указывает на блокировку поля ввода сообщения: true — заблокировано, false — не заблокировано. Работает только для быстрых ответов. |
Message.settings.masked | boolean | Необязательный | Указывает на маскировку цифр в связанном сообщении клиента: true — замаскированы, false — не замаскированы. |
Параметры Client
| Параметр | Тип данных | Характер | Описание |
|---|---|---|---|
Client | object | Обязательный | Клиент, который получает сообщение. |
Client.id | string | Обязательный | Строковый идентификатор клиента. |
Client.channel | object | Обязательный | Канал для отправки сообщения. |
Client.channel.appMarker | string | Необязательный | Маркер канала. Должен быть задан, если проставлен у канала. |
Client.channel.channelType | string | Обязательный | Тип канала. |
Client.channel.authorized | boolean | Обязательный | Указывает на тип канала: true — авторизованный, false — неавторизованный. |
Параметры RoutingParams
| Параметр | Тип данных | Характер | Описание |
|---|---|---|---|
RoutingParams | object | Необязательный | Параметры маршрутизации тредов. |
RoutingParams.userIds | array | Обязательный, но не должны быть заданы skillIds и unitIds | Массив числовых идентификаторов агентов, на которых можно назначит тред. |
RoutingParams.skillIds | array | Обязательный, но не должны быть заданы userIds и unitIds | Массив числовых идентификаторов навыков, на которые можно назначить тред. |
RoutingParams.unitIds | array | Обязательный, но не должны быть заданы skillIds и unitIds | Массив числовых идентификаторов подразделений, на которые можно назначить тред. |
RoutingParams.expiredAt | datetime | Необязательный | Время истечения срока действия параметров маршрутизации, переданных в объекте RoutingParams. Если дата не задана, параметры маршрутизации будут действовать до тех пор, пока клиент не напишет новое сообщение. |
RoutingParams.priority | number | Необязательный | Приоритет следующего треда в маршрутизации. Чем меньше приоритет, тем быстрее тред будет распределен. По умолчанию у всех тредов приор итет равен 100. Чем меньше значение, тем раньше тред будет распределен на агента относительно других тредов. |
Параметры ответа
| Статус | Код | Когда возвращается |
|---|---|---|
204 No content | — | Если сообщение отправлено. |
400 Bad request | application.errors.validation-error | Если данные не прошли валидацию. |
404 Not found | client-not-found | Если клиент не найден по полю Client.id. |
409 Conflict | client-already-has-open-thread | Если у клиента в момент вызова есть открытый тред. |
400 Bad request | routing-parameters-ambiguous | Если в запросе указано два или три критерия маршрутизации, так как routingParam можно указывать только по одному критерию: userIds, skillIds или unitIds. |
400 Bad request | message-has-no-content | Если не задан хотя бы один из параметров message-has-no-content. |
400 Bad request | client-blocked | Если сообщение пытаются отправить заблокированному клиенту. |