Skip to main content
Webhooks Plugin は認証済み HTTP ルートを追加し、信頼された外部 システム(Zapier、n8n、CI ジョブ、内部サービス)が、カスタム Plugin を作成せずに HTTP 経由で管理対象の OpenClaw TaskFlow を作成および操作できるようにします。 Plugin は Gateway プロセス内で実行されます。リモート Gateway の場合は、そのホストに インストールして設定し、Gateway を再起動します。初期状態ではルートが 設定されていないため、少なくとも 1 つのルートを追加するまでは何も実行しません。

ルートを設定する

plugins.entries.webhooks.config 配下に設定します。
ルートのフィールド: secret は、プレーン文字列または SecretRef({ source: "env" | "file" | "exec", provider: "default", id: "..." })を受け付けます。 SecretRef は、Gateway の起動時の設定スナップショット内で解決されます。あるルートの secret を解決できない場合も Gateway は実行を継続し、そのルート自体は登録されたまま 非稼働状態になります。リクエストには一般的な認証失敗(401)が返されます。 その他のルートは引き続き利用できます。SecretRef のソースを修正し、Gateway を再読み込みまたは 再起動して新しいスナップショットを有効にします。SecretRef の値が公開リクエストパスで 解決されることはありません。

セキュリティモデル

各ルートは、設定された sessionKey の TaskFlow 権限で動作します。そのセッションが 所有する任意の TaskFlow を検査および変更できます。TaskFlow へのアクセスは 常に api.runtime.tasks.managedFlows.bindSession(...) を経由するため、 ルートがバインド先のセッション外で動作することはありません。影響範囲を抑えるには:
  • ルートごとに強力で一意な secret を使用します。
  • インラインの平文 secret より SecretRef を優先します。
  • ワークフローに適合する最小範囲のセッションにルートをバインドします。
  • 必要な Webhook パスだけを公開します。
各パスのリクエスト処理順序は、HTTP メソッド(POST のみ)と Content-Type: application/json のチェック、固定ウィンドウ方式のレート制限(パスとクライアント IP の キーごとに 60 秒間で 120 リクエスト、追跡するキーは最大 4,096 個)、 処理中リクエストの制限(キーごとに同時 8 リクエスト、追跡するキーは最大 4,096 個)、共有 secret による認証、256 KB/ 15 秒の JSON ボディ読み取りです。前段のチェックに失敗したリクエストが 後段に到達することはありません。

リクエスト形式

Content-Type: application/json を指定し、Authorization: Bearer <secret> または x-openclaw-webhook-secret: <secret> のいずれかを使用して POST リクエストを送信します。

サポートされるアクション

変更アクション(set_waitingresume_flowfinish_flowfail_flowrequest_cancel)では、楽観的並行性制御のために flowIdexpectedRevision が 必要です。古いリビジョンには 409 revision_conflict が返されます。

create_flow

run_task

許可される runtime の値:subagentacpstartedAtlastEventAtprogressSummary は、status"running" の場合にのみ有効です。それ以外の ステータスとともに送信すると 400 invalid_request が返されます。

レスポンスの形式

フローとタスクのビューには所有者/セッションのメタデータが含まれないため、レスポンスから ルートにバインドされた sessionKey が漏洩することはありません。code の値には not_foundnot_managedrevision_conflictpersist_failedcancel_requestedcancel_pendingterminalinvalid_requestrequest_rejected、および 変更が上記の名前付きコードで扱われていない理由により拒否された場合の アクション固有のフォールバックコード(mutation_rejectedcreate_rejectedtask_not_createdcancel_rejected)が含まれます。

関連項目