An inbound webhook source connected to a scaling.cloud component
How it works
- You create an inbound webhook in scaling.cloud and pick the component its alerts affect. scaling.cloud issues a unique webhook URL and an HMAC signing secret, both shown only once.
- Your tool sends a JSON payload to the URL on each alert, with an HMAC-SHA256 signature of the request body in the
X-Scaling-Signatureheader. - A payload with
status: "open"opens an incident on the mapped component (deduplicated bydedupKey). A payload withstatus: "resolved"and the samededupKeyresolves the matching open incident.
Endpoint
{token} is part of the webhook URL shown when you create the source. No Clerk/session auth is used — the URL token identifies the source and the HMAC authenticates the payload.
Payload
Example open payload
Example resolved payload
Signing the request
Compute an HMAC-SHA256 of the raw request body with your signing secret and send it assha256=<hex>:
Responses
State handling
The opened incident flows through the same pipeline as any other: escalation policy, on-call paging, Slack, and status pages.
Security model
- HMAC signature verification — every request body is verified against the source’s signing secret with a constant-time comparison. Requests with a missing or invalid signature are rejected with
401. - Secrets revealed once — the webhook URL token and signing secret are shown a single time on create. scaling.cloud stores only a SHA-256 hash of the token and an encrypted copy of the secret. If you lose the URL you must delete and recreate the source.
- Rotate the secret — you can rotate the signing secret at any time from the source’s settings; the URL stays the same. Update your sender with the new secret.
- No payload logging — scaling.cloud does not log raw payloads at info level. Structured logs reference only
orgIdandintegrationId.
Setup
1
Create the webhook in scaling.cloud
Go to Settings → Integrations → Inbound webhooks and click New webhook. Choose a name and the component its alerts should affect. Copy the webhook URL and signing secret on the one-time reveal screen.
2
Configure your tool
Point your monitoring tool’s webhook/alert action at the URL. Send the payload above, signing the body with the secret and putting the result in
X-Scaling-Signature.3
Send a resolve on recovery
When the underlying condition clears, send a
status: "resolved" payload with the same dedupKey so scaling.cloud auto-resolves the incident.One webhook, many components
Each inbound webhook has a fallback component — the one its alerts land on when nothing else is specified. To route a single webhook’s alerts across many components, set thecomponent field on each payload to the target component’s name or one of its aliases; scaling.cloud resolves it to the owning component and pages that component’s escalation policy. A component value that matches nothing falls back to the webhook’s fallback component, so a typo never drops an alert.
Removing a webhook
Deleting a webhook in scaling.cloud stops ingestion immediately — any further deliveries to its URL return401. Remember to remove the URL from the sending tool.