enВойти в Senler

Отправка события агенту

Передайте событие конкретному агенту в выбранном диалоге.

Сначала создайте событие с включённой реакцией агента.

Как подключить событие агенту

После установки приложения пользователь открывает раздел «Плагины» в настройках агента, выбирает приложение и добавляет нужное событие. Подписка относится только к этому агенту: остальные агенты проекта не начнут реагировать автоматически.

Приложение передаёт событие вместе с конкретными 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.