Update a webhook
Authentication
Path parameters
UUID of the outbound webhook. It must belong to the authenticated workspace; an id from another workspace answers 404, exactly like an unknown one. Returned as id by GET /api/webhooks.
Request
Replaces the whole subscription list (at least one event).
false pauses deliveries, including queued retries. true re-enables and resets failure_count and last_error.
Optional delivery filters, combined with AND. The ID, outcome and sentiment filters fail closed:
if the event’s data does not carry the field, the event is NOT delivered. They are matched
against data.campaignId/data.campaign_id, data.agentId/data.agent_id,
data.outcome/data.result and data.sentimentScore/data.sentiment. Filtered-out events leave
no delivery log entry.
Replaces all custom headers. {} removes them. Same limits as on create.
Replaces the template. "" goes back to the default body. Same validation as on create.
Response
An outbound webhook exactly as the API serializes it: the stored row with snake_case keys.
secret is masked as "[configured]" on list, retrieve and update. The plaintext signing secret
is returned only once, in the POST /api/webhooks response, and a new one by rotate-secret.
Custom headers are returned as stored, in plaintext.

