Skip to content

Event types

This is the canonical table of every event type managed.dev emits to customers. The same catalog drives three channels: webhooks (subscribe by exact type, category:<name>, or "*"), the in-app notification bell, and email. Each type carries a default severity and per-channel flags — failures, security events, and critical alerts interrupt; routine successes stay quiet.

The machine-readable version is GET /v1/webhook-endpoints/event-types (or mf webhooks event-types) — build subscription lists from it rather than hard-coding this table.

Sorted by category, then type. in-app means the event rings the dashboard bell (the notifications page shows every event regardless); email means it sends a message, subject to the per-category preferences at GET/PUT /v1/notification-preferences.

Category Event type Severity In-app Email Fires when
backup snapshot.completed info — — A backup job finishes; the payload carries the new snapshot_id.
backup snapshot.restored info yes yes A snapshot restore completes.
build build.completed info — — A build produces a signed, content-addressed artifact.
build build.failed error yes yes A build fails before producing an artifact.
deploy deploy.completed info yes — A deployment finishes and the environment serves the new release.
deploy deploy.failed error yes yes A deployment can’t complete; the environment stays on its prior release.
env env.created info yes — A new environment is provisioned.
env env.create_failed error yes yes Environment provisioning fails.
env env.destroyed info — — An environment is destroyed.
env env.refreshed info — — An environment is re-seeded from production.
env env.reset info — — An environment is reset.
job job.succeeded info — — Any async job reaches succeeded.
job job.failed error yes yes Any async job reaches failed.
observability observability.alert warning¹ yes yes A site health rule transitions into alerting.
observability observability.resolved info yes — An alerting rule recovers.
security malware.detected critical yes yes A scan finds and quarantines malicious files.
security malware.scanned info — — A malware scan completes.
security security.key_created warning yes yes An API key is created.
security security.key_revoked warning yes yes An API key is revoked.
security security.member_role_changed warning yes yes A team member’s role changes.
security security.member_removed warning yes yes A member is removed from a team.
security security.team_deleted warning yes yes A team is deleted.
security vulnerability.matched critical¹ yes yes A known CVE newly matches an installed plugin or theme.
site site.created info — — A site is created.
site site.deleted warning yes yes A site is deleted.
site site.transferred warning yes — Site ownership moves to another team or account.
team team.member_added info — — A member joins a team.
team team.invite_created info — — A team invite is created.

¹ Severity is set per event from the underlying finding — observability.alert can be warning or critical, and vulnerability.matched reflects the worst new match.

Every delivery wraps the payload in a common envelope. The type field is what you switch on; data holds the type-specific payload — see event types & payloads for examples.

a deploy.completed delivery
{
"id": "evt_01J9F2KQ...",
"type": "deploy.completed",
"site_id": "site_01J7ABCD...",
"env_id": "env_01J8C4RX...",
"created_at": "2026-06-23T18:04:11.412Z",
"data": {
"job_id": "job_01J9F2KQ...",
"job_type": "deployment.deploy"
}
}

The HTTP request also carries the Forge-Signature header — verify it before trusting the body — and a Forge-Delivery-Id header that stays stable across redeliveries, which is what you dedupe on. Delivery history and replay live at GET /v1/webhook-endpoints/{id}/deliveries.

A few events anchor common automations:

  • malware.detected kicks off an incident response — pull the detections, review the quarantine, and restore from a snapshot if needed.
  • deploy.failed pages your team or posts to chat the moment a release doesn’t roll, instead of waiting for someone to notice.
  • security.key_created and the other security.* audit events feed a SIEM or compliance trail without polling the audit log.
  • observability.alert wires site health straight into your on-call rotation.