Set Up Webhooks

When something happens in DM Editors — a post is published, a form submission arrives — DM Editors can ping another service. That ping is a webhook.

When to use a webhook

Create your first webhook

  1. Open Webhooks Click Webhooks in the sidebar, then New webhook.
    Empty Webhooks screen with an Add your first webhook call-to-action
    The Webhooks screen before any are configured.
  2. Name it Something specific: "Rebuild Vercel — Production", "Notify #marketing on new post".
  3. Paste the destination URL Copy this from the service you're connecting to. Examples:
    • Vercel: Project → Settings → Git → Deploy Hooks.
    • Netlify: Site → Build & deploy → Build hooks.
    • Slack: An incoming webhook URL from api.slack.com/apps.
    • Zapier: A "Webhooks by Zapier" trigger URL.
    New Webhook form with endpoint URL, signing secret, and an events checklist (entry created, published, deleted, media events, form submitted)
    Configuring a new webhook.
  4. Pick events Tick the ones you care about. Common picks:
    • entry.published — most common for site rebuilds.
    • entry.unpublished — to rebuild after takedowns.
    • form.submission.created — for CRM / Slack alerts.
    • media.uploaded — for image-CDN warmups.
  5. (Optional) Set a secret Used by the receiving service to verify the message really came from DM Editors. Generate a random string and paste it in. The receiver must use the same string to verify the X-DM Editors-Signature header.
  6. (Optional) Add custom headers If the receiver needs an auth token, add it as a header here (e.g. Authorization: Bearer abc123).
  7. Save The webhook is now active and will fire on every matching event.
  8. Click "Send test" DM Editors fires a synthetic payload immediately so you can confirm it works without waiting for a real event.
    Webhook editor — the Send test action lives alongside the endpoint and event configuration
    From the webhook editor, click Send test to fire a synthetic payload.

Inspect delivery history

Open any webhook to see every attempt — what was sent, what came back, how long it took. Failed deliveries are auto-retried with backoff until they succeed or hit the retry cap (default 5 attempts).

Log-style table — webhook deliveries appear in the same row layout with event, time, status, and attempt
Webhook deliveries are shown as a log table, much like the Activity Log.

Troubleshooting

SymptomLikely causeFix
All deliveries fail with 401 / 403Receiver expects authAdd the right Authorization header in webhook settings.
200 OK but nothing happens in receiverPayload format mismatchShow your developer the Payload shape in the API docs; they may need a small handler.
TimeoutsReceiver too slowMove heavy work to a queue on the receiver side; ack the webhook quickly.
Webhook never firesWrong event pickedRe-check the events list; remember that publishing fires both entry.updated and entry.published.

Pause or delete

Next steps

Last stop — the activity log, your team's audit trail.