How an alert flows
An alert that reaches the webhook doesn’t become an incident directly. It goes through Pulse first.Pulse drops noise and groups signals into clusters; only a cluster with an actionable signal reaches triage.
Before you start
- The workspace Admin role.
- Admin access to the monitoring tool, so you can add a webhook to it.
- One real alert payload you can trigger on demand, or a sample of its JSON.
Create the webhook
1
Open the platform
Go to Resolve → Integrations and select your tool, for example Datadog, Grafana, or PagerDuty.
2
Add a signal
Under Signals to Resolve, click Add signal (or Add another signal). The Create Webhook dialog opens with three steps.
3
Basic Info
Keep or change Webhook Name (it defaults to
<Tool> Webhook) and add an optional Description. Click Next.4
Configure
Check Field Mapping and Severity Mapping. Both come pre-filled for the tool you picked. Leave Send directly to CloudThinker off (why). Click Next.
5
Advanced
Pick an Auth Method and set Auto-investigate (both explained below). Click Create.
Map the fields
Each mapping field takes a path into the alert’s JSON. Only Title Path is required.- Use dotted keys, like
event.data.title, and[n]for a list item, likealerts[0].labels.severity. A leading$.is accepted and dropped. - A path can have at most 8 segments. Keys that contain a dot can’t be addressed, and there are no fallback paths.
- A path must end at a single text or number value. A path that ends at a list or object maps to nothing.
Your tool decides the payload shape. In Datadog, for example, you write the JSON yourself in the webhook’s Payload field, using Datadog’s template variables. The Datadog preset reads
title, body, and alert_type. Add a service key with one service name, because the preset’s default Service Path (tags) points at a list and maps to nothing:
A fixed
service value applies to every monitor that notifies this webhook. Datadog’s $ALERT_TYPE sends error, warning, info, or success, but the Datadog preset’s Severity Mapping covers alert, warn, ok, and no data. Under Severity Mapping, click Customize, then Add Mapping for each of these rows (change the levels to suit your team). You can also add them later from the webhook row’s Manage menu (⋯) → Edit.
A
success (recovery) event doesn’t close anything. It arrives as an ordinary signal, and the cluster still closes after 12 quiet hours or when a person resolves it. CloudThinker’s classifier treats a recovery or healthy state as not actionable, so its cluster doesn’t go to triage on its own. The check is a model judgment, so a recovery can still slip through. A person can always send a cluster to triage with Escalate.
Severity Mapping translates the tool’s own words into CloudThinker’s five levels: critical, high, medium, low, and info. The generic preset maps warning to medium and error to high, for example. Matching ignores case and surrounding spaces, so ERROR and error hit the same row.
If your tool isn’t listed, use Custom source instead. It captures one real payload and lets you click the fields to map.
Choose authentication
The dialog names the credential after the method you pick: Secret Key for Bearer Token, HMAC Secret for HMAC Signature, and API Secret for API Key. It’s the same credential, shown once either way.
Decide when RCA starts
Auto-investigate is on by default: this webhook’s actionable clusters go to triage, which opens an incident and investigates it. Turn it off and its alerts stay in Pulse until someone clicks Escalate and Send to triage. With Only from a minimum severity, pick a floor: Info and above, Low and above, Medium and above, High and above, or Critical only. Alerts below it still group with related alerts, but don’t start triage on their own. What starts an investigation shows how these options combine with On duty and manual starts.Each automatic investigation is billed in credits. Set a minimum severity, or a Credit limit, before you connect a noisy tool.
Test the whole path
1
Fire one real alert
Trigger a representative alert from your tool, or send the request from the cURL tab in Integration Examples. With Bearer Token, a test looks like this:A successful delivery returns
200 with a body that includes "success": true and a request_id. If you haven’t added the Datadog rows yet, error maps to medium.2
Check Pulse
Open Resolve → Pulse and find the signal with the title you mapped.
3
Check the incident
On Resolve → Pulse, a cluster that went to triage moves to the Routed lane once it’s linked to an incident. Then open Resolve → Investigation. With Auto-investigate and On duty both on, the incident shows AI is handling. If the cluster never reaches Routed, classification may have judged it not actionable. See Clusters troubleshooting.
200 alone only proves delivery.
Test one alert for each severity row you rely on. With the Datadog example above, send one error (maps to high) and one warning (maps to medium).
Limits and responses
Pulse treats a delivery as a duplicate when its source, resource, title, severity, and event time (to the minute; see Timestamp Path for where it comes from) match a signal from the last hour. A duplicate adds to that signal’s count instead of creating a new one. A cluster closes after 12 hours with no new signal, or when a person resolves it. See Cluster lifecycle.
Troubleshooting
The tool reports 401 or 403
The tool reports 401 or 403
Cause: the auth header doesn’t match the Auth Method, or (for a
401) the tool still sends to an old Webhook URL. Check: the URL, and the header name and secret in your tool against Authentication Setup. Fix: paste the secret again, or use Regenerate credentials in the webhook row’s Manage menu under Resolve → Integrations.Delivery succeeds but nothing appears in Pulse
Delivery succeeds but nothing appears in Pulse
Cause: Pulse suppressed the alert as noise, counted it as a duplicate of an earlier signal, or the time window hides it. Check: widen the window on Resolve → Pulse, then hover the funnel at the top to see how many events were suppressed. If you sent the same alert twice within a minute, look for the earlier signal: its count went up instead (see Limits and responses). Fix: see Noise suppression for each check.
Signals arrive with an empty title or the wrong severity
Signals arrive with an empty title or the wrong severity
Cause: a path doesn’t match the payload, or the tool’s severity value has no mapping row. Fix: compare the paths against a real payload, then add the missing value to Severity Mapping.
An alert reached Pulse but no RCA started
An alert reached Pulse but no RCA started
Cause: Auto-investigate is off, the severity is below the floor, or On duty shows Paused. Fix: check all three against What starts an investigation, or click Escalate and Send to triage on the cluster. If an incident is already open, click Investigate on it.
Next steps
Connect CloudWatch
Send CloudWatch alarms through EventBridge.
Add a custom source
Connect a system with no preset by clicking its payload fields.
Understand Pulse
See how signals are filtered, grouped, and routed.
Manage integrations
Check readiness and turn on outcomes for each platform.