> ## 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 means the environment is released and startable. 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.

* 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.

> [accordion] 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] 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] 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] 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] 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.

## 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](https://docs.archal.ai/sandboxes/starting-state.md) before replacing state in an existing sandbox.


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