Trigger Workflows from webhooks
/v1/metronomes/webhook/inboundProvider-aware webhook endpoint for published Workflows. GitHub, GitLab, Slack, and generic JSON requests are normalized into one event contract and matched against the Webhook node's provider, event, source, branch, actor, action, and payload filters. The workflowId and nodeId query parameters scope delivery to the URL copied from the workflow editor. When METRONOME_WEBHOOK_SECRET is configured, callers must provide the matching Computer Agents secret or a valid provider-native signature.
How to call this endpoint
Every ACP API request uses bearer authentication. The examples here show the actual request path, auth header, and body shape that the platform expects.
Path, query, and header parameters
These parameters control which ACP object the endpoint acts on and how the request is processed.
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| workflowId | query | string | Yes | Target one published Workflow. Included in URLs copied from the workflow editor. |
| nodeId | query | string | Yes | Target one Webhook trigger node. Included in URLs copied from the workflow editor. |
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| x-computer-agents-webhook-provider | header | webhook | github | gitlab | slack | No | Provider hint for generic clients. Inferred for GitHub, GitLab, and Slack. |
| x-computer-agents-webhook-event | header | string | No | Event name for generic webhook clients. |
| x-computer-agents-webhook-id | header | string | No | Stable delivery ID used for idempotency. |
| x-computer-agents-webhook-secret | header | string | No | — |
Body schema
Content type: application/json · Required
What the API returns
Each response code below includes the documented payload shape for the ACP API.
| Field | Type | Required | Description |
|---|---|---|---|
| success | boolean | No | Whether the request succeeded. |
| object | string | No | — |
| provider | webhook | github | gitlab | slack | No | — |
| matched_count | integer | No | — |
| data | object[] | No | — |