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.

1

Copy your webhook URL

Open the service in Runframe and copy the webhook endpoint from service settings. Each service gets its own URL.

2

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.

3

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.

Example
{
  "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.