enВойти в Senler

Чтение шагов автоматизации

Для вопроса об одном сообщении или условии не обязательно читать всю автоматизацию. Сначала найдите шаг, затем запросите его полные настройки. Это уменьшает объём данных в контексте агента, сохраняя возможность прочитать связанные шаги по необходимости.

Оба метода ниже только читают данные. Они не меняют черновик, не запускают процессы и не публикуют автоматизацию. Нужно право can_view_automations в её проекте и серверный API-ключ или OAuth-токен. AUTOMATION_ID в примерах — ID автоматизации, NODE_ID — UUID шага.

Найдите подходящие шаги

GET /api/automations/{automationId}/nodes/search возвращает компактный список: node_id, name и type, без полных настроек шагов.

curl --fail-with-body --get \
  "https://api.senler.io/api/automations/$AUTOMATION_ID/nodes/search" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --data-urlencode "view=draft" \
  --data-urlencode "search=Спасибо за подписку" \
  --data-urlencode "limit=20"
  • view: draft для сохранённого черновика или published для опубликованной версии. По умолчанию draft.
  • search: часть названия шага или текста сообщения, до 200 символов. Регистр не важен; пробелы и переносы строк считаются разделителями слов. Это поиск текста, не регулярное выражение.
  • types: типы шагов для отдельного фильтра. Допустимые значения можно получить методом getNodeTypes.
  • node_ids: необязательный список из 1–20 UUID через запятую или массивом. Ограничивает поиск конкретными шагами, например ID из отчёта диагностики.
  • limit: размер страницы, по умолчанию 20, максимум 100.
  • cursor: next_cursor из предыдущего ответа для следующей страницы.
  • expected_revision: необязательная проверка ревизии из предыдущего ответа. Если схема изменилась, сервер вернёт 409 вместо данных другой версии.

Ответ также содержит view, revision, version_id и next_cursor. Сохраните revision для следующего запроса. Если next_cursor равен null, следующей страницы нет. Без search можно получить список всех шагов или отфильтровать его только по types.

Если автоматизация ещё не опубликована, используйте view=draft: запрос published вернёт 404, а не черновик вместо рабочей версии.

Когда ID уже известен, передайте node_ids=NODE_ID, а не UUID в search: текстовый поиск работает по названию и сообщению. node_ids, search и types применяются одновременно. Чтобы проверить наличие шага, не добавляйте текстовый фильтр и фильтр типа: они могут исключить существующий шаг из ответа. Поиск возвращает найденный шаг даже с ошибками в его настройках; это не подтверждение готовности к публикации.

Прочитайте настройки и связи

GET /api/automations/{automationId}/nodes принимает от 1 до 20 UUID в node_ids. Передайте expected_revision из поиска и тот же view:

curl --fail-with-body --get \
  "https://api.senler.io/api/automations/$AUTOMATION_ID/nodes" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --data-urlencode "view=draft" \
  --data-urlencode "node_ids=$NODE_ID" \
  --data-urlencode "expected_revision=$REVISION" \
  --data-urlencode "include_edges=true" \
  --data-urlencode "edges_limit=50"

Несколько ID можно передать через запятую. В nodes приходят полные настройки найденных шагов в порядке запрошенных ID; отсутствующие ID перечислены в missing_node_ids.

Без include_edges=true связи не включаются. С ним ответ содержит страницу входящих и исходящих связей выбранных шагов. edges_limit по умолчанию равен 50, максимум — 200. Для продолжения передайте edges_next_cursor как edges_cursor, сохранив тот же набор node_ids, view и expected_revision.

Сами соседние шаги автоматически не загружаются: при необходимости запросите их по ID из связей. Для полного обзора схемы используйте getGraph.

Сохраняйте одну версию данных

expected_revision помогает не соединить результаты поиска со свежими, уже изменёнными настройками. В draft это ревизия черновика, в published — номер опубликованной версии.

Курсоры также связаны с версией данных и параметрами запроса. При ответе 409 о смене контекста повторите поиск с первой страницы без старого курсора и используйте новую revision. Это не означает, что подходящих шагов нет.

Вызовите методы через MCP

В Senler.io User MCP найдите и получите описание методов searchAutomationNodes и getAutomationNodes, затем вызывайте их через execute по возвращённой схеме параметров.

Например, на просьбу «Найди приветствие в этой автоматизации» агент сначала запрашивает компактные результаты, затем читает полные настройки выбранного шага. Если вопрос касается продолжения после сообщения, он дополнительно читает связи и нужные соседние шаги. Для поиска вручную в кабинете используйте «Поиск шагов».