Bundled plugin guides
Plugin de Webhooks
O Plugin Webhooks adiciona rotas HTTP autenticadas que vinculam automações externas a TaskFlows do OpenClaw.
Use-o quando quiser que um sistema confiável, como Zapier, n8n, um job de CI ou um serviço interno, crie e conduza TaskFlows gerenciados sem escrever primeiro um Plugin personalizado.
Onde ele é executado
O Plugin Webhooks é executado dentro do processo Gateway.
Se o seu Gateway for executado em outra máquina, instale e configure o Plugin nesse host do Gateway e, em seguida, reinicie o Gateway.
Configurar rotas
Defina a configuração em 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", }, }, }, }, }, },}Campos da rota:
enabled: opcional, o padrão étruepath: opcional, o padrão é/plugins/webhooks/<routeId>sessionKey: sessão obrigatória proprietária dos TaskFlows vinculadossecret: segredo compartilhado obrigatório ou SecretRefcontrollerId: id de controlador opcional para fluxos gerenciados criadosdescription: observação opcional para o operador
Entradas de secret compatíveis:
- String simples
- SecretRef com
source: "env" | "file" | "exec"
Se uma rota baseada em segredo não conseguir resolver seu segredo na inicialização, o Plugin ignora essa rota e registra um aviso em vez de expor um endpoint quebrado.
Modelo de segurança
Cada rota é confiável para agir com a autoridade de TaskFlow de seu sessionKey configurado.
Isso significa que a rota pode inspecionar e modificar TaskFlows pertencentes a essa sessão, portanto você deve:
- Usar um segredo forte e exclusivo por rota
- Preferir referências de segredo a segredos em texto simples inline
- Vincular rotas à sessão mais restrita que se ajuste ao fluxo de trabalho
- Expor apenas o caminho de Webhook específico de que você precisa
O Plugin aplica:
- Autenticação por segredo compartilhado
- Proteções de tamanho e timeout do corpo da solicitação
- Limitação de taxa por janela fixa
- Limitação de solicitações em andamento
- Acesso a TaskFlow vinculado ao proprietário por meio de
api.runtime.tasks.managedFlows.bindSession(...)
Formato da solicitação
Envie solicitações POST com:
Content-Type: application/jsonAuthorization: Bearer <secret>oux-openclaw-webhook-secret: <secret>
Exemplo:
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"}'Ações compatíveis
Atualmente, o Plugin aceita estes valores JSON de action:
create_flowget_flowlist_flowsfind_latest_flowresolve_flowget_task_summaryset_waitingresume_flowfinish_flowfail_flowrequest_cancelcancel_flowrun_task
create_flow
Cria um TaskFlow gerenciado para a sessão vinculada à rota.
Exemplo:
{ "action": "create_flow", "goal": "Review inbound queue", "status": "queued", "notifyPolicy": "done_only"}run_task
Cria uma tarefa filha gerenciada dentro de um TaskFlow gerenciado existente.
Os runtimes permitidos são:
subagentacp
Exemplo:
{ "action": "run_task", "flowId": "flow_123", "runtime": "acp", "childSessionKey": "agent:main:acp:worker", "task": "Inspect the next message batch"}Formato da resposta
Respostas bem-sucedidas retornam:
{ "ok": true, "routeId": "zapier", "result": {}}Solicitações rejeitadas retornam:
{ "ok": false, "routeId": "zapier", "code": "not_found", "error": "TaskFlow not found.", "result": {}}O Plugin remove intencionalmente metadados de proprietário/sessão das respostas de Webhook.