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

# Slack (Bot)

> Slackbot gives agents workspace-wide read access to a Slack workspace on behalf of the installing user - search messages and files, browse channel and thread history, and look up u

Slackbot gives agents workspace-wide read access to a Slack workspace on behalf of the installing user - search messages and files, browse channel and thread history, and look up users and channels - while continuing to post and react as the bot. Includes direct messages and user email addresses so agents can search across DMs and resolve users by email.

`slackbot` · **101 tools** · **9 triggers**

## Connect it

```bash theme={"theme":"github-dark"}
run auth slackbot
run auth slackbot --scope team    # shared with the organization
```

Or from the [Integrations page](https://app.boxd.sh/integrations) in the console. See [Connections](/guides/integrations/connections) for personal versus shared, and who may remove one.

## Use it

```bash theme={"theme":"github-dark"}
run slackbot          # common commands
run slackbot --all    # every command
```

```ts theme={"theme":"github-dark"}
import { slackbot } from "@boxd/run";
```

## Common tools

| Tool                            | What it does                                                                                                                                            |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `add-reaction-to-item`          | Adds a specified emoji reaction to an existing message in a Slack channel, identified by its timestamp; does not remove or retrieve reactions.          |
| `create-reminder`               | Creates a Slack reminder with specified text and time; time accepts Unix timestamps, seconds from now, or natural language (e.g., 'in 15 minutes'...    |
| `create-canvas`                 | Creates a new Slack Canvas with the specified title and optional content.                                                                               |
| `create-list`                   | Creates a new Slack List via `slackLists.create`. Provide a `name` and, optionally, a `description_blocks` description and a `schema` of typed columns. |
| `create-list-item`              | Creates a new item (row) in a Slack List via `slackLists.items.create`.                                                                                 |
| `delete-canvas`                 | Deletes a Slack Canvas permanently and irreversibly. Always confirm with the user before calling this tool.                                             |
| `delete-list-access`            | Revokes sharing access on a Slack List via `slackLists.access.delete`.                                                                                  |
| `delete-list-item`              | Deletes an item (row) from a Slack List via `slackLists.items.delete`.                                                                                  |
| `delete-multiple-list-items`    | Deletes several items (rows) from a Slack List in one call via `slackLists.items.deleteMultiple`.                                                       |
| `download-file`                 | Tool to download Slack file content and convert it to a publicly accessible URL.                                                                        |
| `edit-canvas`                   | Edits a Slack Canvas with granular control over content placement.                                                                                      |
| `fetch-conversation-history`    | Fetches a chronological list of messages and events from a specified Slack conversation, accessible by the authenticated user/bot, with options for...  |
| `find-channels`                 | Find channels in a Slack workspace by any criteria - name, topic, purpose, or description.                                                              |
| `find-users`                    | Find users in a Slack workspace by any criteria - email, name, display name, or other text.                                                             |
| `get-canvas`                    | DEPRECATED: Use SLACK\_RETRIEVE\_DETAILED\_INFORMATION\_ABOUT\_FILE instead.                                                                            |
| `get-list-item`                 | Fetches a single item (row) from a Slack List via `slackLists.items.info`.                                                                              |
| `get-unread-messages-from-user` | Retrieves unread direct messages from a specific user by opening their DM conversation, checking for unread messages, and fetching message history...   |
| `list-all-channels`             | Lists conversations available to the user with various filters and search options.                                                                      |
| `list-all-users`                | Retrieves a paginated list of all users with profile details, status, and team memberships in a Slack workspace; data may not be real-time.             |
| `list-available-workspaces`     | List Slack workspaces where both the connection and target user have access.                                                                            |
| `list-canvases`                 | DEPRECATED: Use SLACK\_LIST\_FILES\_WITH\_FILTERS\_IN\_SLACK instead (pass types="canvas" for equivalent behavior).                                     |
| `list-list-items`               | Lists the rows (items) in a Slack List via `slackLists.items.list`.                                                                                     |
| `list-unread-channel-messages`  | Lists all unread messages in a specified Slack channel for the authenticated user.                                                                      |
| `lookup-canvas-sections`        | Looks up section IDs in a Slack Canvas for use with targeted edit operations.                                                                           |
| `remove-reaction-from-item`     | Removes an emoji reaction from a message, file, or file comment in Slack.                                                                               |

<Accordion title="All 100 tools" icon="list">
  | Tool                                       | What it does                                                                                                                                                              |
  | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `add-call-participants`                    | Registers new participants added to a Slack call.                                                                                                                         |
  | `add-reaction-to-item`                     | Adds a specified emoji reaction to an existing message in a Slack channel, identified by its timestamp; does not remove or retrieve reactions.                            |
  | `add-remote-file`                          | Adds a reference to an external file (e.g., Google Drive, Dropbox) to Slack for discovery and sharing, requiring a unique `external_id` and an...                         |
  | `archive-conversation`                     | Archives a Slack conversation by its ID, rendering it read-only and hidden while retaining history, ideal for cleaning up inactive channels; be aware...                  |
  | `close-dm`                                 | Closes a Slack direct message (DM) or multi-person direct message (MPDM) channel, removing it from the user's sidebar without deleting history; this...                   |
  | `create-reminder`                          | Creates a Slack reminder with specified text and time; time accepts Unix timestamps, seconds from now, or natural language (e.g., 'in 15 minutes'...                      |
  | `create-canvas`                            | Creates a new Slack Canvas with the specified title and optional content.                                                                                                 |
  | `create-channel`                           | Initiates a public or private channel-based conversation in a Slack workspace.                                                                                            |
  | `create-list`                              | Creates a new Slack List via `slackLists.create`. Provide a `name` and, optionally, a `description_blocks` description and a `schema` of typed columns.                   |
  | `create-list-item`                         | Creates a new item (row) in a Slack List via `slackLists.items.create`.                                                                                                   |
  | `create-user-group`                        | Creates a new User Group (often referred to as a subteam) in a Slack workspace.                                                                                           |
  | `customize-url-unfurl`                     | Customizes URL previews (unfurling) in a specific Slack message using a URL-encoded JSON in `unfurls` to define custom content or remove existing previews.               |
  | `delete-canvas`                            | Deletes a Slack Canvas permanently and irreversibly. Always confirm with the user before calling this tool.                                                               |
  | `delete-file`                              | Permanently deletes an existing file from a Slack workspace using its unique file ID; this action is irreversible and also removes any associated comments or shares.     |
  | `delete-file-comment`                      | Deletes a specific comment from a file in Slack; this action is irreversible.                                                                                             |
  | `delete-list-access`                       | Revokes sharing access on a Slack List via `slackLists.access.delete`.                                                                                                    |
  | `delete-list-item`                         | Deletes an item (row) from a Slack List via `slackLists.items.delete`.                                                                                                    |
  | `delete-multiple-list-items`               | Deletes several items (rows) from a Slack List in one call via `slackLists.items.deleteMultiple`.                                                                         |
  | `delete-reminder`                          | Deletes an existing Slack reminder, typically when it is no longer relevant or a task is completed; this operation is irreversible.                                       |
  | `deletes-message-from-chat`                | Deletes a message, identified by its channel ID and timestamp, from a Slack channel, private group, or direct message conversation; the authenticated...                  |
  | `delete-scheduled-message`                 | Deletes a pending, unsent scheduled message from the specified Slack channel, identified by its `scheduled_message_id`.                                                   |
  | `disable-user-group`                       | Disables a specified, currently enabled Slack User Group by its unique ID, effectively archiving it by setting its 'date\_delete' timestamp; the group...                 |
  | `download-file`                            | Tool to download Slack file content and convert it to a publicly accessible URL.                                                                                          |
  | `edit-canvas`                              | Edits a Slack Canvas with granular control over content placement.                                                                                                        |
  | `enable-public-sharing-of-file`            | Enables public sharing for an existing Slack file by generating a publicly accessible URL; this action does not create new files.                                         |
  | `enable-user-group`                        | Enables a disabled User Group in Slack using its ID, reactivating it for mentions and permissions; this action only changes the enabled status and...                     |
  | `end-call`                                 | Ends an ongoing Slack call, identified by its ID (obtained from `calls.add`), optionally specifying the call's duration.                                                  |
  | `fetch-conversation-history`               | Fetches a chronological list of messages and events from a specified Slack conversation, accessible by the authenticated user/bot, with options for...                    |
  | `fetch-item-reactions`                     | Fetches reactions for a Slack message, file, or file comment.                                                                                                             |
  | `fetch-message-thread-from-conversation`   | Retrieves replies to a specific parent message in a Slack conversation, using the channel ID and the parent message's timestamp (`ts`).                                   |
  | `fetch-team-info`                          | Fetches comprehensive metadata about the current Slack team, or a specified team if the provided ID is accessible.                                                        |
  | `find-channels`                            | Find channels in a Slack workspace by any criteria - name, topic, purpose, or description.                                                                                |
  | `find-user-by-email-address`               | Retrieves the Slack user object for an active user by their registered email address; requires the users:read.email OAuth scope.                                          |
  | `find-users`                               | Find users in a Slack workspace by any criteria - email, name, display name, or other text.                                                                               |
  | `get-bot-user`                             | Fetches information for a specified, existing Slack bot user; will not work for regular user accounts or other integration types.                                         |
  | `get-call-info`                            | Retrieves a point-in-time snapshot of a specific Slack call's information.                                                                                                |
  | `get-canvas`                               | DEPRECATED: Use SLACK\_RETRIEVE\_DETAILED\_INFORMATION\_ABOUT\_FILE instead.                                                                                              |
  | `get-list-item`                            | Fetches a single item (row) from a Slack List via `slackLists.items.info`.                                                                                                |
  | `get-reminder`                             | Retrieves detailed information for an existing Slack reminder specified by its ID; this is a read-only operation.                                                         |
  | `get-remote-file`                          | Retrieve information about a remote file added to Slack via the files.remote API.                                                                                         |
  | `get-team-profile`                         | Retrieves all profile field definitions for a Slack team, optionally filtered by visibility, to understand the team's profile structure.                                  |
  | `get-unread-messages-from-user`            | Retrieves unread direct messages from a specific user by opening their DM conversation, checking for unread messages, and fetching message history...                     |
  | `get-user-dnd-status`                      | Retrieves a user's current Do Not Disturb status.                                                                                                                         |
  | `get-user-presence`                        | Retrieves a Slack user's current real-time presence (e.g., 'active', 'away') to determine their availability, noting this action does not provide...                      |
  | `invite-users-to-channel`                  | Invites users to an existing Slack channel using their valid Slack User IDs.                                                                                              |
  | `join-existing-conversation`               | Joins an existing Slack conversation (public channel, private channel, or multi-person direct message) by its ID, if the authenticated user has permission.               |
  | `leave-conversation`                       | Leaves a Slack conversation given its channel ID; fails if leaving as the last member of a private channel or if used on a Slack Connect channel.                         |
  | `list-all-channels`                        | Lists conversations available to the user with various filters and search options.                                                                                        |
  | `list-all-users`                           | Retrieves a paginated list of all users with profile details, status, and team memberships in a Slack workspace; data may not be real-time.                               |
  | `list-available-workspaces`                | List Slack workspaces where both the connection and target user have access.                                                                                              |
  | `list-canvases`                            | DEPRECATED: Use SLACK\_LIST\_FILES\_WITH\_FILTERS\_IN\_SLACK instead (pass types="canvas" for equivalent behavior).                                                       |
  | `list-conversations`                       | List conversations (channels/DMs) accessible to a specified user (or the authenticated user if no user ID is provided), respecting shared membership...                   |
  | `list-custom-emojis`                       | Retrieves all custom emojis for the Slack workspace (image URLs or aliases), not standard Unicode emojis; does not include usage statistics or creation dates.            |
  | `list-files-with-filters-in-slack`         | Lists files and their metadata within a Slack workspace, filterable by user, channel, timestamp, or type; returns metadata only, not file content.                        |
  | `list-list-items`                          | Lists the rows (items) in a Slack List via `slackLists.items.list`.                                                                                                       |
  | `list-pinned-items`                        | Retrieves all messages and files pinned to a specified channel; the caller must have access to this channel.                                                              |
  | `list-reminders`                           | Lists all reminders with their details for the authenticated Slack user; returns an empty array if no reminders exist (valid state, not an error).                        |
  | `list-remote-files`                        | Retrieve information about a team's remote files.                                                                                                                         |
  | `list-unread-channel-messages`             | Lists all unread messages in a specified Slack channel for the authenticated user.                                                                                        |
  | `list-user-group-members`                  | Retrieves a list of all user IDs within a specified Slack user group, with an option to include users from disabled groups.                                               |
  | `list-user-groups`                         | Lists user groups in a Slack workspace, including user-created and default groups; results for large workspaces may be paginated.                                         |
  | `list-user-reactions`                      | Lists all reactions added by a specific user to messages, files, or file comments in Slack, useful for engagement analysis when the item content itself is not required.  |
  | `lookup-canvas-sections`                   | Looks up section IDs in a Slack Canvas for use with targeted edit operations.                                                                                             |
  | `open-dm`                                  | Opens or resumes a Slack direct message (DM) or multi-person direct message (MPIM) by providing either user IDs or an existing channel ID.                                |
  | `pin-item`                                 | Pins a message to a specified Slack channel; the message must not already be pinned.                                                                                      |
  | `remove-call-participants`                 | Registers participants removed from a Slack call.                                                                                                                         |
  | `remove-reaction-from-item`                | Removes an emoji reaction from a message, file, or file comment in Slack.                                                                                                 |
  | `remove-remote-file`                       | Removes the Slack reference to an external file (which must have been previously added via the remote files API), specified by either its...                              |
  | `remove-user-from-conversation`            | Removes a specified user from a Slack conversation (channel); the caller must have permissions to remove users and cannot remove themselves using this action.            |
  | `rename-conversation`                      | Renames a Slack channel, automatically adjusting the new name to meet naming conventions (e.g., converting to lowercase), which may affect...                             |
  | `retrieve-conversation-information`        | Retrieves metadata for a Slack conversation by ID (e.g., name, purpose, creation date, with options for member count/locale), excluding message content.                  |
  | `retrieve-conversation-members-list`       | Retrieves a paginated list of active member IDs (not names, emails, or presence) for a specified Slack public channel, private channel, DM, or MPIM.                      |
  | `retrieve-current-user-dnd-status`         | Retrieves a Slack user's current Do Not Disturb (DND) status to determine their availability before interaction; any specified user ID must be a valid Slack user ID.     |
  | `retrieve-detailed-information-about-file` | Retrieves detailed metadata and paginated comments for a specific Slack file ID; does not download file content.                                                          |
  | `retrieve-detailed-user-information`       | Retrieves comprehensive information for a valid Slack user ID, excluding message history and channel memberships.                                                         |
  | `retrieve-user-profile-information`        | Retrieves profile information for a specified Slack user (defaults to the authenticated user if `user` ID is omitted); a provided `user` ID must be valid.                |
  | `revoke-file-public-sharing`               | Revokes a Slack file's public URL, making it private; this is a no-op if not already public and is irreversible.                                                          |
  | `schedule-message`                         | Schedules a message to a Slack channel, DM, or private group for a future time (`post_at`), requiring `text`, `blocks`, or `attachments` for content...                   |
  | `search-all`                               | Tool to search all messages and files. Use when you need unified content search across channels and files in one call.                                                    |
  | `search-messages`                          | Workspace‑wide Slack message search with date ranges and filters.                                                                                                         |
  | `send-ephemeral-message`                   | Sends an ephemeral message visible only to the specified `user` in a channel; other channel members cannot see it.                                                        |
  | `send-me-message`                          | Sends a 'me message' (e.g., '/me is typing') to a Slack channel, where it's displayed as a third-person user action; messages are plain text and the...                   |
  | `send-message`                             | Posts a message to a Slack channel, DM, or private group. Provide exactly one visible content mode: `markdown_text` for normal Markdown content, or...                    |
  | `set-conversation-purpose`                 | Sets the purpose (a short description of its topic/goal, displayed in the header) for a Slack conversation; the calling user must be a member.                            |
  | `set-list-access`                          | Grants or sets sharing access on a Slack List via `slackLists.access.set`.                                                                                                |
  | `set-read-cursor-in-conversation`          | Marks a message, specified by its timestamp (`ts`), as the most recently read for the authenticated user in the given `channel`, provided the user is...                  |
  | `set-topic-of-conversation`                | Sets or updates the topic for a specified Slack conversation.                                                                                                             |
  | `set-user-active`                          | Tool to mark a user as active in Slack. Note: This endpoint is deprecated and non-functional - it exists for backwards compatibility but does not perform any action.     |
  | `set-user-presence`                        | Manually sets a user's Slack presence, overriding automatic detection; this setting persists across connections but can be overridden by user actions...                  |
  | `share-remote-file`                        | Shares a remote file, which must already be registered with Slack, into specified Slack channels or direct message conversations.                                         |
  | `start-call`                               | Registers a new call in Slack using `calls.add` for third-party call integration; `created_by` is required if not using a user-specific token.                            |
  | `unarchive-channel`                        | Reverses conversation archival.                                                                                                                                           |
  | `unpin-item`                               | Unpins a message, identified by its timestamp, from a specified channel if the message is currently pinned there; this operation is destructive.                          |
  | `update-call-info`                         | Updates the title, join URL, or desktop app join URL for an existing Slack call identified by its ID.                                                                     |
  | `update-list`                              | Updates a Slack List's metadata via `slackLists.update`. Only the List's `name`, `description_blocks`, and `todo_mode` are editable here.                                 |
  | `update-list-item`                         | Updates one or more cells in an EXISTING Slack List row via `slackLists.items.update`.                                                                                    |
  | `update-remote-file`                       | Updates metadata or content details for an existing remote file in Slack; this action cannot upload new files or change the fundamental file type.                        |
  | `updates-message`                          | Updates a Slack message by timestamp. Provide exactly one visible content mode: `markdown_text` for normal Markdown content, or `blocks` for raw Slack Block Kit layouts. |
  | `update-user-group`                        | Updates an existing Slack User Group, which must be specified by an existing `usergroup` ID, with new optional details such as its name, description...                   |
  | `update-user-group-members`                | Replaces all members of an existing Slack User Group with a new list of valid user IDs.                                                                                   |
</Accordion>

## Triggers (9)

Subscribe with `.on(...)` in a script. A trigger with required configuration takes it as the second argument.

| Trigger                          | Needs   | What fires it                                                        |
| -------------------------------- | ------- | -------------------------------------------------------------------- |
| New Channel Created Trigger      | nothing | Triggered when a new channel is created in Slack.                    |
| Channel Message Received         | nothing | Triggered when a message is posted in a Slack channel                |
| Direct Message Received          | nothing | Triggered when a new direct message (DM) is sent to a user in Slack. |
| Message Reaction Added           | nothing | Triggered when a reaction is added to a message in Slack.            |
| Message Reaction Removed         | nothing | Triggered when a reaction is removed from a message in Slack.        |
| Reaction Added Trigger           | nothing | DEPRECATED: use `SLACK_MESSAGE_REACTION_ADDED` instead.              |
| Reaction Removed Trigger         | nothing | DEPRECATED: use `SLACK_MESSAGE_REACTION_REMOVED` instead.            |
| New Bot Message Received Trigger | nothing | DEPRECATED: use `SLACK_CHANNEL_MESSAGE_RECEIVED` with                |
| New Message Received Trigger     | nothing | DEPRECATED: use `SLACK_CHANNEL_MESSAGE_RECEIVED` instead.            |

[Open Slack (Bot) in the console →](https://app.boxd.sh/integrations/detail/slackbot)
