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

# Slack

> Ask questions and investigate incidents from Slack.

Annie is your infrastructure copilot, available directly in Slack. Ask questions about your cloud resources, get automatic incident analysis when alerts fire, and keep your team in the loop, all without leaving the conversation.

## Installation

<Steps>
  <Step title="Open Integrations">
    Go to **Integrations → Slack** on the [Slack Integrations page](https://app.anyshift.io/integrations/messaging/slack).
  </Step>

  <Step title="Install the Slack app">
    Click **Install Slack App**, then authorize Annie in your workspace.
  </Step>

  <Step title="Invite Annie to channels">
    Annie discovers the channels it's added to. Invite it wherever you'd like it available.

    If your organization uses **Channel Access** (see below), Annie only joins channels on the allowlist.
  </Step>

  <Step title="Map channels to projects">
    Assign each channel one Anyshift [project](/pages/product/project_management/overview) so Annie knows which integrations and knowledge to use.
  </Step>
</Steps>

<Accordion icon="diagram-project" title="Multiproject & switching channels">
  If your organization runs multiple projects, assign one project per channel: Annie prompts users in Slack, or you set it from the Anyshift UI. Use `/switch-project` to change a channel's project directly in Slack. You can also connect multiple Slack workspaces to a single Anyshift organization.
</Accordion>

## What you can do

<AccordionGroup>
  <Accordion icon="comments" title="Ask infrastructure questions">
    Mention **@Annie** in any mapped channel to ask about cloud resources, Terraform, dependencies, and more. Annie answers in a thread, drawing on the integrations connected to that channel's project.
  </Accordion>

  <Accordion icon="bolt" title="Automatic root cause analysis">
    When a monitoring bot (Datadog, PagerDuty, etc.) posts an alert in a channel where Annie is registered on-call, Annie investigates and posts a threaded analysis: a summary, a timeline of related changes, the likely root cause, and recommended fixes. See [Root Cause Analysis](/pages/product/root_cause_analysis).
  </Accordion>

  <Accordion icon="spinner" title="Live progress updates">
    While Annie investigates, it posts real-time progress in the thread so your team can follow along without waiting for the final analysis.
  </Accordion>

  <Accordion icon="sliders" title="Customize Annie per project">
    Tailor Annie's responses with [Annie Automation](/pages/product/customization/instructions) rules, and use its **Slack identities** list to choose which users and bots Annie auto-processes vs. only answers when tagged. Keep Annie in focused channels (for example `#infra-alerts`) for a high signal-to-noise ratio.
  </Accordion>
</AccordionGroup>

## Register on-call bots

For Annie to investigate alerts automatically, register your monitoring bots (Datadog, PagerDuty, etc.) from any channel where Annie is present:

```bash theme={null}
/register_annie_on_call <slack_id>
```

<Accordion icon="bell" title="Other ways to register a bot">
  The Slack ID can be a user (`U01234ABCDE`), bot (`B01234ABCDE`), or user group (`S01234ABCDE`). To find one, click the profile picture → **⋮** → **Copy member ID**.

  * **Reply in a thread:** post **@Annie listen** under any bot's message and Annie resolves the bot automatically.
  * **In the app:** add it to the **Annie On-Call Registry** on the [Slack Configuration page](https://app.anyshift.io/integrations/messaging/slack).

  Only Organization and Project Admins can register bots (see [Permissions](#permissions)).
</Accordion>

## Other settings

The rest lives on the [Slack Configuration page](https://app.anyshift.io/integrations/messaging/slack), which manages channels, channel access, the on-call registry, on-call engineers, webhook investigation notifications, and report delivery per workspace.

<AccordionGroup>
  <Accordion icon="megaphone" title="Webhook investigation notifications">
    When Annie investigates an alert from a webhook source ([PagerDuty](/pages/integration/pagerduty), [incident.io](/pages/integration/incident-io), and similar), you can control when and where Slack gets notified. Open **Integrations → Slack**, then find **Webhook investigation notifications**.

    Settings are **per project**. If you have more than one project, the card includes a project selector that starts on your navbar default project; change it only when you want to edit a different project's config.

    Use the master switch to enable notifications for the project, then choose which events fire under **Notify on** (start, complete, fail). Under **Destinations**:

    * **Channel from the incident**: Post to the Slack channel the source attached when it provides one (for example an incident.io webhook with `slack_channel_id`). This is not a channel picker; the channel comes from the integration or incident.
    * **Default notify channel**: Fallback when the incident has no Slack channel (for example PagerDuty). The toggle defaults **off**. Turn it on, then pick a channel from the project's mapped Slack channels. That choice is saved as the project's default notify channel.

    If both destinations would resolve to the same channel, Annie posts once (no duplicate).

    Defaults when unset: notify-on events and **Channel from the incident** are on; **Default notify channel** stays off until you opt in.
  </Accordion>

  <Accordion icon="lock" title="Channel Access (allowlist)">
    Limit which Slack channels Annie may join and read from. Useful when you want Annie in specific incident or infra channels without exposing the rest of the workspace.

    1. Open **Integrations → Slack** and expand the workspace.
    2. In **Channel Access**, turn on **Restrict Annie to selected channels**.
    3. Search and check the channels Annie should use, then click **Save**.

    **Public channels** appear in search immediately. **Private channels** must be on the allowlist before you invite Annie — add the channel here first, then invite `@Annie` once so it appears in the list.

    When restriction is on:

    * Invites to channels outside the allowlist are rejected.
    * Annie ignores messages in unauthorized channels and leaves them automatically when possible.
    * You cannot save with the restriction on and zero channels selected (that would lock Annie out everywhere).

    <Tip>
      To auto-remove Annie from unauthorized **private** channels, reinstall the Slack app so it can grant `groups:write`. Without it, Annie still ignores those channels but may remain a member until removed manually.
    </Tip>

    When Channel Access is off, behavior is unchanged: Annie works in any channel you invite it to.
  </Accordion>

  <Accordion icon="user-group" title="On-call engineers">
    In the **On-Call Engineers** section, set who Annie should tag per project when it detects an incident.
  </Accordion>

  <Accordion icon="link" title="Connect your account">
    Link your Slack identity to your [Anyshift account](https://app.anyshift.io/) for personalized responses and access control. Annie prompts you to connect the first time you interact with it.
  </Accordion>
</AccordionGroup>

## Reports & insights

Annie pushes [proactive](/pages/product/proactive_annie) and [custom](/pages/product/reports) reports into Slack: to a shared channel, to DMs with each project member, or both. Each report keeps its context, so any thread reply continues the discussion with Annie.

### Pause report DMs for yourself

Each project member can control their own report DMs without changing delivery for anyone else. Weekly proactive reports and custom reports have separate preferences, and shared channel posts are unaffected.

<Steps>
  <Step title="Open your profile">
    Go to [**My Profile**](https://app.anyshift.io/my-profile), then find **Slack Connection → Report notifications**.
  </Step>

  <Step title="Choose a project">
    If you belong to multiple projects, select the project whose report DMs you want to change. The project selector is hidden when you only have one project.
  </Step>

  <Step title="Choose which reports reach you">
    Turn **Weekly proactive reports** or **Custom reports** on or off. Changes save immediately.
  </Step>
</Steps>

You can also opt out directly from a report DM. Click **Stop weekly report DMs** or **Stop custom report DMs** at the bottom of the message. The message confirms that DMs are paused and shows a **Resume** button if you want to turn them back on.

<Note>
  These personal preferences apply per project. An administrator's **Send via DM** setting controls whether the project sends report DMs at all; your profile switches control whether you personally receive each report category when project DM delivery is enabled.
</Note>

<AccordionGroup>
  <Accordion icon="sliders" title="Choose where reports go">
    On the [Slack Integrations page](https://app.anyshift.io/integrations/messaging/slack), in your project's **Insights** section:

    * **Send via DM** *(default: on):* every member who linked their Slack account gets the report in a DM.
    * **Post to a channel** *(default: off):* pick a channel Annie is in; the report posts with vote buttons and a "View Full Report" link.

    Both can be on at once.
  </Accordion>

  <Accordion icon="envelope" title="Get reports in your DMs">
    Link your Slack account once: DM **@Annie** anything to get a one-time link, click it, and sign in. You'll then appear as Slack-mapped in your project, and Annie DMs you each new report. Link once per workspace.
  </Accordion>

  <Accordion icon="thumbs-up" title="Vote on findings">
    Each proactive finding has **Relevant** and **Ignore** buttons. Votes save against the finding, update every Slack copy (channel post and DMs), and stay in sync with the Anyshift UI. Custom reports use the **View Full Report** link and thread replies instead.
  </Accordion>

  <Accordion icon="comments" title="Continue in a thread">
    Reply in any pushed report's thread. Annie opens a chat tied to that report's session, so it already knows the findings, timeline, and integrations without re-pasting context.
  </Accordion>
</AccordionGroup>

## Permissions

Only **Organization** and **Project Admins** can register bots, remap a channel's project, set on-call engineers, or configure **Channel Access**. Everyone else can ask questions and view results. See [Roles & Permissions](/pages/product/project_management/roles).

## Privacy & security

<AccordionGroup>
  <Accordion icon="shield-halved" title="What Annie can access">
    Annie only reads channels it's explicitly added to, and only data from the mapped project's connected integrations. If **Channel Access** is enabled, Annie is further limited to the channels on your allowlist — it won't join or respond elsewhere.

    Remove Annie from a channel, or uninstall the app, to revoke access immediately.
  </Accordion>

  <Accordion icon="lock" title="How data is secured">
    Workspace tokens are encrypted at rest, and every Slack-to-Anyshift request is verified with Slack's signing secret.
  </Accordion>
</AccordionGroup>

## Get Started

<CardGroup cols={2}>
  <Card title="Open Anyshift" icon="rocket" href="https://app.anyshift.io/integrations/messaging/slack">
    Install the Slack app and start using Annie in your workspace.
  </Card>

  <Card title="Book a Demo" icon="calendar" href="https://calendly.com/anyshift">
    See Annie in action with a personalized walkthrough from our team.
  </Card>
</CardGroup>
