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

# Notification Destinations for Alerts and Workflows

> Connect organization-wide email, Slack, Discord, and webhook destinations for alerts, uptime incidents, and event-triggered workflows.

Notification destinations are the organization-wide delivery endpoints used by analytics alerts, uptime incidents, and workflows. Connect Slack, or configure an email address, Discord webhook, or generic webhook once, then reuse it across the organization.

If you're an organization owner or admin, open the account menu and choose **Notification destinations**. You can also find it through Command-K. Destinations no longer live under Uptime or a site's settings because they belong to an organization, not to one site.

## Add a destination

<Steps>
  <Step title="Open Notification destinations">
    Switch to the organization you want, open the account menu, and choose
    **Notification destinations**.
  </Step>

  <Step title="Choose a delivery type">
    Click **Create** on **Email**, **Slack**, **Discord**, or **Webhook**.
  </Step>

  <Step title="Enter the connection details">
    Give the destination a recognizable name. For Slack, pick a channel from the
    dropdown (see [Connect Slack](#connect-slack) below). For the other types,
    enter an email address, a Discord webhook URL, or a generic webhook URL.
  </Step>

  <Step title="Create and test it">
    Click **Create destination**, open its action menu, and choose **Test**. A
    successful test confirms that TinyAnalytics can reach it.
  </Step>
</Steps>

## Connect Slack

Connecting a Slack workspace lets you choose a channel from a live list, and lets one
connection serve as many channels as you need.

<Steps>
  <Step title="Add TinyAnalytics to Slack">
    On **Notification destinations**, click **Add to Slack**, choose your workspace, and
    approve the requested permissions. TinyAnalytics asks only for what it needs to list
    channels and post messages — it cannot read your conversations.
  </Step>

  <Step title="Invite the bot to the channels you want">
    In Slack, run `/invite @tinyanalytics` in each channel you plan to notify. The channel
    picker marks channels the bot has not joined, and messages to those channels will fail
    until you invite it.
  </Step>

  <Step title="Create a Slack destination">
    Click **Create** on **Slack**, name the destination, and pick a channel. Private channels
    appear with a lock icon if you can see them in Slack.
  </Step>
</Steps>

Channel lists are cached for about an hour. After creating a channel or inviting the bot,
click **Refresh** in the picker to pull the current list.

To connect more than one workspace, click **Add another workspace**. Each destination then
chooses which workspace it uses.

### Disconnecting a workspace

Disconnect a workspace from the **Slack workspaces** card. You must first remove or repoint
any destinations still using it — TinyAnalytics will tell you which ones.

<Warning>
  Disconnecting removes the token TinyAnalytics stores, so it stops posting immediately. It
  does **not** uninstall the app from Slack. To fully revoke access, also remove
  TinyAnalytics from your workspace's app settings in Slack.
</Warning>

### Using a Slack incoming webhook instead

If **Add to Slack** is not available — for example on a self-hosted instance without a Slack
app configured — Slack destinations use an incoming-webhook URL instead. Create the webhook
in Slack, then paste the URL into the destination.

<Warning>
  **An incoming webhook always posts to the single channel it was created for.** You choose
  that channel in Slack when you create the webhook, and it cannot be changed from
  TinyAnalytics. To notify a different channel, create a second webhook in Slack, or connect
  your workspace with **Add to Slack** and pick channels from the list.
</Warning>

<Note>
  **Correction (August 2026).** Earlier versions of TinyAnalytics showed an optional
  **Channel** field on Slack webhook destinations, and this page described it. That field
  never worked: Slack ignores a channel sent with an incoming-webhook message, so
  notifications were always delivered to the webhook's own channel. The field has been
  removed. If you had filled it in, your notifications were going to the webhook's channel,
  not the one you typed — check that it is the channel you expect, and use **Add to Slack**
  if you need to route to a different one. No configuration is needed to pick up the fix.
</Note>

## Where each destination is used

| Feature                                             | How it uses destinations                                                                        |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| [Analytics alerts](/docs/analytics-alerts)               | Choose where threshold breaches and recovery notices are delivered.                             |
| [Uptime monitoring](/docs/website-api-uptime-monitoring) | Sends incident-opened and incident-resolved notifications to enabled organization destinations. |
| [Workflows](/docs/analytics-workflows)                   | A notify step sends its rendered title and message to 1–5 selected destinations.                |

Scheduled reports use their own organization-member recipient list and are not connected to notification destinations.

## Manage existing destinations

The **Active destinations** table shows each destination's name, type, connection detail, and status. Open the action menu to:

* **Disable** or **Enable** delivery without deleting the configuration.
* **Test** an enabled destination.
* **Edit** its name, connection details, or Slack channel.
* **Delete** it permanently.

<Warning>
  Before disabling or deleting a destination, check the alerts and workflow
  notify steps that use it. A workflow validates its selected destinations when
  you publish and checks them again when it sends.
</Warning>

## Who can manage destinations?

Organization members can read the destinations available to features they can access. Only organization owners and admins can create, edit, enable, disable, test, or delete them. Webhook credentials are masked for members who cannot manage the organization.

## Verify

<Check>
  Open the destination's action menu and choose **Test**. The setup is complete
  when TinyAnalytics reports **Test notification sent** and the message arrives
  at the configured email address, Slack channel, Discord channel, or webhook.
</Check>

<Check>
  For a Slack destination, confirm the message arrives in the channel named on the
  destination row. If the test reports that the bot is not in the channel, run
  `/invite @tinyanalytics` there and test again.
</Check>

## Related

<Columns cols={2}>
  <Card title="Workflows" icon="diagram-project" href="/docs/analytics-workflows">
    Trigger notifications from pageviews, events, errors, and autocapture.
  </Card>

  <Card title="Analytics alerts" icon="bell" href="/docs/analytics-alerts">
    Notify your team when a metric crosses a threshold.
  </Card>

  <Card title="Uptime monitoring" icon="heart-pulse" href="/docs/website-api-uptime-monitoring">
    Open incidents after repeated endpoint failures.
  </Card>

  <Card title="Roles & permissions" icon="shield-halved" href="/docs/analytics-roles-permissions">
    See what organization owners, admins, and members can manage.
  </Card>
</Columns>


## Related topics

- [Analytics Alerts](/docs/analytics-alerts.md)
- [Event-Triggered Analytics Workflows](/docs/analytics-workflows.md)
- [Analytics Site Settings](/docs/analytics-site-settings.md)
