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

# Slack

> Channels, messages, threads, users, and reactions.

Slack is included in Archal's environment catalog. Use it in a sandbox for channels, messages, threads, users, and reactions.

|                 |                                              |
| --------------- | -------------------------------------------- |
| Environment ID  | `slack`                                      |
| Transport       | REST and MCP                                 |
| State           | JSON                                         |
| Contract        | `archal.environment-state.slack` version `1` |
| Channel         | Public                                       |
| Curated samples | 5                                            |

Public is the intended GA channel. It still describes a bounded provider surface, not a promise that every upstream operation exists.

## Compatibility boundary

**Local catalog validation:** All five published samples passed. Checks cover the state contract, relationships, artifact hash, secret scan, and size limit.

<Note>
  Local catalog validation is not hosted proof. Archal checks current certification, reset, and isolation evidence before admitting new sandboxes. Use the authenticated environment catalog for live availability.
</Note>

* Realtime delivery and every Slack platform surface are outside the supported boundary.

## Curated starting states

List the five samples with `archal sample list slack`. Each sample is a versioned starting state with a representative read, mutation, expected diff, reset expectation, and verified artifact hash.

<AccordionGroup>
  <Accordion title="Slack workspace and channel baseline">
    List one workspace channel and create a second channel without message history.

    **Sample ID:** `slack.workspace-channel-baseline.v1`

    **Category:** `minimal`

    **Starting state:** 4 records across `channels`: 1, `users`: 2, `workspaces`: 1

    **Supported surface:** Stateful workspace, channel, message, thread, reaction, file, and collaboration APIs.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.conversations`

    **First read:** `POST /api/conversations.list`. Expected result: HTTP 200.

    **First-read input**

    ```json theme={null}
    {}
    ```

    **Representative mutation:** `POST /api/conversations.create`. Expected result: HTTP 200, 201, 204.

    **Mutation input**

    ```json theme={null}
    {
      "name": "proj-webhook-hardening"
    }
    ```

    **Expected diff:** changes include `channels`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Realtime delivery and every Slack platform surface are outside the supported boundary.

    **Start this sample**

    ```bash theme={null}
    archal sample show slack.workspace-channel-baseline.v1 --raw > archal-slack-workspace-channel-baseline.json
    archal state validate slack archal-slack-workspace-channel-baseline.json
    archal session create slack \
      --state slack=archal-slack-workspace-channel-baseline.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show slack.workspace-channel-baseline.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/slack/workspace-channel-baseline/state.json` and is 4,111 bytes. The CLI verifies SHA-256 `4ae0439cef616989ae6f8f3724f2b416a53edcf7df18b7e3c70b3cf990108a95` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Slack engineering team">
    Exercise channels, users, messages, threads, reactions, files, pins, groups, bookmarks, and reminders for eleven teammates.

    **Sample ID:** `slack.engineering-team.v1`

    **Category:** `small-team`

    **Starting state:** 114 records across `bookmarks`: 2, `channels`: 7, `emojis`: 3, `files`: 2, `messages`: 53, `pins`: 3, `reactions`: 15, `reminders`: 3, `scheduledMessages`: 2, `threads`: 10, `userGroups`: 2, `users`: 11, `workspaces`: 1

    **Supported surface:** Stateful workspace, channel, message, thread, reaction, file, and collaboration APIs.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.conversations`

    **First read:** `POST /api/conversations.list`. Expected result: HTTP 200.

    **First-read input**

    ```json theme={null}
    {}
    ```

    **Representative mutation:** `POST /api/conversations.create`. Expected result: HTTP 200, 201, 204.

    **Mutation input**

    ```json theme={null}
    {
      "name": "proj-webhook-hardening"
    }
    ```

    **Expected diff:** changes include `channels`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Realtime delivery and every Slack platform surface are outside the supported boundary.

    **Start this sample**

    ```bash theme={null}
    archal sample show slack.engineering-team.v1 --raw > archal-slack-engineering-team.json
    archal state validate slack archal-slack-engineering-team.json
    archal session create slack \
      --state slack=archal-slack-engineering-team.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show slack.engineering-team.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/slack/engineering-team/state.json` and is 62,199 bytes. The CLI verifies SHA-256 `40394e191690de022f1e6bdb31d8edc71b507bab2cd46f418feee8919591f8a6` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Slack populated busy workspace">
    Exercise pagination, search, threads, reactions, files, user groups, scheduled messages, and reminders in a busy workspace.

    **Sample ID:** `slack.busy-workspace.v1`

    **Category:** `populated`

    **Starting state:** 145 records across `bookmarks`: 4, `channels`: 14, `emojis`: 5, `files`: 3, `messages`: 63, `pins`: 5, `reactions`: 15, `reminders`: 4, `scheduledMessages`: 3, `threads`: 12, `userGroups`: 3, `users`: 13, `workspaces`: 1

    **Supported surface:** Stateful workspace, channel, message, thread, reaction, file, and collaboration APIs.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.conversations`

    **First read:** `GET /api/conversations.list?limit=5`. Expected result: HTTP 200.

    **Representative mutation:** `POST /api/conversations.create`. Expected result: HTTP 200, 201, 204.

    **Mutation input**

    ```json theme={null}
    {
      "name": "proj-webhook-hardening"
    }
    ```

    **Expected diff:** changes include `channels`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Realtime delivery and every Slack platform surface are outside the supported boundary.

    **Start this sample**

    ```bash theme={null}
    archal sample show slack.busy-workspace.v1 --raw > archal-slack-busy-workspace.json
    archal state validate slack archal-slack-busy-workspace.json
    archal session create slack \
      --state slack=archal-slack-busy-workspace.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show slack.busy-workspace.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/slack/busy-workspace/state.json` and is 78,181 bytes. The CLI verifies SHA-256 `8972d2ec0d27cad731a482b8e0c8d6be15d13aaec107a51c448aadc15a725938` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Slack active SEV-1 incident">
    Inspect INC-2027-014 detection, release correlation, rollback, idempotency, and customer-communication evidence, then post and reset one incident update.

    **Sample ID:** `slack.active-sev1-incident.v1`

    **Category:** `edge-case`

    **Starting state:** 59 records across `channels`: 6, `emojis`: 3, `files`: 2, `messages`: 26, `reactions`: 11, `threads`: 3, `userGroups`: 1, `users`: 6, `workspaces`: 1

    **Supported surface:** Stateful workspace, channel, message, thread, reaction, file, and collaboration APIs.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.conversations`

    **First read:** `POST /api/conversations.history`. Expected result: HTTP 200.

    **First-read input**

    ```json theme={null}
    {
      "channel": "C2003INCIDENTS",
      "limit": 100
    }
    ```

    **Representative mutation:** `POST /api/chat.postMessage`. Expected result: HTTP 200.

    **Mutation input**

    ```json theme={null}
    {
      "channel": "C2003INCIDENTS",
      "text": "INC-2027-014 update: rollback remains healthy; idempotency verification found no duplicate downstream writes.",
      "thread_ts": "1706191200.200004"
    }
    ```

    **Expected diff:** changes include `messages`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Realtime delivery and every Slack platform surface are outside the supported boundary.

    **Start this sample**

    ```bash theme={null}
    archal sample show slack.active-sev1-incident.v1 --raw > archal-slack-active-sev1-incident.json
    archal state validate slack archal-slack-active-sev1-incident.json
    archal session create slack \
      --state slack=archal-slack-active-sev1-incident.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show slack.active-sev1-incident.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/slack/active-sev1-incident/state.json` and is 35,473 bytes. The CLI verifies SHA-256 `1a1f2e26abb1ee34f718c671c7fa78f1975b49ac1837753d154987639235ceb0` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Slack engineering organization workflow">
    Start from an engineering workspace with channels, threads, files, pins, groups, bookmarks, and scheduled messages, then create and reset one channel.

    **Sample ID:** `slack.engineering-organization.v1`

    **Category:** `workflow`

    **Starting state:** 143 records across `bookmarks`: 4, `channels`: 14, `emojis`: 5, `files`: 3, `messages`: 61, `pins`: 5, `reactions`: 15, `reminders`: 4, `scheduledMessages`: 3, `threads`: 12, `userGroups`: 3, `users`: 13, `workspaces`: 1

    **Supported surface:** Stateful workspace, channel, message, thread, reaction, file, and collaboration APIs.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.conversations`

    **First read:** `POST /api/conversations.list`. Expected result: HTTP 200.

    **First-read input**

    ```json theme={null}
    {}
    ```

    **Representative mutation:** `POST /api/conversations.create`. Expected result: HTTP 200, 201, 204.

    **Mutation input**

    ```json theme={null}
    {
      "name": "proj-webhook-hardening"
    }
    ```

    **Expected diff:** changes include `channels`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Realtime delivery and every Slack platform surface are outside the supported boundary.

    **Start this sample**

    ```bash theme={null}
    archal sample show slack.engineering-organization.v1 --raw > archal-slack-engineering-organization.json
    archal state validate slack archal-slack-engineering-organization.json
    archal session create slack \
      --state slack=archal-slack-engineering-organization.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show slack.engineering-organization.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/slack/engineering-organization/state.json` and is 77,501 bytes. The CLI verifies SHA-256 `0cb5e1c290c641c6a183b9448a798a757525f37a0a581fc294c23d7ece3df94a` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>
</AccordionGroup>

## Use custom state

Start from a sample when possible. For custom state, inspect the contract with `archal environment describe slack`, then validate the file before creating a sandbox:

```bash theme={null}
archal state validate slack state.json
```

Loading state replaces the current collections and establishes a new reset baseline. See [Starting state](/sandboxes/starting-state) before replacing state in an existing sandbox.
