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

# Subscribe to a status page

> How visitors get incident and maintenance updates by email, Slack, Microsoft Teams, or a signed webhook, and how operators control subscriptions.

Visitors subscribe from the **Subscribe to updates** button in the page
header. Each subscription delivers the page's incident and maintenance
updates to one destination: an email address, a Slack channel, a Microsoft
Teams channel, or a webhook endpoint. Subscribers can narrow the updates to
the services they care about, and every message carries a link to change
that or unsubscribe.

This page covers the visitor flow first, then the operator settings.

## Subscribe by email

<Steps>
  <Step title="Open the subscribe form">
    On the status page, click **Subscribe to updates** (**Subscribe** on narrow
    screens). Under **Notify me by**, keep **Email** selected and enter an email
    address.
  </Step>

  <Step title="Choose services (optional)">
    When the page shows services, the form offers **All services** or **Only
    selected**. With **Only selected**, pick at least one service. See
    [Choosing services](#choosing-services) for what this changes.
  </Step>

  <Step title="Confirm the address">
    Click **Subscribe**. Observer sends a confirmation email to the address.
    Nothing else is sent until the link in that email is clicked (double
    opt-in). The confirmation page links to the subscription's preferences.
  </Step>
</Steps>

If the confirmation email does not arrive, submit the same address again.
While the subscription is still unconfirmed, Observer re-sends the original
confirmation email, at most once every 10 minutes per address. The form
always answers the same way, whether or not the address was already
subscribed, so it cannot be used to find out who is subscribed.

## Connect Slack or Microsoft Teams

Slack and Teams subscriptions post to a channel through an incoming webhook
URL that the visitor creates in their own workspace.

<Steps>
  <Step title="Create the webhook URL">
    * **Slack**: create an incoming webhook under Apps, Incoming Webhooks, and
      pick a channel. The URL must be on `hooks.slack.com` (or
      `hooks.slack-gov.com`) with a path that starts with `/services/`,
      `/triggers/`, or `/workflows/`.
    * **Microsoft Teams**: create a Workflows webhook (the "Post to a channel
      when a webhook request is received" template). Legacy Office 365 connector
      URLs also work. The host must end in `.webhook.office.com`,
      `.logic.azure.com`, or `.api.powerplatform.com`.
  </Step>

  <Step title="Connect it">
    In the subscribe form, choose **Slack** or **Teams**, paste the URL, choose
    services if you want, and click **Connect Slack** or **Connect Teams**.
  </Step>

  <Step title="Check the test message">
    Observer immediately posts a "Connected to *page* status updates" message to
    the channel. The subscription is created only if the destination accepts it
    with a 2xx response within 10 seconds. If it does not, the form shows why
    (for example, the URL redirected, timed out, or was rejected with an HTTP
    status) and nothing is stored.
  </Step>
</Steps>

There is no confirmation email for Slack, Teams, or webhook subscriptions:
accepting the test message is the proof that the destination is yours.

## Connect a webhook

A webhook subscription POSTs signed JSON to an endpoint you run. Choose
**Webhook**, enter an `https://` URL, and click **Connect webhook**. As with
Slack and Teams, Observer sends a test delivery (`subscription.connected`)
and only creates the subscription if your endpoint answers 2xx within 10
seconds.

On success the form shows the subscription's **signing secret** (it starts
with `whsec_`). It is shown once. Store it, then verify the
`X-Observer-Signature` header on every delivery. The
[subscriber webhook reference](/docs/reference/subscriber-webhooks) documents
the payloads, headers, and signature check.

## URL rules

Every Slack, Teams, and webhook URL must:

* use `https://`;
* carry no username or password;
* resolve to a public address (private, loopback, and link-local addresses are
  refused);
* answer directly: redirects are not followed, so use the final URL.

These checks run when the URL is submitted and again on every delivery.

Submitting a URL that is already connected to the page does not create a
second subscription. Observer sends another test message (at most once every
10 minutes) that includes the link to manage the existing subscription. The
signing secret is not shown again.

## Choosing services

With **All services**, a subscriber receives every update published on the
page. With **Only selected**, a subscriber receives:

* updates that list at least one of the selected services as affected;
* updates that list no affected services at all, since those concern the
  whole page;
* the resolve, completion, or cancellation of any update they already
  received, even if its affected services changed in the meantime. A
  subscriber who heard that something broke always hears that it was fixed.

The service list offered is the set of services with an SLO on one of the
page's metrics. Subscribers can change their selection later from the
preferences page.

## What subscribers receive

Subscribers are notified when an incident is published, when an update is
posted on it, and when it is resolved, and when a maintenance window is
published, is about to start, completes, or is canceled. Drafts never notify.
The [subscriber notification events](/docs/reference/subscriber-events)
reference lists every trigger.

Every email, Slack message, Teams card, and webhook payload links to the
update's permalink (`/incidents/<id>`) and to the subscription's preferences
page.

## Manage or unsubscribe

The **Manage or unsubscribe** link in every message (and the **Manage
subscription** link shown after connecting) opens the subscription's
preferences page. The link is personal: anyone who has it can change the
subscription. From there a subscriber can:

* change the services they follow and click **Save preferences**;
* click **Unsubscribe** (email) or **Disconnect Slack**, **Disconnect
  Microsoft Teams**, or **Disconnect Webhook** (channels). Disconnecting
  deletes the stored webhook URL and signing secret.

Unsubscribe links in emails open a confirmation page with an **Unsubscribe**
button, so link scanners in mail gateways cannot unsubscribe someone by
following the link. Subscriber emails also carry the standard
`List-Unsubscribe` and `List-Unsubscribe-Post` headers, so mail clients that
support one-click unsubscribe (such as Gmail and Apple Mail) remove the
subscription in one step.

To change a webhook's signing secret, disconnect the subscription and connect
the same URL again. The new subscription gets a new secret.

## Operator settings

### Turn subscriptions on or off

In the console, open the page in the page editor, go to **Access**, and use
the **Email subscriptions** switch. Despite its label, the switch controls
every channel: when it is off, the page shows no subscribe button and the
subscribe endpoint accepts nothing. It is on by default. Turning it off does
not remove existing subscribers.

### Restricted pages

On a page that is not public, visitors can subscribe only after they pass the
page's access check. On a customer-scoped page opened with a signed link, the
subscription is tied to that customer and receives that customer's scoped
incidents.

### Subscriber limits

Your plan sets a subscriber limit for the whole organization, across all
pages. Every active subscription counts once, whatever its channel: email
(including unconfirmed addresses), Slack, Teams, and webhook. Unsubscribed
and disconnected subscriptions do not count.

When the organization is at its limit, your pages stop showing the subscribe
button. A sign-up submitted at the limit (for example, from a form that was
already open) is refused: the email form still shows its usual "check your
inbox" message but sends nothing, and the Slack, Teams, and webhook forms show
"Sign-up unavailable". See [pricing](https://use.observer/pricing) for each
plan's limit.

### See who is subscribed

The page's **Subscribers** view lists each subscription with its status
(**Confirmed**, **Unconfirmed**, or unsubscribed), customer, and service
filter count. Slack, Teams, and webhook subscriptions show as **Slack
channel**, **Teams channel**, or **Webhook**; their URLs are never shown in
the console. **Export CSV** downloads the list.

<Info>
  **Rate limits**

  The subscribe form accepts up to 5 submissions per minute from one IP
  address for a page. Further attempts are refused until the minute passes.
</Info>


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