Runframe
Integrations

Custom Webhook

Create Runframe incidents from any HTTP source. Payload format, deduplication, and examples.

Setup

  1. Navigate to Integrations Hub
  2. Click Connect Custom Webhook
  3. Copy the unique webhook URL (format: https://runframe.io/webhooks/{routingKey})
  4. Configure your tool to POST JSON to this URL

Payload format

Required fields

FieldTypeDescription
titlestringBrief incident summary (max 200 chars)
service_idstringService ID to route the incident to (e.g., SER-00001)

Optional fields

FieldTypeDescription
descriptionstringDetailed description (max 2000 chars)
severitystringSEV0, SEV1, SEV2, SEV3, or SEV4 (default: uses fallback chain)
statusstringnew, investigating, or resolved (default: new)
source_urlstringLink back to the source (dashboard, CI run, etc.)
dedup_keystringDeduplication key, same key = same incident (max 255 chars)
metadataobjectKey-value pairs for additional context (max 10 keys)

Examples

Minimal

{
  "title": "Server is down",
  "service_id": "SER-00001"
}

Complete

{
  "title": "Database connection pool exhaustion",
  "service_id": "SER-00002",
  "description": "Database connections exhausted. API returning 500 errors.",
  "severity": "SEV1",
  "status": "new",
  "source_url": "https://grafana.example.com/dashboard/db",
  "dedup_key": "db-pool-prod-001",
  "metadata": {
    "environment": "production",
    "region": "us-east-1"
  }
}

curl

curl -X POST https://runframe.io/webhooks/YOUR_ROUTING_KEY \
  -H "Content-Type: application/json" \
  -d '{
    "title": "High memory usage on production servers",
    "service_id": "SER-00001",
    "description": "Memory usage above 90% on 3 servers",
    "severity": "SEV1"
  }'

Deduplication

  • If dedup_key is provided, subsequent POSTs with the same key update the existing incident instead of creating a new one
  • If dedup_key is omitted, every POST creates a new incident

Testing

curl -X POST https://runframe.io/webhooks/YOUR_ROUTING_KEY \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Test webhook",
    "service_id": "SER-00001",
    "description": "Testing webhook integration"
  }'

Verify the incident appears in Runframe with the correct title, service, and severity.