Webhooks are inbound only. CloudThinker does not POST events out to your endpoints. To send results outward, use notifications, Slack, or Microsoft Teams.
How it works
- You create a webhook and choose what it does: start a Conversation or open a DRE incident.
- CloudThinker issues a unique URL containing the webhook token, plus a signing secret shown once.
- Your system POSTs a JSON body to that URL.
- CloudThinker authenticates the request, checks the rate limit, records the event, and returns 202 Accepted in under 100 ms.
- A worker dispatches the payload and writes the final status.
Create a webhook
1
Open Webhooks
Navigate to Webhooks in the sidebar, or open Chat Settings (the gear icon beside the + button in the chat prompt box) and select Webhooks under Integrations.
2
Click Create Webhook
The wizard has four steps: Basic Info, Type, Configure, and Advanced.
3
Fill in the fields
- Name — a descriptive identifier
- Description — optional
- Type — Conversation or DRE
- Rate limit — requests per hour, default 100. Set 0 or below for unlimited
- Prompt structure — optional template that must contain
{{message}} - Auth — bearer token, HMAC, API key, or none
4
Copy the URL and secret
Save the webhook, then copy its URL and signing secret.Success state: the webhook appears in the list as active.
Action types
For a DRE webhook, automatic RCA is on by default with a minimum severity of Medium. See webhook integrations.
Request body
The response returns
success, request_id, and — depending on the action type — conversation_id, incident_id, rca_run_id, and signal_id.
Authentication
Choose one auth mode per webhook. CloudThinker verifies each incoming request before it accepts the payload.
The header name is configurable for HMAC and API key. Sign the raw request body with HMAC-SHA256 and send
sha256=<hex digest>:
Limits
A request over the rate limit is recorded with status
rate_limited.
Review triggers
Navigate to Webhooks > Triggers to see every webhook trigger in the workspace.
Each event carries one of four lifecycle statuses:
accepted, processed, failed, or rate_limited.
Triggers never expose stored request headers, bodies, or client details. That data is retained internally for 90 days and redacted from the interface.
Pause a webhook
Set the webhook to paused to stop it accepting requests. A webhook isactive, paused, or disabled. While paused, the endpoint rejects incoming requests rather than queueing them.
Troubleshooting
401 or 403 on every request
401 or 403 on every request
The auth mode does not match what you send. Check the header name and confirm you are signing with the webhook’s own secret. A failed attempt appears in Triggers as Auth Failed.
Signature mismatch
Signature mismatch
Sign the exact raw body bytes, before any reformatting, and send the digest as
sha256=<hex>. Re-serializing JSON changes the bytes and breaks the signature.Custom fields never reach the agent
Custom fields never reach the agent
Unknown top-level keys are dropped. Move them inside
metadata.429 responses
429 responses
The webhook is over its hourly rate limit. Raise the limit, or set it to 0 for unlimited.
413 or a rejected large payload
413 or a rejected large payload
The body is over the 1 MB cap. Send a reference instead of the full document.
Related
DRE Webhook Integrations
Route alerts from monitoring platforms into incidents
Notifications
Deliver CloudThinker results to email, Slack, and Teams