Plugins
Plugin Webhooks
Plugin Webhooks додає автентифіковані HTTP-маршрути, які прив’язують зовнішню автоматизацію до OpenClaw TaskFlows.
Використовуйте його, коли потрібно, щоб довірена система, як-от Zapier, n8n, CI-завдання або внутрішній сервіс, створювала й керувала керованими TaskFlows без попереднього написання власного plugin.
Де він виконується
Plugin Webhooks виконується всередині процесу Gateway.
Якщо ваш Gateway працює на іншому комп’ютері, встановіть і налаштуйте plugin на цьому хості Gateway, а потім перезапустіть Gateway.
Налаштування маршрутів
Задайте конфігурацію в plugins.entries.webhooks.config:
{
plugins: {
entries: {
webhooks: {
enabled: true,
config: {
routes: {
zapier: {
path: "/plugins/webhooks/zapier",
sessionKey: "agent:main:main",
secret: {
source: "env",
provider: "default",
id: "OPENCLAW_WEBHOOK_SECRET",
},
controllerId: "webhooks/zapier",
description: "Zapier TaskFlow bridge",
},
},
},
},
},
},
}
Поля маршруту:
enabled: необов’язкове, стандартне значення —truepath: необов’язкове, стандартне значення —/plugins/webhooks/<routeId>sessionKey: обов’язкова сесія, якій належать прив’язані TaskFlowssecret: обов’язковий спільний секрет або SecretRefcontrollerId: необов’язковий ідентифікатор контролера для створених керованих потоківdescription: необов’язкова примітка оператора
Підтримувані вхідні значення secret:
- Звичайний рядок
- SecretRef із
source: "env" | "file" | "exec"
Якщо маршрут із секретом не може визначити свій секрет під час запуску, plugin пропускає цей маршрут і записує попередження в журнал, замість того щоб відкривати несправну кінцеву точку.
Модель безпеки
Кожен маршрут є довіреним і діє з повноваженнями TaskFlow, визначеними його налаштованим
sessionKey.
Це означає, що маршрут може переглядати й змінювати TaskFlows, які належать цій сесії, тому вам слід:
- Використовувати надійний унікальний секрет для кожного маршруту
- Надавати перевагу посиланням на секрети замість вбудованих відкритих секретів
- Прив’язувати маршрути до найвужчої сесії, яка підходить для робочого процесу
- Відкривати лише конкретний шлях Webhook, який вам потрібен
Plugin застосовує:
- Автентифікацію за спільним секретом
- Обмеження розміру тіла запиту й часу очікування
- Обмеження частоти у фіксованому вікні
- Обмеження паралельних запитів у виконанні
- Доступ до TaskFlow, прив’язаний до власника, через
api.runtime.tasks.managedFlows.bindSession(...)
Формат запиту
Надсилайте запити POST із:
Content-Type: application/jsonAuthorization: Bearer <secret>абоx-openclaw-webhook-secret: <secret>
Приклад:
curl -X POST https://gateway.example.com/plugins/webhooks/zapier \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_SHARED_SECRET' \
-d '{"action":"create_flow","goal":"Review inbound queue"}'
Підтримувані дії
Plugin наразі приймає такі JSON-значення action:
create_flowget_flowlist_flowsfind_latest_flowresolve_flowget_task_summaryset_waitingresume_flowfinish_flowfail_flowrequest_cancelcancel_flowrun_task
create_flow
Створює керований TaskFlow для прив’язаної до маршруту сесії.
Приклад:
{
"action": "create_flow",
"goal": "Review inbound queue",
"status": "queued",
"notifyPolicy": "done_only"
}
run_task
Створює кероване дочірнє завдання всередині наявного керованого TaskFlow.
Дозволені середовища виконання:
subagentacp
Приклад:
{
"action": "run_task",
"flowId": "flow_123",
"runtime": "acp",
"childSessionKey": "agent:main:acp:worker",
"task": "Inspect the next message batch"
}
Форма відповіді
Успішні відповіді повертають:
{
"ok": true,
"routeId": "zapier",
"result": {}
}
Відхилені запити повертають:
{
"ok": false,
"routeId": "zapier",
"code": "not_found",
"error": "TaskFlow not found.",
"result": {}
}
Plugin навмисно вилучає метадані власника/сесії з відповідей Webhook.