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

# Slack

> Report agent misbehavior to Glassray from Slack - the bot finds matching traces, logs a deviation, and scans for more.

Connect Glassray to Slack and your team can report misbehavior, ask questions, and get deviations posted for review - without leaving the channel.

## Connect your workspace

<Steps>
  <Step title="Open integration settings" icon="gear">
    In the dashboard, go to **Settings → Integrations** and find the **Slack** card.
  </Step>

  <Step title="Connect Slack" icon="slack">
    Click **Connect Slack** and authorize the workspace in the popup.
  </Step>

  <Step title="Pick a channel" icon="hashtag">
    Choose the channel Glassray should post deviations to. You can send a test message to confirm it's wired up, then **Save Channel**.
  </Step>

  <Step title="Invite the bot" icon="user-plus">
    Invite the Glassray bot to that channel so it can read threads it's mentioned in and reply.
  </Step>
</Steps>

### Choose when you're notified

Under **Settings → Integrations → Slack**, the **When to notify** control sets how early - and for which severities - deviations get posted to your channel:

* **Lifecycle stage** - **Confirmed only** (default: the quieter setting - wait until Glassray confirms a deviation recurs before posting) or **Suspected onwards** (post as soon as a deviation is first suspected, so you can Confirm it from the card).
* **Minimum severity** - post at **any severity** (default), **major & critical**, or **critical only**.

A 🔎 Suspected card tells you Glassray is looking for more examples to confirm it's a recurring issue, and carries a **Confirm** button - if it's a known issue you're already aware of, confirm it and Glassray proposes a fix right away. Otherwise, once Glassray's own investigation confirms it recurs, the card updates in place: the pill flips to 🟡 Confirmed and the button becomes **Generate fix**.

## Using the bot

Mention **@Glassray** in the channel and describe a misbehavior - or paste a problem, optionally with a trace link. The bot reads the thread and responds in a single reply.

<CardGroup cols={2}>
  <Card title="Finds the evidence" icon="magnifying-glass">
    If you reference a trace, the bot verifies it; if you only describe the behavior, it searches your corpus for matching traces and verifies the best match.
  </Card>

  <Card title="Logs a deviation" icon="ghost">
    When you report a real misbehavior, the bot logs it as a **🔎 Suspected** [deviation](/deviations) from the conversation, attaching the trace it found - a single report isn't yet confirmed to recur.
  </Card>

  <Card title="Scans to confirm it" icon="layer-group">
    After logging it, the bot kicks a deep-search scan for more examples to confirm it's a recurring issue, and posts the results back to the thread. The card carries a **Confirm** button if you already know it's real.
  </Card>

  <Card title="Answers read-only questions" icon="comments">
    Ask "what do you already know about X?" or "is the scan done?" and it just reads and answers - it creates nothing.
  </Card>
</CardGroup>

### Automatic vs. a click

The bot acts within its toolset on its own when you ask it to log a problem or clearly report one - it logs the deviation as **🔎 Suspected** and starts a scan to confirm it recurs, then posts a deviation **card** to your channel. From that card you can **Confirm** it (if you already know it's a real problem - that proposes a fix) or **Dismiss** it. For read-only questions it never creates anything.

<Info>
  Members of your own workspace get the full toolset; external collaborators connected through Slack get a safe read-and-report subset and can't trigger broad, metered scans.
</Info>

## Security

<Check>
  The Slack agent's reasoning loop has **no direct Slack access** - reading the thread and posting the reply are handled by Glassray's runner, not by the model. The thread is treated as untrusted input: instructions inside it never override the agent's rules or expand its toolset.
</Check>
