Отправка события агенту
Передайте событие конкретному агенту в выбранном диалоге.
Сначала создайте событие с включённой реакцией агента.
Как подключить событие агенту
После установки приложения пользователь открывает раздел «Плагины» в настройках агента, выбирает приложение и добавляет нужное событие. Подписка относится только к этому агенту: остальные агенты проекта не начнут реагировать автоматически.
Приложение передаёт событие вместе с конкретными dialog_id и agent_id в объекте target. Senler AI запускает агента, только если он назначен на этот диалог и подписан на событие.
Как отправить событие конкретному агенту
Используйте POST https://api.senler.io/api/app-agent-events с проектным OAuth-токеном приложения и правом can_manage_agent_events. Проектный API-ключ или OAuth-доступ от имени пользователя для этого метода не подходят: запрос должен относиться к установке отправляющего приложения.
Например, для события payment.paid со строковым полем order_id передайте такое JSON-тело, заменив идентификаторы диалога и агента своими:
{
"external_event_id": "payment:42",
"type": "payment.paid",
"target": {
"dialog_id": "0123456789abcdef01234567",
"agent_id": "019d0000-0000-7000-8000-000000000001"
},
"data": { "order_id": "order-42" }
}
Передайте токен в заголовке Authorization: Bearer <access_token>, а формат тела — Content-Type: application/json. Диалог и агент должны принадлежать проекту установки. Метод не ищет переписку и не назначает в неё агента: это нужно сделать до отправки.
data должно соответствовать объявленным полям; если их нет, передайте {}. Необязательное occurred_at содержит время события в ISO 8601. Для этого метода external_event_id ограничен 128 символами: первый — латинская буква или цифра, далее допустимы также ., _, : и -. Используйте уникальный ID в пределах установки приложения.
В ответе проверяйте status, а не только accepted: true:
scheduled— запуск агента запланирован; это ещё не готовый ответ.senler_event_idсодержит ID события Senler;ignored— агент не подписан на событие, запуск не выполнен,senler_event_idравенnull;duplicate: true— сервер уже видел этот ID. Повтор завершённой доставки возвращает прежний результат без второго запуска.
Для повторной отправки сохраняйте тот же external_event_id и неизменные type, target, data и occurred_at. Другие данные с тем же ID возвращают 409 Conflict. Результат ignored тоже сохраняется: подписка, включённая позднее, не превращает повтор прежнего запроса в новый запуск. Сначала подключите событие агенту, затем отправляйте его.
Этот метод адресно запускает агента, а не автоматизацию. Для запуска автоматизации используйте отдельный метод с routing.