Skip to main content
Connect DevHelm to any automation platform that accepts a webhook trigger — Zapier, n8n, Make (formerly Integromat), or your own endpoint. On every incident event, DevHelm POSTs a flat JSON payload to the URL you provide, which your automation can parse to trigger downstream actions (create tickets, page on-call, post to chat, update spreadsheets, and so on). The webhook URL must use HTTPS.

Setup

1

Get a catch webhook URL from your automation platform

Zapier
  1. Create a new Zap and choose Webhooks by Zapier as the trigger
  2. Select the Catch Hook event and click Continue
  3. Copy the generated URL (looks like https://hooks.zapier.com/hooks/catch/1234567/abcdef/) — it is tied to the Zap and won’t change
n8n
  1. Add a Webhook node to a new workflow and set the HTTP method to POST
  2. Activate the workflow, then copy the Production URL (ends in /webhook/...)
  3. The Test URL (/webhook-test/...) only works while the editor is open with Listen for Test Event — use the Production URL for live alerts
Make
  1. Create a scenario and add the Webhooks → Custom webhook module
  2. Click Add, name the webhook, and copy the generated URL
2

Create the alert channel in DevHelm

devhelm alert-channels create \
  --name "Zapier Automation" \
  --type zapier \
  --config '{"channelType":"zapier","webhookUrl":"https://hooks.zapier.com/hooks/catch/1234567/abcdef/"}'
3

Test the channel

devhelm alert-channels test <channel-id>

Configuration

FieldDescriptionRequired
webhookUrlCatch/webhook URL from Zapier, n8n, Make, or any HTTPS endpointYes

Payload format

DevHelm sends a flat JSON object on each incident event (fire-and-forget — one POST per event):
{
  "source": "devhelm",
  "event_type": "INCIDENT_CREATED",
  "severity": "DOWN",
  "monitor_name": "API Production",
  "monitor_url": "https://api.example.com/health",
  "incident_id": "8f1c2e9a-4b6d-4c2f-9b7e-2a1d3c4e5f60",
  "incident_url": "https://app.devhelm.io/incidents/8f1c2e9a-4b6d-4c2f-9b7e-2a1d3c4e5f60",
  "failure_reason": "Connection timeout after 10s",
  "status_code": 503,
  "response_time_ms": 1240,
  "duration": "5 minutes",
  "regions": ["us-east"],
  "resource_group": "Payments"
}
FieldNotes
event_typeOne of INCIDENT_CREATED, INCIDENT_RESOLVED, INCIDENT_REOPENED
severityIncident severity, e.g. DOWN, DEGRADED, MAINTENANCE
regionsArray of affected probe regions
monitor_url, failure_reason, status_code, response_time_ms, duration, resource_groupMay be null when not applicable to the event
In Zapier, the Catch Hook trigger parses the JSON automatically, so each top-level key is available as a field in later Zap steps. Branch on event_type to handle creation versus resolution differently.

Troubleshooting

The webhook URL must start with https://. Plain http:// URLs are rejected at create time — use the HTTPS URL your platform generates.
  1. Confirm the Zap/workflow/scenario is turned on — a paused Zap or an inactive n8n workflow silently drops requests
  2. Run devhelm alert-channels test <id> and check the platform’s task/execution history for the delivery
  3. Make sure the channel is wired into a notification policy so real incidents route to it
n8n issues two URLs. The Test URL (/webhook-test/...) only fires while the editor is open and Listen for Test Event is active; the Production URL (/webhook/...) only works once the workflow is activated. Configure DevHelm with the Production URL and activate the workflow.