If it can POST JSON,
it can create incidents.
Send a JSON payload from any tool, script, or pipeline. Runframe creates a structured incident on the right service and pages the on-call team. No SDK required.
How it works
One HTTP request. That is the entire integration.
Copy your webhook URL
Open the service in Runframe and copy the webhook endpoint from service settings. Each service gets its own URL.
POST a JSON payload
Send an HTTP POST with a JSON body. Include a title and service_id at minimum. Add severity, description, and a dedup key if you want.
Incident created, on-call paged
Runframe parses your payload, creates the incident on the right service, and pages the on-call team via Slack and email.
What the integration does
Works with anything
Custom monitoring scripts, CI/CD pipelines, internal tools, cron jobs, Lambda functions. If it can make an HTTP POST, it can create a Runframe incident.
Simple JSON format
Two required fields: title and service_id. Everything else is optional. Severity, description, dedup key, source URL, and up to 10 metadata key-value pairs.
Secret URL by default
Each webhook URL contains a unique routing key that acts as a shared secret. Only someone with the URL can create incidents on that service.
Built-in deduplication
Pass a dedup_key in your payload. If the same key fires again while an incident is open, Runframe updates the existing one. Without a key, every POST creates a new incident.
Payload format
Two required fields: title and service_id. Everything else is optional.
{
"title": "Deploy failed on checkout-service",
"service_id": "checkout",
"severity": "SEV1"
}Full payload reference in the setup guide.
Frequently asked questions
One curl command. Real incident.
Free plan available. No credit card required.