Перейти к основному содержимому

Отправка исходящих сообщений от бота

Метод /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

ПараметрТип данныхХарактерОписание
MessageobjectОбязательныйИсходящее сообщение.
Message.textstringОбязательный, если не задан formattedTextТекст исходящего сообщения.
Message.formattedTextstringОбязательный, если не задан textТекст исходящего сообщения с поддержкой разметки Markdown. Приоритетнее параметра text.
Message.attachmentsarrayНеобязательныйНастройки вложения. Поля:

- url — URL файла, строка до 4000 символов.

- name — название файла, строка до 1000 символов.

- type — MIME-тип файла, строка до 256 символов.

Message.quickRepliesarrayНеобязательныйНастройки быстрого ответа. Поля:

- type — тип быстрого ответа. Возможные значения: TEXT для текстовых сообщений, CONTACT для получения данных о клиенте.

- text — текст сообщения, строка до 4000 символов.

- shown_text — текстовое содержимое, необязательный параметр, строка до 2000 символов. Используется только в комбинации с параметром text. Если параметр указан, этот текст отправляется как клиентское сообщение после нажатия на кнопку быстрого ответа.

- callback_data — текстовое содержимое, необязательный параметр, строка до 255 символов. Название события, которое будет передаваться, когда вызван JS SDK API для последующей обработки заказчиком на стороне сайта.

- imageUrl — URL иконки кнопки, строка до 4000 символов.

- url — ссылка на прикрепленный файл, строка до 4000 символов.

Длина и количество быстрых ответов устанавливается в базе данных в настройках message.max-quick-replies и message.max-quick-reply-length.

Message.settingsobjectНеобязательныйДополнительные настройки исходящего сообщения.
Message.settings.blockInputbooleanНеобязательныйУказывает на блокировку поля ввода сообщения: true — заблокировано, false — не заблокировано. Работает только для быстрых ответов.
Message.settings.maskedbooleanНеобязательныйУказывает на маскировку цифр в связанном сообщении клиента: true — замаскированы, false — не замаскированы.

Параметры Client

ПараметрТип данныхХарактерОписание
ClientobjectОбязательныйКлиент, который получает сообщение.
Client.idstringОбязательныйСтроковый идентификатор клиента.
Client.channelobjectОбязательныйКанал для отправки сообщения.
Client.channel.appMarkerstringНеобязательныйМаркер канала. Должен быть задан, если проставлен у канала.
Client.channel.channelTypestringОбязательныйТип канала.
Client.channel.authorizedbooleanОбязательныйУказывает на тип канала: true — авторизованный, false — неавторизованный.

Параметры RoutingParams

ПараметрТип данныхХарактерОписание
RoutingParamsobjectНеобязательныйПараметры маршрутизации тредов.
RoutingParams.userIdsarrayОбязательный, но не должны быть заданы skillIds и unitIdsМассив числовых идентификаторов агентов, на которых можно назначит тред.
RoutingParams.skillIdsarrayОбязательный, но не должны быть заданы userIds и unitIdsМассив числовых идентификаторов навыков, на которые можно назначить тред.
RoutingParams.unitIdsarrayОбязательный, но не должны быть заданы skillIds и unitIdsМассив числовых идентификаторов подразделений, на которые можно назначить тред.
RoutingParams.expiredAtdatetimeНеобязательныйВремя истечения срока действия параметров маршрутизации, переданных в объекте RoutingParams. Если дата не задана, параметры маршрутизации будут действовать до тех пор, пока клиент не напишет новое сообщение.
RoutingParams.prioritynumberНеобязательныйПриоритет следующего треда в маршрутизации. Чем меньше приоритет, тем быстрее тред будет распределен. По умолчанию у всех тредов приоритет равен 100. Чем меньше значение, тем раньше тред будет распределен на агента относительно других тредов.

Параметры ответа

СтатусКодКогда возвращается
204 No contentЕсли сообщение отправлено.
400 Bad requestapplication.errors.validation-errorЕсли данные не прошли валидацию.
404 Not foundclient-not-foundЕсли клиент не найден по полю Client.id.
409 Conflictclient-already-has-open-threadЕсли у клиента в момент вызова есть открытый тред.
400 Bad requestrouting-parameters-ambiguousЕсли в запросе указано два или три критерия маршрутизации, так как routingParam можно указывать только по одному критерию: userIds, skillIds или unitIds.
400 Bad requestmessage-has-no-contentЕсли не задан хотя бы один из параметров message-has-no-content.
400 Bad requestclient-blockedЕсли сообщение пытаются отправить заблокированному клиенту.