> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slipway.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook events

> Every event type a notification channel can subscribe to.

Each notification channel (Discord, Slack, or [generic webhook](/observability/webhooks))
subscribes to any combination of the event types below, picked in the channel's settings
(**Settings → Notifications**). The webhook body's `type` field carries the kind exactly as
written here.

## Deploys

One deployment is one service's run at one commit, so a push that deploys three services
emits three sets of deploy events; each payload's `data.service` says which.

| Kind | Fires when |
| - | - |
| `deployment.build_started` | A service's container image build has started. |
| `deployment.build_ended` | A service's image build finished, successfully or not. |
| `deployment.started` | A service's workloads are being applied to the cluster. |
| `deployment.healthy` | A service deployed successfully and passed its health checks. |
| `deployment.updated` | A new deploy went live, replacing a previous one for the same branch or PR. |
| `deployment.failed` | A deploy failed during build, release, or rollout. |
| `deployment.cancelled` | An in-flight deploy was cancelled, usually superseded by a newer push. |
| `deployment.torn_down` | A deployment's workloads were removed from the cluster. |

## Services

| Kind | Fires when |
| - | - |
| `service.sleeping` | An idle service was scaled to zero to save resources. |
| `service.awake` | A sleeping service was woken by incoming traffic or a manual resume. |
| `service.resized` | A service's CPU or memory allocation was changed live. |
| `service.usage_alert` | A service held CPU or memory near its limit, or its disk is filling, and nothing will grow it automatically. `axis` is `cpu`, `memory` or `disk`. See [usage alerts](/observability/usage-alerts). |

## Preview environments

| Kind | Fires when |
| - | - |
| `preview.spawned` | A pull request spawned a preview environment. |
| `preview.torn_down` | A preview environment was archived, usually because its PR closed. |
| `preview.sleeping` | An idle preview environment was put to sleep. |
| `preview.resuming` | A sleeping preview environment started waking up. |
| `preview.awake` | A preview environment finished waking and is serving traffic again. |

## Projects

| Kind | Fires when |
| - | - |
| `project.created` | A new project was created. |
| `project.deploy_started` | A project-wide deploy began fanning out to its services. |
| `project.healthy` | Every service in a project deploy came up healthy. |
| `project.degraded` | A project deploy finished with some services healthy and others failed. |
| `project.failed` | A project deploy failed across the board. |
| `project.torn_down` | A project and its namespace were deleted. |

## Organization

Organization events ignore per-project scoping: they always fire org-wide on channels that
select them.

| Kind | Fires when |
| - | - |
| `member.joined` | A user joined the organization. |
| `member.role_changed` | An organization member's role was changed. |
| `member.removed` | A member was removed from the organization. |
| `invite.created` | An invitation to join the organization was created. |
| `invite.accepted` | An invitation to join the organization was accepted. |
| `org.plan_changed` | The organization's billing plan changed. |
| `domain.verified` | A custom domain finished DNS verification. |
| `billing.payment_failed` | A payment attempt for the organization failed. |
| `billing.suspended` | The organization was suspended for non-payment. |
| `billing.resumed` | A billing suspension was lifted. |

## Operational notices

Independent of the catalog above, slipway broadcasts occasional **org notices** (usage
warnings, a webhook endpoint being auto-disabled) to every enabled channel. These arrive as
`type: "org.notice"` and cannot be unsubscribed per-event; disable the channel to silence
them.

## Legacy names

Before per-endpoint selection, subscriptions stored four un-prefixed names: `healthy`,
`updated`, `failed`, `torn_down`. Existing configurations were migrated to the
`deployment.*` spellings automatically, and the API still accepts the old names on write.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.