# Slack

Your Toolhouse AI Worker can connect to Slack using 150 specialized tools.

## Auth Connection

This service requires an auth connection to use its tools. You can set this up in your Toolhouse dashboard under [Auth Connections](https://toolhouse.app/auth-connections?authkit_slugs=slack).

## Tools (150)

### `Slack Add Call Participants`

Integration name: **SLACK\_ADD\_CALL\_PARTICIPANTS**

Registers new participants added to a Slack call.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                         | Description                                                                                                                                                                                                                                                                      |
| --------- | ------ | :------: | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`      | string |     ✅    | `"R0123456789"`                 | ID of the call returned by the add method.                                                                                                                                                                                                                                       |
| `users`   | string |     ✅    | `"[{\"slack_id\": \"U1H77\"}]"` | The list of users to add as participants in the call. users is a JSON array (formatted as a string) containing information for each user. Each element must include a `slack_id`. For example: `[{"slack_id": "U1H77"}]` or `[{"slack_id": "U1H77"}, {"slack_id": "U2ABC123"}]`. |

***

### `Slack Add Emoji`

Integration name: **SLACK\_ADD\_EMOJI**

Adds a custom emoji to a Slack workspace given a unique name and an image URL; subject to workspace emoji limits.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                                       | Description                                                                                                                                                                                                                                                |
| --------- | ------ | :------: | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `url`     | string |     ✅    | `"https://example.com/emoji/partyparrot.gif"` | The URL of the image file to be used as the custom emoji. The image should be accessible via HTTP/HTTPS and meet Slack's emoji requirements (e.g., size, format). Supported formats typically include PNG, GIF, and JPEG.                                  |
| `name`    | string |     ✅    | `"partyparrot"`                               | The desired name for the new custom emoji. This name will be used to invoke the emoji (e.g., if name is 'partyparrot', it's used as ':partyparrot:'). Colons around the name are not required when providing this field. Must use lower-case letters only. |

***

### `Slack Add Emoji Alias`

Integration name: **SLACK\_ADD\_EMOJI\_ALIAS**

Adds an alias for an existing custom emoji in a Slack Enterprise Grid organization.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter   | Type   | Required | Example          | Description                                                                                                                                                                                                                           |
| ----------- | ------ | :------: | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | string |     ✅    | `"parrot_alias"` | The new alias to be created for the emoji specified in `alias_for` (e.g., `new_emoji_alias`). Colons around the name (e.g., `:my_alias:`) are optional and will be automatically trimmed, along with any leading/trailing whitespace. |
| `alias_for` | string |     ✅    | `"party_parrot"` | The canonical name of the existing custom emoji (e.g., `original_emoji`).                                                                                                                                                             |

***

### `Slack Add Enterprise User To Workspace`

Integration name: **SLACK\_ADD\_ENTERPRISE\_USER\_TO\_WORKSPACE**

Adds an Enterprise user to a workspace. Use when you need to assign an existing Enterprise Grid user to a specific workspace with optional guest restrictions.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter             | Type    | Required | Example                     | Description                                                                                                                                        |
| --------------------- | ------- | :------: | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `team_id`             | string  |     ✅    | `"T0AB0BSTDV5"`             | The ID of the workspace (e.g., T1234567890) where the user will be added.                                                                          |
| `user_id`             | string  |     ✅    | `"U0984HARZHQ"`             | The ID of the user to add to the workspace.                                                                                                        |
| `channel_ids`         | string  |          | `"C1234567890,C0987654321"` | Comma separated values of channel IDs to add user in the new workspace.                                                                            |
| `is_restricted`       | boolean |          | —                           | True if user should be added to the workspace as a guest. Guests can access only the channels they are invited to.                                 |
| `is_ultra_restricted` | boolean |          | —                           | True if user should be added to the workspace as a single-channel guest. Single-channel guests can only access one channel (plus DMs and Huddles). |

***

### `Slack Add Reaction To An Item`

Integration name: **SLACK\_ADD\_REACTION\_TO\_AN\_ITEM**

Adds a specified emoji reaction to an existing message in a Slack channel, identified by its timestamp; does not remove or retrieve reactions.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter   | Type   | Required | Example               | Description                                                                                                                                                                                                                                                                                                                      |
| ----------- | ------ | :------: | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | string |     ✅    | `"thumbsup"`          | Name of the emoji to add as a reaction (e.g., 'thumbsup'). This is the emoji name without colons. For emojis with skin tone modifiers, append '::skin-tone-X' where X is a number from 2 to 6 (e.g., 'wave::skin-tone-3'). The emoji must already exist in the workspace; custom or non-existent emoji names will fail silently. |
| `channel`   | string |     ✅    | `"C1234567890"`       | ID of the channel where the message to add the reaction to was posted.                                                                                                                                                                                                                                                           |
| `timestamp` | string |     ✅    | `"1234567890.123456"` | Timestamp of the message to which the reaction will be added. This is a unique identifier for the message, typically a string representing a float value like '1234567890.123456'. Must be the exact message timestamp; permalinks or approximate values will not work.                                                          |

***

### `Slack Add Remote File`

Integration name: **SLACK\_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 `external_url` accessible by Slack.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                 | Type   | Required | Example                                                                                                    | Description                                                                                                                    |
| ------------------------- | ------ | :------: | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `title`                   | string |     ✅    | `"Project Proposal Q3.docx"`                                                                               | Title of the remote file to be displayed in Slack.                                                                             |
| `filetype`                | string |          | `"pdf"`                                                                                                    | File type (e.g., 'pdf', 'docx', 'png') to help Slack display appropriate icons or previews.                                    |
| `external_id`             | string |     ✅    | `"file-abc-123-xyz-789"`                                                                                   | Unique identifier for the file, defined by the calling application, used for future API references (e.g., updating, deleting). |
| `external_url`            | string |     ✅    | `"https://example.com/path/to/your/file.pdf"`                                                              | Publicly accessible or permissioned URL of the remote file, used by Slack to access its content or metadata.                   |
| `preview_image`           | string |          | `"(base64 encoded PNG data of a chart)"`                                                                   | Base64-encoded image (e.g., PNG, JPEG) used as the file's preview in Slack.                                                    |
| `indexable_file_contents` | string |          | `"This document contains project plans for Q4, focusing on market expansion and new product development."` | Plain text content of the file, indexed by Slack for search.                                                                   |

***

### `Slack Add Star`

Integration name: **SLACK\_ADD\_STAR**

Stars a channel, file, file comment, or a specific message in Slack.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter      | Type   | Required | Example               | Description                                                                                                                                             |
| -------------- | ------ | :------: | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file`         | string |          | `"F1234567890"`       | ID of the file to add a star to.                                                                                                                        |
| `channel`      | string |          | `"C1234567890"`       | ID of the channel to star. If starring a specific message, this is the ID of the channel containing the message, and `timestamp` must also be provided. |
| `timestamp`    | string |          | `"1234567890.123456"` | Timestamp of the message to add a star to. This uniquely identifies the message within the specified `channel`. Requires `channel` to also be provided. |
| `file_comment` | string |          | `"Fc1234567890"`      | ID of the file comment to add a star to.                                                                                                                |

***

### `Slack Admin Conversations Search`

Integration name: **SLACK\_ADMIN\_CONVERSATIONS\_SEARCH**

Tool to search for public or private channels in an Enterprise organization. Use when you need to find channels by name, type, or other criteria within an Enterprise Grid workspace.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type    | Required | Example                  | Description                                                                                               |
| ---------------------- | ------- | :------: | ------------------------ | --------------------------------------------------------------------------------------------------------- |
| `sort`                 | string  |          | `"relevant"`             | Sort method for channel search results.                                                                   |
| `limit`                | integer |          | `10`                     | Maximum number of items to be returned. Must be between 1 - 20 both inclusive. Default is 10.             |
| `query`                | string  |          | `"general"`              | Name of the channel to query by.                                                                          |
| `cursor`               | string  |          | `"dXNlcjpVMDYxREk0Nlc="` | Set cursor to next\_cursor returned by the previous call to list items in the next page.                  |
| `sort_dir`             | string  |          | `"asc"`                  | Sort direction for channel search results.                                                                |
| `team_ids`             | string  |          | `"T1234567890"`          | Comma separated string of team IDs, signifying the workspaces to search through.                          |
| `total_count_only`     | boolean |          | `true`                   | Only return the total\_count of channels. Omits channel data and does not require full admin permissions. |
| `connected_team_ids`   | string  |          | `"T1234567890"`          | Comma separated string of encoded team IDs, signifying the external organizations to search through.      |
| `search_channel_types` | string  |          | `"private"`              | The type of channel to include or exclude in the search.                                                  |

***

### `Slack Api Test`

Integration name: **SLACK\_API\_TEST**

Tool to check API calling code by testing connectivity and authentication to the Slack API. Use when you need to verify that API credentials are valid and the connection is working properly.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example      | Description                                                                                                    |
| --------- | ------ | :------: | ------------ | -------------------------------------------------------------------------------------------------------------- |
| `foo`     | string |          | `"bar"`      | Example property to return in the response. This can be any arbitrary string value to test echo functionality. |
| `error`   | string |          | `"my_error"` | Error response to return. Use this parameter to test error handling by simulating various error responses.     |

***

### `Slack Archive Conversation`

Integration name: **SLACK\_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 that some channels (like #general or certain DMs) cannot be archived and this may impact connected integrations.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                             |
| --------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------------------------------- |
| `channel` | string |          | `"C1234567890"` | ID of the Slack conversation to archive. This ID uniquely identifies a channel (e.g., public, private). |

***

### `Slack Assistant Search Context`

Integration name: **SLACK\_ASSISTANT\_SEARCH\_CONTEXT**

Search Slack messages, files, channels, and users via Real-time Search API. For queries referencing entities by name (users/channels/files), first resolve with content\_types (users/channels/files) to get exact ID. If multiple matches, ask user to clarify before proceeding (e.g. ask for user email).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                   | Type    | Required | Example                             | Description                                                                                                                                                                                                                                                                                                     |
| --------------------------- | ------- | :------: | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sort`                      | string  |          | `"score"`                           | Sort results by 'score' (relevance) or 'timestamp' (chronological). Defaults to score.                                                                                                                                                                                                                          |
| `after`                     | integer |          | `1704153600`                        | Unix timestamp. Only return results from after this date.                                                                                                                                                                                                                                                       |
| `limit`                     | integer |          | `5`                                 | Maximum number of results per page. Max 20. Defaults to 20.                                                                                                                                                                                                                                                     |
| `query`                     | string  |     ✅    | `"What is project gizmo?"`          | Search query. Supports both keyword search and natural language questions. Natural language queries (starting with what/where/how or ending with ?) trigger semantic search if available on the workspace. Supports OR operator for multiple terms: "deployment issues with kubernetes OR docker OR terraform". |
| `before`                    | integer |          | `1704240000`                        | Unix timestamp. Only return results from before this date.                                                                                                                                                                                                                                                      |
| `cursor`                    | string  |          | `"dXNlcjpVMEc5V0ZYTlo="`            | Pagination cursor from a previous response's next\_cursor field.                                                                                                                                                                                                                                                |
| `sort_dir`                  | string  |          | `"asc"`                             | Sort direction: 'asc' (ascending) or 'desc' (descending). Defaults to desc.                                                                                                                                                                                                                                     |
| `highlight`                 | boolean |          | `true`                              | Highlight matching search terms in the results.                                                                                                                                                                                                                                                                 |
| `modifiers`                 | string  |          | `"has:pin"`                         | Additional search modifiers in 'modifier:value' format. E.g., 'has:pin before:yesterday is:thread'.                                                                                                                                                                                                             |
| `action_token`              | string  |          | —                                   | Action token from a Slack event payload. Required when using a bot token. Not needed for user tokens.                                                                                                                                                                                                           |
| `include_bots`              | boolean |          | `true`                              | Include bot messages in search results.                                                                                                                                                                                                                                                                         |
| `term_clauses`              | array   |          | `["kubernetes","deployment error"]` | List of search term clauses for conjunctive matching. Results must match every clause specified. Each clause is a string with one or more search terms.                                                                                                                                                         |
| `channel_types`             | string  |          | `"im"`                              | Comma-separated channel types to include: public\_channel, private\_channel, mpim, im. Defaults to all channel types.                                                                                                                                                                                           |
| `content_types`             | string  |          | `"messages"`                        | Comma-separated content types to search: messages, files, channels, users. Defaults to messages.                                                                                                                                                                                                                |
| `context_channel_id`        | string  |          | `"C1234567890"`                     | Provide channel context for the search. Note: this parameter provides a contextual hint but may not strictly filter results to only this channel. To reliably restrict results to a specific channel, use the 'modifiers' parameter with 'in:channel\_name' instead.                                            |
| `include_deleted_users`     | boolean |          | `true`                              | Include deleted users in search results. Defaults to false.                                                                                                                                                                                                                                                     |
| `include_message_blocks`    | boolean |          | `true`                              | Return message blocks in the response.                                                                                                                                                                                                                                                                          |
| `disable_semantic_search`   | boolean |          | `true`                              | When true, forces keyword-only search even if the workspace has AI/semantic search available. Use this when SLACK\_ASSISTANT\_SEARCH\_INFO returns is\_ai\_search\_enabled=false, or when you explicitly want keyword matching.                                                                                 |
| `include_context_messages`  | boolean |          | `true`                              | Include surrounding messages before and after each result for conversational context.                                                                                                                                                                                                                           |
| `include_archived_channels` | boolean |          | `true`                              | Include results from archived channels.                                                                                                                                                                                                                                                                         |

***

### `Slack Assistant Search Info`

Integration name: **SLACK\_ASSISTANT\_SEARCH\_INFO**

Check if semantic (AI-powered) search is available on the Slack workspace. Returns whether natural language queries will trigger semantic search in assistant.search.context calls.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack Close Dm`

Integration name: **SLACK\_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 action affects only the calling user's view.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                        |
| --------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------------------------------------------ |
| `channel` | string |     ✅    | `"D1234567890"` | The ID of the direct message or multi-person direct message channel to close. Example: D1234567890 or G0123456789. |

***

### `Slack Convert Channel To Private`

Integration name: **SLACK\_CONVERT\_CHANNEL\_TO\_PRIVATE**

Convert a public Slack channel to private using the Admin API. This is an Enterprise Grid only feature and requires an org-installed user token with admin.conversations:write scope.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example                  | Description                                                                                     |
| ------------ | ------ | :------: | ------------------------ | ----------------------------------------------------------------------------------------------- |
| `name`       | string |          | `"private-team-channel"` | Optional name parameter. Only respected when converting an MPIM (multi-person instant message). |
| `channel_id` | string |     ✅    | `"C1234567890"`          | The ID of the public channel to convert to private. Required parameter.                         |

***

### `Slack Create A Reminder`

Integration name: **SLACK\_CREATE\_A\_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', 'every Thursday at 2pm').

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| --------- | ------ | :------: | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `text`    | string |     ✅    | `"Submit weekly report"` | The textual content of the reminder message.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `time`    | string |     ✅    | `"1735689600"`           | Specifies when the reminder should occur. This can be a Unix timestamp (integer, up to five years from now), the number of seconds until the reminder (integer, if within 24 hours, e.g., '300' for 5 minutes), or a natural language description (string, e.g., "in 15 minutes," or "every Thursday at 2pm", "daily"). For recurring reminders, express the recurrence in this field using natural language (e.g., 'every day at 9am', 'every Monday at 10am'). Natural language is parsed relative to the user's workspace timezone; use Unix timestamps when target timezone is uncertain. |
| `user`    | string |          | `"U012AB3CD4E"`          | The ID of the user who will receive the reminder (e.g., 'U012AB3CD4E'). If not specified, the reminder will be sent to the user who created it. NOTE: Setting reminders for other users is no longer supported for user tokens - only bot tokens can set reminders for other users.                                                                                                                                                                                                                                                                                                           |
| `team_id` | string |          | `"T1234567890"`          | Encoded team id. Required if using an org-level token to specify which workspace the reminder should be created in.                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

***

### `Slack Create Canvas`

Integration name: **SLACK\_CREATE\_CANVAS**

Creates a new Slack Canvas with the specified title and optional content.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type   | Required | Example                                                              | Description                                                                                                                                     |
| ------------------ | ------ | :------: | -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`            | string |          | `"Project Planning"`                                                 | The title of the canvas to create. If not provided, Slack will generate a default title.                                                        |
| `channel_id`       | string |          | `"C1234567890"`                                                      | Optional channel ID (e.g., 'C1234567890'). If provided, the canvas will be automatically added as a tab in this channel with write permissions. |
| `document_content` | object |          | `{"type":"markdown","markdown":"# Welcome\n\nThis is a new canvas"}` | Optional canvas content in Slack's document format. If not provided, creates an empty canvas.                                                   |

***

### `Slack Create Channel`

Integration name: **SLACK\_CREATE\_CHANNEL**

Initiates a public or private channel-based conversation in a Slack workspace. Immediately creates the channel; invoke only after explicit user confirmation.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type    | Required | Example         | Description                                                                                                                     |
| ------------ | ------- | :------: | --------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `name`       | string  |     ✅    | `"mychannel"`   | Name of the public or private channel to create Must be lowercase, unique, and contain no spaces or periods; max 80 characters. |
| `team_id`    | string  |          | `"T1234567890"` | encoded team id to create the channel in, required if org token is used                                                         |
| `is_private` | boolean |          | `true`          | Create a private channel instead of a public one                                                                                |

***

### `Slack Create Channel Based Conversation`

Integration name: **SLACK\_CREATE\_CHANNEL\_BASED\_CONVERSATION**

Creates a new public or private Slack channel with a unique name; the channel can be org-wide, or team-specific if `team_id` is given (required if `org_wide` is false or not provided).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type    | Required | Example           | Description                                                                                                                                            |
| ------------- | ------- | :------: | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`        | string  |     ✅    | `"project-alpha"` | Name for the new channel. Must be unique, 80 characters or fewer, lowercase, without spaces or periods, and may contain letters, numbers, and hyphens. |
| `team_id`     | string  |          | `"T123ABCDEFG"`   | Workspace (team) ID for channel creation (e.g., T123ABCDEFG). Required if `org_wide` is `false` or not set.                                            |
| `org_wide`    | boolean |          | —                 | Set to `true` to make the channel available org-wide. If `false` or not set, `team_id` is required.                                                    |
| `is_private`  | boolean |     ✅    | —                 | Set to `true` to make the channel private, or `false` for public.                                                                                      |
| `description` | string  |          | —                 | Optional description for the channel (e.g., 'Discussion about Q4 marketing strategies').                                                               |

***

### `Slack Create Enterprise Team`

Integration name: **SLACK\_CREATE\_ENTERPRISE\_TEAM**

Tool to create an Enterprise team in Slack. Use when you need to create a new team (workspace) within an Enterprise Grid organization. Requires admin.teams:write scope.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type   | Required | Example                                                | Description                                                                          |
| ---------------------- | ------ | :------: | ------------------------------------------------------ | ------------------------------------------------------------------------------------ |
| `team_name`            | string |     ✅    | `"Slack Softball Team"`                                | Team name (for example, Slack Softball Team). This is the display name for the team. |
| `team_domain`          | string |     ✅    | `"slacksoftballteam"`                                  | Team domain (for example, slacksoftballteam). This will be part of the team's URL.   |
| `team_description`     | string |          | `"This team is for the softball league coordination."` | Description for the team. Helps users understand the purpose of this team.           |
| `team_discoverability` | string |          | —                                                      | Enum for team discoverability options.                                               |

***

### `Slack Create User Group`

Integration name: **SLACK\_CREATE\_USER\_GROUP**

Creates a new User Group (often referred to as a subteam) in a Slack workspace.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter             | Type    | Required | Example                                     | Description                                                                                                                                                    |
| --------------------- | ------- | :------: | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                | string  |     ✅    | `"Customer Support"`                        | Unique name for the User Group. Must be unique among all User Groups in the workspace.                                                                         |
| `handle`              | string  |          | `"support-team"`                            | Unique mention handle. Must be unique across channels, users, and other User Groups. Max 21 chars; lowercase letters, numbers, hyphens, underscores only.      |
| `team_id`             | string  |          | `"T1234567890"`                             | Encoded team ID where the User Group should be created. Required if using an org token. Will be ignored if the API call is sent using a workspace-level token. |
| `channels`            | string  |          | `"C012AB3CD,C023BC4DE"`                     | Comma-separated encoded channel IDs for default channels, suggested when mentioning or inviting the group.                                                     |
| `description`         | string  |          | `"Manages all customer support inquiries."` | Short description for the User Group.                                                                                                                          |
| `include_count`       | boolean |          | —                                           | Include the User Group's user count in the response. Server defaults to `false` if omitted.                                                                    |
| `enable_section`      | boolean |          | —                                           | Configure this user group to show as a sidebar section for all group members. Only relevant if group has 1 or more default channels added.                     |
| `additional_channels` | string  |          | `"C012AB3CD,C023BC4DE"`                     | Comma-separated encoded channel IDs for which the User Group can custom add usergroup members to.                                                              |

***

### `Slack Customize Url Unfurl`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter            | Type    | Required | Example                                                                                                            | Description                                                                                                                                                                                               |
| -------------------- | ------- | :------: | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ts`                 | string  |          | `"1234567890.123456"`                                                                                              | Timestamp of the message to customize URL unfurling for. Must be provided with `channel`, or alternatively provide `unfurl_id` and `source` together.                                                     |
| `source`             | string  |          | `"composer"`                                                                                                       | Link source: either 'composer' or 'conversations\_history'. Must be provided with `unfurl_id`.                                                                                                            |
| `channel`            | string  |          | `"C1234567890"`                                                                                                    | Channel, private group, or DM channel to send message to. Can be an encoded ID, or a name. Must be provided with `ts`, or alternatively provide `unfurl_id` and `source` together.                        |
| `unfurls`            | string  |          | `"{\"https://example.com/article\": {\"text\": \"Article Preview\", \"color\": \"#36a64f\"}}"`                     | JSON string mapping URLs to custom unfurl content (Slack attachment format or blocks). Pass as a plain JSON string (not URL-encoded). To remove an existing unfurl, provide an empty object for that URL. |
| `metadata`           | string  |          | `"{\"entities\": [{\"url\": \"https://example.com\", \"type\": \"article\"}]}"`                                    | JSON object with 'entities' field providing Work Object array. Either `unfurls` or `metadata` is required. Pass as a JSON string.                                                                         |
| `unfurl_id`          | string  |          | `"Uxxxxxx-909b5454-75f8-4ac4-b325-1b40e230bbd8"`                                                                   | Link ID to unfurl. Must be provided with `source`. Alternative to using `channel` and `ts` parameters.                                                                                                    |
| `user_auth_url`      | string  |          | `"https://yourapp.com/slack/auth?user_id=U123&channel_id=C123"`                                                    | URL-encoded custom URL for user authentication with your app to enable unfurling. Used when `user_auth_required` is true.                                                                                 |
| `user_auth_blocks`   | string  |          | `"[{\"type\": \"section\", \"text\": {\"type\": \"mrkdwn\", \"text\": \"Please authenticate to see previews\"}}]"` | JSON array of structured blocks (URL-encoded) sent as ephemeral authentication invitation. Alternative to `user_auth_message` for richer formatting. Used when `user_auth_required` is true.              |
| `user_auth_message`  | string  |          | `"Please authenticate with MyApp to see rich previews for example.com."`                                           | Ephemeral message text prompting user authentication with your app for domain-specific unfurling. Used when `user_auth_required` is true and authorization is pending.                                    |
| `user_auth_required` | boolean |          | `true`                                                                                                             | Set to `true` if user authentication is required to unfurl links for a domain, enabling an authentication flow using `user_auth_url` and `user_auth_message`.                                             |

***

### `Slack Delete Canvas`

Integration name: **SLACK\_DELETE\_CANVAS**

Deletes a Slack Canvas permanently and irreversibly. Always confirm with the user before calling this tool.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter   | Type   | Required | Example         | Description                                   |
| ----------- | ------ | :------: | --------------- | --------------------------------------------- |
| `canvas_id` | string |     ✅    | `"F01234ABCDE"` | The unique identifier of the canvas to delete |

***

### `Slack Delete Channel`

Integration name: **SLACK\_DELETE\_CHANNEL**

Permanently and irreversibly deletes a specified public or private channel, including all its messages and files, within a Slack Enterprise Grid organization.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example         | Description                                                                         |
| ------------ | ------ | :------: | --------------- | ----------------------------------------------------------------------------------- |
| `channel_id` | string |     ✅    | `"C0123456789"` | ID of the channel to be permanently deleted. This channel can be public or private. |

***

### `Slack Delete File`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                     |
| --------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------- |
| `file`    | string |     ✅    | `"F2147483002"` | ID of the file to delete. Typically obtained when a file is uploaded or listed. |

***

### `Slack Delete File Comment`

Integration name: **SLACK\_DELETE\_FILE\_COMMENT**

Deletes a specific comment from a file in Slack; this action is irreversible.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example          | Description                                                                                                                  |
| --------- | ------ | :------: | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `id`      | string |     ✅    | `"Fc1234567890"` | ID of the comment to delete. This can be obtained when the comment is created or by listing file comments.                   |
| `file`    | string |     ✅    | `"F1234567890"`  | ID of the file to delete a comment from. The file ID can be obtained using the `files.info` method or when a file is shared. |

***

### `Slack Delete Reminder`

Integration name: **SLACK\_DELETE\_REMINDER**

Deletes an existing Slack reminder, typically when it is no longer relevant or a task is completed; this operation is irreversible.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter  | Type   | Required | Example          | Description                                                                                                    |
| ---------- | ------ | :------: | ---------------- | -------------------------------------------------------------------------------------------------------------- |
| `team_id`  | string |          | `"T1234567890"`  | Encoded team id, required if org token is used.                                                                |
| `reminder` | string |     ✅    | `"Rm1234567890"` | The unique identifier of the reminder to be deleted. This ID is obtained when a reminder is created or listed. |

***

### `Slack Deletes A Message From A Chat`

Integration name: **SLACK\_DELETES\_A\_MESSAGE\_FROM\_A\_CHAT**

Deletes a message, identified by its channel ID and timestamp, from a Slack channel, private group, or direct message conversation; the authenticated user or bot must be the original poster.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example               | Description                                                                                                                                                                                                                                                                                         |
| --------- | ------- | :------: | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ts`      | string  |          | `"1234567890.123456"` | Timestamp of the message to be deleted. Must be the exact Slack message timestamp string with fractional precision, e.g., '1234567890.123456'. Thread replies use their own `ts`; ephemeral messages and certain app-posted messages cannot be deleted via this method even with a valid timestamp. |
| `as_user` | boolean |          | —                     | Legacy parameter for classic Slack apps. Pass true to delete the message as the authed user. Bot tokens can only delete messages posted by that bot. This parameter is primarily for legacy apps and is generally not needed with modern bot tokens.                                                |
| `channel` | string  |          | `"C1234567890"`       | The ID of the channel, private group, or direct message conversation containing the message to be deleted.                                                                                                                                                                                          |

***

### `Slack Delete Scheduled Message`

Integration name: **SLACK\_DELETE\_SCHEDULED\_MESSAGE**

Deletes a pending, unsent scheduled message from the specified Slack channel, identified by its `scheduled_message_id`.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type    | Required | Example           | Description                                                                                                                                                               |
| ---------------------- | ------- | :------: | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `as_user`              | boolean |          | `true`            | Pass true to delete the message as the authed user with chat:write:user scope. Bot users in this context are considered authed users. If not provided, defaults to false. |
| `channel`              | string  |     ✅    | `"C1234567890"`   | ID of the channel, private group, or DM conversation where the message is scheduled.                                                                                      |
| `scheduled_message_id` | string  |     ✅    | `"Q123ABCDEF456"` | Unique ID (`scheduled_message_id`) of the message to be deleted; obtained from `chat.scheduleMessage` response.                                                           |

***

### `Slack Delete User Profile Photo`

Integration name: **SLACK\_DELETE\_USER\_PROFILE\_PHOTO**

Deletes the Slack profile photo for the user identified by the token, reverting them to the default avatar; this action is irreversible and succeeds even if no custom photo was set.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack Disable User Group`

Integration name: **SLACK\_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 is not permanently deleted and can be re-enabled.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example         | Description                                                                        |
| --------------- | ------- | :------: | --------------- | ---------------------------------------------------------------------------------- |
| `team_id`       | string  |          | `"T1234567890"` | Encoded team ID where the User Group exists. Required if using an org-level token. |
| `usergroup`     | string  |     ✅    | `"S0123ABCDEF"` | Unique encoded ID of the User Group to disable.                                    |
| `include_count` | boolean |          | `"true"`        | If true, include the number of users in the User Group in the response.            |

***

### `Slack Download Slack File`

Integration name: **SLACK\_DOWNLOAD\_SLACK\_FILE**

Tool to download Slack file content and convert it to a publicly accessible URL. Use when you need to retrieve and download files that have been shared in Slack channels or conversations.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                                                                 |
| --------- | ------- | :------: | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file`    | string  |     ✅    | `"F123ABCDEF0"`          | ID of the file to download. This is a required field. File IDs start with 'F' followed by alphanumeric characters (e.g., 'F123ABCDEF0').                                                                    |
| `page`    | integer |          | `1`                      | Page number of comment results to retrieve. Used for comment pagination. Slack's default is 1 if not provided. `cursor`-based pagination is generally preferred.                                            |
| `count`   | integer |          | `20`                     | Number of comments to retrieve per page. Used for comment pagination. Slack's default is 100 if not provided.                                                                                               |
| `limit`   | integer |          | `10`                     | The maximum number of comments to retrieve. This is an upper limit, not a guarantee of how many will be returned. Primarily used for comment pagination.                                                    |
| `cursor`  | string  |          | `"dXNlcjpVMDYxRkExNDIK"` | Pagination cursor for retrieving comments. Set to `next_cursor` from a previous response's `response_metadata` to fetch the next page of comments. Essential for navigating through large sets of comments. |

***

### `Slack Edit Canvas`

Integration name: **SLACK\_EDIT\_CANVAS**

Edits a Slack Canvas with granular control over content placement. Supports replace, insert (before/after/start/end) operations for flexible content management.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type   | Required | Example                                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------ | ------ | :------: | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `canvas_id`        | string |     ✅    | `"F01234ABCDE"`                                                  | The unique identifier of the canvas to edit                                                                                                                                                                                                                                                                                                                                                                                   |
| `operation`        | string |          | —                                                                | Type of edit operation: 'replace' (replaces entire canvas or specific section if section\_id provided), 'insert\_after' (inserts content after section\_id), 'insert\_before' (inserts content before section\_id), 'insert\_at\_start' (prepends content to beginning), 'insert\_at\_end' (appends content to end), 'delete' (deletes specific section by section\_id), 'rename' (renames canvas title using title\_content) |
| `section_id`       | string |          | `"temp:C:VXX8e648e6984e441c6aa8c61173"`                          | Section ID for targeted operations. Required for: 'insert\_after', 'insert\_before', 'delete'. Optional for: 'replace' (if omitted, replaces entire canvas). Not used for: 'insert\_at\_start', 'insert\_at\_end'. Use canvases.sections.lookup method to get section IDs from existing canvas.                                                                                                                               |
| `title_content`    | object |          | `{"type":"markdown","markdown":":rocket: Project Roadmap 2024"}` | The new title for the canvas in markdown format. Required only for 'rename' operation. Supports markdown format including emojis (e.g., ':white\_check\_mark:').                                                                                                                                                                                                                                                              |
| `document_content` | object |          | `{"type":"markdown","markdown":"# New Content\n\nContent here"}` | The content to add/replace in Slack's document format. Required for all operations except 'delete' and 'rename'. Use canvases.sections.lookup to find section IDs for targeted operations.                                                                                                                                                                                                                                    |

***

### `Slack Enable Public Sharing Of A File`

Integration name: **SLACK\_ENABLE\_PUBLIC\_SHARING\_OF\_A\_FILE**

Enables public sharing for an existing Slack file by generating a publicly accessible URL; this action does not create new files. Once enabled, the file is accessible to anyone with the URL — verify intent before sharing sensitive or confidential files.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                               |
| --------- | ------ | :------: | --------------- | ----------------------------------------- |
| `file`    | string |     ✅    | `"F0123456789"` | The ID of the file to be shared publicly. |

***

### `Slack Enable User Group`

Integration name: **SLACK\_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 cannot create new groups or modify other properties.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example         | Description                                                                                                 |
| --------------- | ------- | :------: | --------------- | ----------------------------------------------------------------------------------------------------------- |
| `team_id`       | string  |          | `"T1234567890"` | Encoded team id where the user group is, required if org token is used. Ignored for workspace-level tokens. |
| `usergroup`     | string  |     ✅    | `"S0604QSJC"`   | The unique encoded ID of the User Group to enable. This ID typically starts with 'S'.                       |
| `include_count` | boolean |          | `"true"`        | If true, includes the count of users in the User Group in the response.                                     |

***

### `Slack End Call`

Integration name: **SLACK\_END\_CALL**

Ends an ongoing Slack call, identified by its ID (obtained from `calls.add`), optionally specifying the call's duration.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter  | Type    | Required | Example         | Description                                                                      |
| ---------- | ------- | :------: | --------------- | -------------------------------------------------------------------------------- |
| `id`       | string  |     ✅    | `"R0123456789"` | Unique identifier of the call to be ended, obtained from the `calls.add` method. |
| `duration` | integer |          | `"600"`         | Duration of the call in seconds.                                                 |

***

### `Slack End Dnd`

Integration name: **SLACK\_END\_DND**

Ends the authenticated user's current Do Not Disturb (DND) session in Slack, affecting only DND status and making them available; if DND is not active, Slack acknowledges the request without changing status.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack End Snooze`

Integration name: **SLACK\_END\_SNOOZE**

Ends the current user's snooze mode immediately.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack Fetch Conversation History`

Integration name: **SLACK\_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 pagination and time range filtering. IMPORTANT LIMITATION: This action only returns messages from the main channel timeline. Threaded replies are NOT returned by this endpoint. To retrieve threaded replies, use the SLACK\_FETCH\_MESSAGE\_THREAD\_FROM\_A\_CONVERSATION action (conversations.replies API) instead. The oldest/latest timestamp filters work reliably for filtering the main channel timeline, but cannot be used to retrieve individual threaded replies - even if you know the exact reply timestamp, setting oldest=latest to that timestamp will return an empty messages array. To get threaded replies: 1. Use this action to get parent messages (which include thread\_ts, reply\_count, latest\_reply fields) 2. Use SLACK\_FETCH\_MESSAGE\_THREAD\_FROM\_A\_CONVERSATION with the parent's thread\_ts to fetch all replies in that thread

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type    | Required | Example                  | Description                                                                                                                                                                                                                                                                                                                                                               |
| ---------------------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`                | integer |          | `"100"`                  | Maximum number of messages to request in this single Slack API call (1-1000). Defaults to 100. Slack may return fewer than requested, especially for non-Marketplace apps where Slack can cap each page at 15 messages. This action does not internally paginate; use response\_metadata.next\_cursor in the cursor parameter of a follow-up call to fetch more messages. |
| `cursor`               | string  |          | `"dXNlcjpVMDYxTkZUVDA="` | Pagination cursor from `response_metadata.next_cursor` of a previous response. Omit this for the first page; pass the returned cursor in a follow-up call to fetch the next page.                                                                                                                                                                                         |
| `latest`               | string  |          | `"1609459200.000000"`    | End of the time range of messages to include in results. Accepts a Unix timestamp or a Slack timestamp (e.g., '1234567890.000000'). NOTE: This filter only applies to main channel messages, not threaded replies. Use SLACK\_FETCH\_MESSAGE\_THREAD\_FROM\_A\_CONVERSATION to retrieve replies.                                                                          |
| `oldest`               | string  |          | `"1609372800.000000"`    | Start of the time range of messages to include in results. Accepts a Unix timestamp or a Slack timestamp (e.g., '1234567890.000000'). NOTE: This filter only applies to main channel messages, not threaded replies. Use SLACK\_FETCH\_MESSAGE\_THREAD\_FROM\_A\_CONVERSATION to retrieve replies.                                                                        |
| `channel`              | string  |     ✅    | `"C1234567890"`          | The ID of the public channel, private channel, direct message, or multi-person direct message to fetch history from.                                                                                                                                                                                                                                                      |
| `inclusive`            | boolean |          | `true`                   | When true, includes messages at the exact 'oldest' or 'latest' boundary timestamps in results. When false (default), excludes boundary messages. Only applies when 'oldest' or 'latest' is specified.                                                                                                                                                                     |
| `include_all_metadata` | boolean |          | `true`                   | Return all metadata associated with messages in the conversation history. When true, includes additional metadata fields that may be present on messages.                                                                                                                                                                                                                 |

***

### `Slack Fetch Item Reactions`

Integration name: **SLACK\_FETCH\_ITEM\_REACTIONS**

Fetches reactions for a Slack message, file, or file comment. Exactly one identifier path must be provided: `channel`+`timestamp`, `file`, or `file_comment`. Mixing identifiers (e.g., providing both `channel`+`timestamp` and `file`) causes errors. If the response omits the `reactions` field, the item has zero reactions.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter      | Type    | Required | Example               | Description                                                                                                                                                                                                                                             |
| -------------- | ------- | :------: | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file`         | string  |          | `"F1234567890"`       | File ID. Use instead of channel/timestamp or file comment ID.                                                                                                                                                                                           |
| `full`         | boolean |          | —                     | If true, returns the complete list of users for each reaction.                                                                                                                                                                                          |
| `channel`      | string  |          | `"C1234567890"`       | Channel ID. Required if `timestamp` is provided and no file or file comment ID is given.                                                                                                                                                                |
| `timestamp`    | string  |          | `"1234567890.123456"` | Message timestamp (e.g., '1234567890.123456'). Required if `channel` is provided and no file or file comment ID is given. Thread reply timestamps are tracked separately from the parent message; use the reply's own timestamp to fetch its reactions. |
| `file_comment` | string  |          | `"Fc1234567890"`      | File comment ID. Use instead of channel/timestamp or file ID.                                                                                                                                                                                           |

***

### `Slack Fetch Message Thread From A Conversation`

Integration name: **SLACK\_FETCH\_MESSAGE\_THREAD\_FROM\_A\_CONVERSATION**

Retrieves replies to a specific parent message in a Slack conversation, using the channel ID and the parent message's timestamp (`ts`). Note: The parent message in the response contains metadata (reply\_count, reply\_users, latest\_reply) that indicates expected thread activity. If the returned messages array contains fewer replies than reply\_count indicates, check: (1) has\_more=true means pagination is needed, (2) recently posted replies may have timing delays, (3) some replies may be filtered by permissions or deleted. The composio\_execution\_message field will warn about any detected mismatches.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type    | Required | Example                  | Description                                                                                                                                                                                                                                                                                                       |
| ---------------------- | ------- | :------: | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ts`                   | string  |          | `"1234567890.123456"`    | Timestamp of the parent message in the thread. Must be an existing message. If no replies, only the parent message itself is returned. Must be the exact full timestamp string of the root/parent message — not a reply's ts, a truncated value, a permalink, or an integer; these silently return wrong results. |
| `limit`                | integer |          | `100`                    | Maximum number of messages to return. Fewer may be returned even if more are available.                                                                                                                                                                                                                           |
| `cursor`               | string  |          | `"dXNlcjpVMEc5V0ZYTlo="` | Pagination cursor from `response_metadata.next_cursor` of a previous response to get subsequent pages. If omitted, fetches the first page.                                                                                                                                                                        |
| `latest`               | string  |          | `"1678886400.000000"`    | Latest message timestamp in the time range to include results.                                                                                                                                                                                                                                                    |
| `oldest`               | string  |          | `"1678836000.000000"`    | Oldest message timestamp in the time range to include results. Must be a UTC-based Slack ts string; incorrect timezone conversion or rounding can produce empty result windows.                                                                                                                                   |
| `channel`              | string  |          | `"C0123456789"`          | ID of the conversation (channel, direct message, etc.) to fetch the thread from. Must be a channel ID, not a channel name. Token must have membership in private channels or DMs, otherwise returns empty results or `not_in_channel`/`channel_not_found`.                                                        |
| `inclusive`            | boolean |          | `true`                   | Whether to include messages with `latest` or `oldest` timestamps in results. Effective only if `latest` or `oldest` is specified.                                                                                                                                                                                 |
| `include_all_metadata` | boolean |          | `true`                   | Return all metadata associated with messages in the thread. When true, includes additional metadata fields that may be present on messages.                                                                                                                                                                       |

***

### `Slack Fetch Team Info`

Integration name: **SLACK\_FETCH\_TEAM\_INFO**

Fetches comprehensive metadata about the current Slack team, or a specified team if the provided ID is accessible.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                                                                                                                                                                                    |
| --------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `team`    | string |          | `"T12345678"`   | The ID of the team to retrieve information for. If omitted, information for the current team (associated with the authentication token) is returned. The token must have permissions to view the specified team, especially for teams accessible via external shared channels. |
| `domain`  | string |          | `"myworkspace"` | Query by domain instead of team (only when team is null). This only works for domains in the same enterprise as the querying team token. This also expects the domain to belong to a team and not the enterprise itself.                                                       |

***

### `Slack Find Channels`

Integration name: **SLACK\_FIND\_CHANNELS**

Find channels in a Slack workspace by any criteria - name, topic, purpose, or description. Returns channel IDs (C\*/G\* prefixed) required by most Slack tools — always resolve names to IDs here before passing to other tools. NOTE: This action searches channels and conversations visible to the authenticated user. Empty results may indicate: - No channels match the search query in name, topic, or purpose - The target private channel or DM is not accessible to the authenticated user because they are not a member - The connection lacks required read scopes (channels:read, groups:read, im:read, mpim:read). If empty, retry with exact\_match=false or exclude\_archived=false to avoid false negatives. In large workspaces, paginate using next\_cursor to avoid missing matches. Check 'composio\_execution\_message' and 'total\_channels\_searched' in the response for details.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example            | Description                                                                                                                                                                                                                                          |
| ------------------ | ------- | :------: | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`            | integer |          | `10`               | Maximum number of channels to return (1 to 999). Defaults to 50. Slack recommends no more than 200 results at a time for optimal performance.                                                                                                        |
| `query`            | string  |     ✅    | `"general"`        | Search query to find channels. Searches across channel name, topic, purpose, and description (case-insensitive partial matching). Leading '#' prefix is automatically stripped.                                                                      |
| `types`            | string  |          | `"public_channel"` | Comma-separated list of channel types to include: `public_channel`, `private_channel`, `mpim` (multi-person direct message), `im` (direct message). Defaults to public and private channels.                                                         |
| `team_id`          | string  |          | `"T1234567890"`    | The ID of the workspace to list channels from. Required when using an org-level token to specify which workspace to retrieve channels from. This field is ignored when using a workspace-level token.                                                |
| `exact_match`      | boolean |          | `true`             | When true, only return channels whose name exactly matches the query (case-insensitive). Also matches against previous channel names and the 'general' flag. When false, returns partial matches across name, topic, and purpose. Defaults to false. |
| `member_only`      | boolean |          | `true`             | Only return channels the user is a member of. Defaults to false.                                                                                                                                                                                     |
| `exclude_archived` | boolean |          | `true`             | Exclude archived channels from search results. Defaults to true.                                                                                                                                                                                     |

***

### `Slack Find User By Email Address`

Integration name: **SLACK\_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. Fails with 'users\_not\_found' if the email is unregistered, the user is inactive, the account is a guest, or the email is hidden by workspace privacy settings.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                   | Description                               |
| --------- | ------ | :------: | ------------------------- | ----------------------------------------- |
| `email`   | string |     ✅    | `"sally.doe@example.com"` | The email address of the user to look up. |

***

### `Slack Find Users`

Integration name: **SLACK\_FIND\_USERS**

Find users in a Slack workspace by any criteria - email, name, display name, or other text. Includes optimized email lookup for exact email matches. Zero results may reflect email visibility restrictions or workspace policies, not global absence. Repeated calls may trigger HTTP 429; honor the Retry-After header.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter            | Type    | Required | Example                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| -------------------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `email`              | string  |          | `"john.doe@company.com"` | Email address to search for. This is a convenience parameter that automatically performs an email-based search. Either email or search\_query parameter is required.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `limit`              | integer |          | `10`                     | Maximum number of users to return (1 to 1000). Slack recommends no more than 200 for optimal performance. Defaults to 50. Large workspaces may require pagination or repeated queries to cover all users.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `team_id`            | string  |          | `"T123456789"`           | The ID of the Slack workspace (e.g., 'T123456789'). Required when using an org-level token. For workspace-level tokens, this is optional and will be ignored.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `exact_match`        | boolean |          | `true`                   | When true, only returns users with exact matches on name, display name, real name, first name, last name, or email fields (case-insensitive). For email queries, uses Slack's dedicated email lookup endpoint. When false, allows partial/substring matching. Defaults to false.                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `include_bots`       | boolean |          | `true`                   | Include bot users in search results. Defaults to false.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `search_query`       | string  |          | `"U012ABCDEF"`           | Search query to find users. Can be a Slack user ID (e.g., 'U012ABCDEF'), email address, or name. For user IDs (starting with 'U' or 'W'), uses Slack's users.info API directly. For email addresses with exact\_match=true, uses Slack's email lookup endpoint. For other queries, searches across name, display name, real name, email, first name, last name, and status text (case-insensitive partial matching). Either search\_query (or 'query' as alias), or email parameter is required. Name-based queries can return multiple matches — verify exactly one user ID before passing to downstream tools like SLACK\_OPEN\_DM or SLACK\_SEND\_MESSAGE; disambiguate using email or real\_name fields. |
| `include_locale`     | boolean |          | `true`                   | Include the `locale` field for each user. Defaults to `false`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `include_deleted`    | boolean |          | `true`                   | Include deleted/deactivated users in search results. Defaults to false.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `include_restricted` | boolean |          | `true`                   | Include restricted (guest) users in search results. Defaults to true.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

***

### `Slack Get App Permission Scopes`

Integration name: **SLACK\_GET\_APP\_PERMISSION\_SCOPES**

DEPRECATED: Use SLACK\_TEST\_AUTH instead. Preflight a Slack token by calling auth.test and returning the token's currently granted OAuth scopes (from response headers) to detect missing permissions before attempting admin actions. Use when you need to verify token capabilities or check for specific scopes before making API calls that require elevated permissions.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter         | Type  | Required | Example                                 | Description                                                                                                                                 |
| ----------------- | ----- | :------: | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `required_scopes` | array |          | `["admin.users:write","channels:read"]` | Optional list of OAuth scopes to check against the token's granted scopes. If provided, the action will compute and return missing\_scopes. |

***

### `Slack Get Audit Action Types`

Integration name: **SLACK\_GET\_AUDIT\_ACTION\_TYPES**

Tool to retrieve information about action types available in the Slack Audit Logs API. Use when you need to know which action types can be used to filter audit logs or understand the categories of auditable actions in Slack.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack Get Audit Schemas`

Integration name: **SLACK\_GET\_AUDIT\_SCHEMAS**

Tool to retrieve object schema information from the Slack Audit Logs API. Use when you need to understand the types of objects returned by audit log endpoints. Returns a list of all object types with descriptions.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack Get Bot User`

Integration name: **SLACK\_GET\_BOT\_USER**

Fetches information for a specified, existing Slack bot user; will not work for regular user accounts or other integration types.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                           |
| --------- | ------ | :------: | --------------- | ----------------------------------------------------------------------------------------------------- |
| `bot`     | string |          | `"B0123456789"` | The ID of the bot user to retrieve information for. This typically starts with 'B'.                   |
| `team_id` | string |          | `"T1234567890"` | The ID of the workspace/team. Required when using an org-level token. This typically starts with 'T'. |

***

### `Slack Get Call Info`

Integration name: **SLACK\_GET\_CALL\_INFO**

Retrieves a point-in-time snapshot of a specific Slack call's information.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                                                                      |
| --------- | ------ | :------: | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`      | string |     ✅    | `"R1234567890"` | Unique identifier of the Slack call for which to retrieve information. This ID is typically returned when a call is initiated (e.g., by the `calls.add` method). |

***

### `Slack Get Canvas`

Integration name: **SLACK\_GET\_CANVAS**

DEPRECATED: Use SLACK\_RETRIEVE\_DETAILED\_INFORMATION\_ABOUT\_A\_FILE instead. Retrieves a specific Slack Canvas by its ID, including its content and metadata.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter   | Type    | Required | Example         | Description                                                                                                                                                                   |
| ----------- | ------- | :------: | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `page`      | integer |          | —               | Page number for comment pagination (1-based, max 100). Works with count parameter.                                                                                            |
| `count`     | integer |          | —               | Maximum number of comments to return per page (1-1000). Controls pagination of the comments field in the response.                                                            |
| `limit`     | integer |          | —               | Maximum number of comments to return (alternative to count parameter). Recommended to use 200 or less for cursor-based pagination.                                            |
| `cursor`    | string  |          | —               | Cursor for pagination of comments. Use the next\_cursor value from response\_metadata to retrieve the next page. This is the preferred pagination method over page parameter. |
| `canvas_id` | string  |     ✅    | `"F01234ABCDE"` | The unique identifier of the canvas to retrieve The app must have access to the canvas; private or restricted canvases are not retrievable even with a valid ID.              |

***

### `Slack Get Channel Conversation Preferences`

Integration name: **SLACK\_GET\_CHANNEL\_CONVERSATION\_PREFERENCES**

Retrieves conversation preferences (e.g., who can post, who can thread) for a specified channel, primarily for use within Slack Enterprise Grid environments.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example         | Description                                                               |
| ------------ | ------ | :------: | --------------- | ------------------------------------------------------------------------- |
| `channel_id` | string |     ✅    | `"C0123456789"` | Identifier of the channel for which to retrieve conversation preferences. |

***

### `Slack Get Reminder`

Integration name: **SLACK\_GET\_REMINDER**

Retrieves detailed information for an existing Slack reminder specified by its ID; this is a read-only operation.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter  | Type   | Required | Example         | Description                                                                                            |
| ---------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------------------------------ |
| `team_id`  | string |          | `"T1234567890"` | Encoded team id. Required if org token is passed.                                                      |
| `reminder` | string |     ✅    | `"Rm12345678"`  | The unique identifier of the reminder to retrieve information for. This ID typically starts with 'Rm'. |

***

### `Slack Get Remote File`

Integration name: **SLACK\_GET\_REMOTE\_FILE**

Retrieve information about a remote file added to Slack via the files.remote API. Does not work for standard Slack-hosted file uploads.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example         | Description                         |
| ------------- | ------ | :------: | --------------- | ----------------------------------- |
| `file`        | string |          | `"F2147483862"` | Specify a file by providing its ID. |
| `external_id` | string |          | `"123456"`      | Creator defined GUID for the file.  |

***

### `Slack Get Team Profile`

Integration name: **SLACK\_GET\_TEAM\_PROFILE**

Retrieves all profile field definitions for a Slack team, optionally filtered by visibility, to understand the team's profile structure.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example         | Description                                                                                                                                    |
| ------------ | ------ | :------: | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `team_id`    | string |          | `"T0984HGHPJ6"` | The team\_id is only relevant when using an org-level token. This field will be ignored if the API call is sent using a workspace-level token. |
| `visibility` | string |          | `"all"`         | Enum for visibility filter values.                                                                                                             |

***

### `Slack Get User Dnd Status`

Integration name: **SLACK\_GET\_USER\_DND\_STATUS**

Retrieves a user's current Do Not Disturb status.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                                    |
| --------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `users`   | string |     ✅    | `"U1234,U5678"` | Comma-separated list of users to fetch Do Not Disturb status for                                                               |
| `team_id` | string |          | `"T1234567890"` | The workspace ID (team\_id) to fetch DND status from. Required when using an org-level token in Enterprise Grid organizations. |

***

### `Slack Get User Presence`

Integration name: **SLACK\_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 historical data or status reasons.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example       | Description                                                                                                                                                                                                                    |
| --------- | ------ | :------: | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `user`    | string |          | `"U012A3CDE"` | The ID of the user to query for presence information. This is a string identifier, typically starting with 'U' or 'W' (e.g., 'U123ABC456'). If not provided, presence information for the authenticated user will be returned. |

***

### `Slack Get Workspace Connections For Channel`

Integration name: **SLACK\_GET\_WORKSPACE\_CONNECTIONS\_FOR\_CHANNEL**

Tool to get all workspaces a channel is connected to within an Enterprise org. Use when you need to determine which workspaces have access to a specific public or private channel in an Enterprise Grid organization.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type    | Required | Example                  | Description                                                                                                                         |
| ------------ | ------- | :------: | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| `limit`      | integer |          | `100`                    | Maximum number of items to return per page. Must be between 1 and 1000 inclusive. If omitted, API defaults to a reasonable limit.   |
| `cursor`     | string  |          | `"dXNlcjpVMDYxTkZUVDI="` | Pagination cursor from `next_cursor` in the previous response. Set this to paginate through results. Omit for the first page.       |
| `channel_id` | string  |     ✅    | `"C0ACHDEQ3JP"`          | The channel ID to determine connected workspaces within the organization for. Must be a valid Slack channel ID (e.g., C0ACHDEQ3JP). |

***

### `Slack Get Workspace Settings`

Integration name: **SLACK\_GET\_WORKSPACE\_SETTINGS**

Retrieves detailed settings for a specific Slack workspace, primarily for administrators in an Enterprise Grid organization to view or audit workspace configurations.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                         |
| --------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------------------------------------------- |
| `team_id` | string |     ✅    | `"T12345ABCDE"` | The unique identifier of the Slack team (workspace) for which to fetch settings. This ID typically starts with 'T'. |

***

### `Slack Invite Users To A Slack Channel`

Integration name: **SLACK\_INVITE\_USERS\_TO\_A\_SLACK\_CHANNEL**

Invites users to an existing Slack channel using their valid Slack User IDs. Response is always HTTP 200; inspect `ok`, `error`, and `errors` fields to confirm users were added.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                                 | Description                                                                                                                                                                                                                                                    |
| --------- | ------- | :------: | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `force`   | boolean |          | `true`                                  | When set to true and multiple user IDs are provided, continue inviting the valid ones while disregarding invalid IDs. Default is false.                                                                                                                        |
| `users`   | string  |          | `"U1234567890,U2345678901,U3456789012"` | Comma-separated string of valid Slack User IDs to invite. Up to 1000 user IDs can be included.                                                                                                                                                                 |
| `channel` | string  |          | `"C1234567890"`                         | ID of the public or private Slack channel to invite users to; must be an existing channel. Typically starts with 'C' (public) or 'G' (private/group). Bot must already be a member of private channels to invite others. Archived channels will cause failure. |

***

### `Slack Invite User To Channel`

Integration name: **SLACK\_INVITE\_USER\_TO\_CHANNEL**

Invites users to a specified Slack channel; this action is restricted to Enterprise Grid workspaces and requires the authenticated user to be a member of the target channel.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example                 | Description                                                                                             |
| ------------ | ------ | :------: | ----------------------- | ------------------------------------------------------------------------------------------------------- |
| `user_ids`   | string |     ✅    | `"U012A3CDE,U023B4DEF"` | A comma-separated string of Slack User IDs to invite to the channel. Up to 1000 users can be specified. |
| `channel_id` | string |     ✅    | `"C1234567890"`         | The ID of the public or private Slack channel to which users will be invited.                           |

***

### `Slack Invite User To Workspace`

Integration name: **SLACK\_INVITE\_USER\_TO\_WORKSPACE**

Invites a user to a Slack workspace and specified channels by email; use `resend=True` to re-process an existing invitation for a user not yet signed up.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                       | Type    | Required | Example                                                       | Description                                                                                                                                                                                                                            |
| ------------------------------- | ------- | :------: | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `email`                         | string  |     ✅    | `"new.user@example.com"`                                      | The email address of the person to be invited to the workspace.                                                                                                                                                                        |
| `resend`                        | boolean |          | —                                                             | If true, allows this invitation to be resent if the user hasn't signed up. Defaults to false.                                                                                                                                          |
| `team_id`                       | string  |     ✅    | `"T123ABCDEFG"`                                               | The ID of the Slack workspace (e.g., T123ABCDEFG) where the user will be invited.                                                                                                                                                      |
| `real_name`                     | string  |          | `"Jane Doe"`                                                  | The full name of the user being invited.                                                                                                                                                                                               |
| `channel_ids`                   | string  |     ✅    | `"C1234567890,C9876543210"`                                   | A comma-separated list of channel IDs (e.g., C1234567890,C0987654321) for the user to join. At least one channel ID must be provided. Channel names are not accepted and will cause errors.                                            |
| `is_restricted`                 | boolean |          | —                                                             | Specifies if the invited user should be a multi-channel guest. Defaults to false. Multi-channel guests can access only the channels they are invited to, plus any public channels.                                                     |
| `custom_message`                | string  |          | `"Welcome to the team! Looking forward to working with you."` | Custom message to include in the invitation email.                                                                                                                                                                                     |
| `guest_expiration_ts`           | string  |          | `"1735689600.000000"`                                         | Unix timestamp for guest account expiration in the format 'XXXXXXXXXX.XXXXXX' (10-digit seconds followed by 6-digit microseconds, e.g., '1735689600.000000'). Provide only if inviting a guest user and an expiration date is desired. |
| `is_ultra_restricted`           | boolean |          | —                                                             | Specifies if the invited user should be a single-channel guest (also known as an ultra-restricted guest). Defaults to false. Single-channel guests can only access one channel (plus DMs and Huddles).                                 |
| `email_password_policy_enabled` | boolean |          | —                                                             | Allow invited user to sign in via email and password. Only available for Enterprise Grid teams via admin invite.                                                                                                                       |

***

### `Slack Join An Existing Conversation`

Integration name: **SLACK\_JOIN\_AN\_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. Joining an already-joined channel returns a non-fatal no-op response. Private or restricted channel joins may fail with a permission error.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                             |
| --------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------------------------------- |
| `channel` | string |     ✅    | `"C1234567890"` | ID of the Slack conversation (public channel, private channel, or multi-person direct message) to join. |

***

### `Slack Leave Conversation`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                          |
| --------- | ------ | :------: | --------------- | ---------------------------------------------------- |
| `channel` | string |     ✅    | `"C1234567890"` | ID of the conversation to leave (e.g., C1234567890). |

***

### `Slack List Admin Apps Approved`

Integration name: **SLACK\_LIST\_ADMIN\_APPS\_APPROVED**

Tool to list approved apps for an Enterprise Grid organization or workspace. Use when you need to retrieve the list of apps that have been approved for installation by workspace admins. Requires admin.apps:read scope and a user token from an org owner/admin context.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example                  | Description                                                                                                                        |
| --------------- | ------- | :------: | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `limit`         | integer |          | `100`                    | The maximum number of items to return. Must be between 1 and 1000 (inclusive).                                                     |
| `cursor`        | string  |          | `"dXNlcjpVMDYxTkZUVDA="` | Pagination cursor for retrieving the next page. Set to `next_cursor` returned by the previous call to list items in the next page. |
| `team_id`       | string  |          | `"T0984H91R2N"`          | The workspace/team ID to list approved apps for. Required when using an org-level token.                                           |
| `certified`     | boolean |          | `true`                   | Filter results to certified apps only. When false, certified apps are excluded from results. Defaults to false if not specified.   |
| `enterprise_id` | string  |          | `"E1234567890"`          | The Enterprise Grid organization ID to list approved apps for.                                                                     |

***

### `Slack List Admin Apps Requests`

Integration name: **SLACK\_LIST\_ADMIN\_APPS\_REQUESTS**

Tool to list pending app installation requests for a team/workspace. Use when you need to see which apps users have requested to install that haven't yet been approved or denied. Requires Enterprise Grid or Business+ plan with admin.apps:read scope.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example                  | Description                                                                                                                                                                          |
| --------------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `limit`         | integer |          | `10`                     | The maximum number of items to return. Must be between 1 and 1000 inclusive. Defaults to the API's default if not specified.                                                         |
| `cursor`        | string  |          | `"dXNlcjpVMDYxREk0STM="` | Pagination cursor for fetching subsequent pages. Set to `next_cursor` returned by the previous call to list items in the next page. Omit for the first page.                         |
| `team_id`       | string  |          | `"T0AB0BSTDV5"`          | The workspace/team ID to list app requests for. Required for Enterprise Grid organizations using org-level tokens. For workspace-level tokens, this filters to a specific workspace. |
| `certified`     | boolean |          | `true`                   | Filter results to certified apps only. When true, only certified apps are returned. When false, certified apps are excluded from results. Defaults to false if not specified.        |
| `enterprise_id` | string  |          | `"E1234567890"`          | The Enterprise Grid organization ID to list app requests for. Use to query at the Enterprise level.                                                                                  |

***

### `Slack List Admin Emoji`

Integration name: **SLACK\_LIST\_ADMIN\_EMOJI**

List custom emoji across an Enterprise Grid organization. Use when you need to retrieve all custom emoji for an entire Enterprise Grid org (not just a single workspace). Requires admin.teams:read scope and an admin token. For single workspace emoji, use the regular emoji.list method instead.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                           |
| --------- | ------- | :------: | ------------------------ | --------------------------------------------------------------------------------------------------------------------- |
| `limit`   | integer |          | `100`                    | Maximum number of items to return. Must be between 1 and 1000 (inclusive).                                            |
| `cursor`  | string  |          | `"dXNlcjpVMDYxTkZUVDA="` | Pagination cursor from response\_metadata.next\_cursor of a previous response. Use to fetch the next page of results. |

***

### `Slack List All Channels`

Integration name: **SLACK\_LIST\_ALL\_CHANNELS**

Lists conversations available to the user with various filters and search options. Always use resolved `channel_id` (not display names) for downstream operations, as names may be non-unique. The `created` field in results is a Unix epoch timestamp (UTC). Pagination across large workspaces may return HTTP 429 with a `Retry-After` header; honor the delay and resume from the last successful cursor.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------ | ------- | :------: | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`            | integer |          | `100`                              | Maximum number of channels to return per page (1 to 1000). Fewer channels may be returned than requested. This schema defaults to 1 if omitted.                                                                                                                                                                                                                                                                                                                               |
| `types`            | string  |          | `"public_channel,private_channel"` | Comma-separated list of conversation types to include: `public_channel` (regular #channels everyone can join), `private_channel` (invite-only channels), `im` (1-on-1 direct messages), `mpim` (group direct messages with 3+ people). Defaults to `public_channel` if omitted. Private channels, IMs, and MPIMs only appear if the authenticated user/bot is a member and the token has the required scopes; absence from results reflects access limits, not non-existence. |
| `cursor`           | string  |          | `"dXNlcjpVMDYxTkZUVDI="`           | Pagination cursor (from a previous response's `next_cursor`) for the next page of results. Omit for the first page. Loop on `response_metadata.next_cursor` until it is empty to retrieve all channels; stopping early silently omits results.                                                                                                                                                                                                                                |
| `team_id`          | string  |          | `"T1234567890"`                    | Encoded team id to list channels in. Required if using an org-level token.                                                                                                                                                                                                                                                                                                                                                                                                    |
| `exclude_archived` | boolean |          | `true`                             | Excludes archived channels if true. The API defaults to false (archived channels are included).                                                                                                                                                                                                                                                                                                                                                                               |

***

### `Slack List All Users`

Integration name: **SLACK\_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. Filter response fields `is_bot`, `is_app_user`, and `deleted` to build human-only rosters. Profile fields like `email` and `phone` may be absent depending on OAuth scopes and workspace privacy settings. Guest/restricted accounts may be omitted based on scopes—do not treat results as a complete directory. High-frequency calls risk HTTP 429; honor the `Retry-After` header and throttle to \~1–2 requests/second. Use stable user IDs rather than display names for mapping. Prefer SLACK\_FIND\_USERS for targeted lookups; cache results to avoid full-workspace fetches.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example                  | Description                                                                                                                                                                                                                                                         |
| ---------------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`          | integer |          | `"20"`                   | Maximum number of items to return per page; fewer may be returned if the end of the list is reached. Recommended to set a value (e.g., 100) as Slack may error for large workspaces if omitted.                                                                     |
| `cursor`         | string  |          | `"dXNlcjpVMDYxREk0STM="` | Pagination cursor for fetching subsequent pages. Set to `next_cursor` from a previous response's `response_metadata`. Omit for the first page. Paginate until `next_cursor` is empty—stopping early silently undercounts users. Page size is capped at \~200 users. |
| `team_id`        | string  |          | `"T0984H91R2N"`          | The workspace/team ID to list users from. Required when using an org-level token (Enterprise Grid). This field is ignored when using a workspace-level token. Use admin.teams.list to get available team IDs.                                                       |
| `include_locale` | boolean |          | `"true"`                 | Include the `locale` field for each user. Defaults to `false`.                                                                                                                                                                                                      |

***

### `Slack List Approved Workspace Invite Requests`

Integration name: **SLACK\_LIST\_APPROVED\_WORKSPACE\_INVITE\_REQUESTS**

List all approved workspace invite requests with pagination support. Use to review which invite requests have been approved and the details of each approval. Requires admin.invites:read scope and Enterprise Grid organization.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                   |
| --------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`   | integer |          | `100`                    | The number of results that will be returned by the API on each invocation. Must be between 1 - 1000, both inclusive. Default is 100 if not specified.         |
| `cursor`  | string  |          | `"dXNlcjpVMDYxTkZUVDA="` | Value of the `next_cursor` field sent as part of the previous API response. Use for pagination to retrieve the next page of results.                          |
| `team_id` | string  |          | `"T0AB0BSTDV5"`          | ID for the workspace where the invite requests were made. If not provided, lists approved requests across all workspaces in the Enterprise Grid organization. |

***

### `Slack List Auth Teams`

Integration name: **SLACK\_LIST\_AUTH\_TEAMS**

Obtains a paginated list of workspaces your org-wide app has been approved for. Use when you need to discover all workspaces within an organization where the app is installed.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter      | Type    | Required | Example                      | Description                                                                                                                                                                    |
| -------------- | ------- | :------: | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `limit`        | integer |          | `100`                        | The maximum number of items to return. Must be a positive integer no larger than 1000. Default is 100 if not specified.                                                        |
| `cursor`       | string  |          | `"dXNlcl9pZDo5MTQyOTI5Mzkz"` | Paginate through collections of data by setting the cursor parameter to a next\_cursor attribute returned by a previous request's response\_metadata. Omit for the first page. |
| `include_icon` | boolean |          | `true`                       | When true, the response returns URIs to the avatar images that represent each workspace.                                                                                       |

***

### `Slack List Canvases`

Integration name: **SLACK\_LIST\_CANVASES**

DEPRECATED: Use SLACK\_LIST\_FILES\_WITH\_FILTERS\_IN\_SLACK instead (pass types="canvas" for equivalent behavior). Lists Slack Canvases with filtering by channel, user, timestamp, and page-based pagination. Uses Slack's files.list API with types=canvas filter. Only canvases accessible to the authenticated app are returned; missing canvases indicate permissions restrictions, not empty data. Use `paging.pages` in the response to determine total pages; iterate `page` with `count` to retrieve all results. Known limitations: - The 'user' filter may return canvases accessible to the specified user, not just canvases they created. - The 'ts\_from' and 'ts\_to' timestamp filters may not work reliably for canvas types. Consider client-side filtering on the 'created' field in the response if precise date filtering is required.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                    | Type    | Required | Example         | Description                                                                                                                                                                                          |
| ---------------------------- | ------- | :------: | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `page`                       | integer |          | —               | Page number for pagination (1-based)                                                                                                                                                                 |
| `user`                       | string  |          | `"U1234567890"` | Optional user ID to filter canvases created by a specific user. Note: This filter may return canvases accessible to the user (not just created by them) due to Slack API behavior with canvas types. |
| `count`                      | integer |          | —               | Maximum number of canvases to return per page (1-1000)                                                                                                                                               |
| `ts_to`                      | integer |          | `1678972800`    | Filter canvases created before this Unix timestamp (inclusive). Pass as integer epoch seconds. Note: This filter may not work reliably for canvas types in the Slack API.                            |
| `channel`                    | string  |          | `"C1234567890"` | Optional channel ID (e.g., 'C1234567890') to filter canvases. Must be a channel ID, not name.                                                                                                        |
| `team_id`                    | string  |          | `"T1234567890"` | Team/Workspace ID for Enterprise Grid organizations (starts with 'T'). Required when using org-level tokens. For single-workspace installations, this parameter is optional and will be ignored.     |
| `ts_from`                    | integer |          | `1678886400`    | Filter canvases created after this Unix timestamp (inclusive). Pass as integer epoch seconds. Note: This filter may not work reliably for canvas types in the Slack API.                             |
| `show_files_hidden_by_limit` | boolean |          | —               | Display truncated file metadata for older files when workspace has exceeded file limits. When true, shows metadata for files that would normally be hidden due to workspace storage limits.          |

***

### `Slack List Conversations`

Integration name: **SLACK\_LIST\_CONVERSATIONS**

List conversations (channels/DMs) accessible to a specified user (or the authenticated user if no user ID is provided), respecting shared membership for non-public channels. Returns conversation IDs (C\* for channels, G\* for group DMs), not display names. Absence of private channels, DMs, or MPIMs from results indicates token scope or membership limits, not that the conversation is nonexistent.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------------ | ------- | :------: | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `user`             | string  |          | `"U123ABC456"`                     | The ID of the user whose conversations will be listed. If not provided, conversations for the authenticated user are returned. Non-public channels are restricted to those where the calling user (authenticating user) shares membership.                                                                                                                                                                                                                                                                         |
| `limit`            | integer |          | `"100"`                            | The maximum number of items to return per page. Must be an integer, typically between 1 and 1000 (e.g., 100). If omitted, the API's default limit (often 100) applies. Fewer items than the limit may be returned.                                                                                                                                                                                                                                                                                                 |
| `types`            | string  |          | `"public_channel,private_channel"` | Comma-separated list of conversation types to include: `public_channel` (regular #channels everyone can join), `private_channel` (invite-only channels), `im` (1-on-1 direct messages), `mpim` (group direct messages with 3+ people). If omitted, all types are included. If omitted, the API defaults to `public_channel` only — explicitly specify all desired types to include private channels, DMs, or MPIMs. For `im` results, only user IDs are returned; use a user-lookup tool to resolve display names. |
| `cursor`           | string  |          | `"dXNlcjpVMDYxREk0Nlc="`           | Pagination cursor for retrieving the next set of results. Obtain this from the `next_cursor` field in a previous response's `response_metadata`. If omitted, the first page is fetched. Must loop on `next_cursor` until it is empty to avoid silently missing conversations.                                                                                                                                                                                                                                      |
| `team_id`          | string  |          | `"T1234567890"`                    | The team (workspace) ID to filter conversations by. Required for Enterprise Grid tokens to specify which workspace. Can be obtained from team.info API.                                                                                                                                                                                                                                                                                                                                                            |
| `exclude_archived` | boolean |          | `"true"`                           | Set to `true` to exclude archived channels from the list. If `false` or omitted, archived channels are typically included (the API's default behavior for omission will apply, usually including them).                                                                                                                                                                                                                                                                                                            |

***

### `Slack List Custom Emojis`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter            | Type    | Required | Example | Description                                                                                                                                                        |
| -------------------- | ------- | :------: | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `include_categories` | boolean |          | —       | Include a list of categories for Unicode emoji and the emoji in each category. When true, the response will include 'categories' and 'categories\_version' fields. |

***

### `Slack List Denied Workspace Invite Requests`

Integration name: **SLACK\_LIST\_DENIED\_WORKSPACE\_INVITE\_REQUESTS**

Tool to list all denied workspace invite requests with details about who denied them and when. Use when you need to review or audit denied invitation requests.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                        |
| --------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `limit`   | integer |          | `100`                    | The number of results that will be returned by the API on each invocation. Must be between 1-1000 inclusive.       |
| `cursor`  | string  |          | `"dXNlcjpVMDYxREk0STM="` | Value of the next\_cursor field sent as part of the previous API response for pagination. Omit for the first page. |
| `team_id` | string  |          | `"T0984H91R2N"`          | ID for the workspace where the invite requests were made. Required for Enterprise Grid organizations.              |

***

### `Slack List Enterprise Teams`

Integration name: **SLACK\_LIST\_ENTERPRISE\_TEAMS**

List all teams (workspaces) in a Slack Enterprise Grid organization with pagination support. Use when you need to retrieve team IDs, names, domains, and metadata for all workspaces in an Enterprise. Requires admin.teams:read scope and Enterprise Grid organization.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                         |
| --------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`   | integer |          | `10`                     | The maximum number of items to return per page. Must be between 1 and 100 both inclusive. If omitted, the API's default limit applies. Fewer items may be returned. |
| `cursor`  | string  |          | `"dXNlcjpVMDYxREk0STM="` | Set cursor to next\_cursor returned by the previous call to list items in the next page. Omit for the first page.                                                   |

***

### `Slack List Files With Filters In Slack`

Integration name: **SLACK\_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. Results are limited to files visible to the authenticated user — files in private channels or restricted to certain members require appropriate membership and permissions. For large workspaces, check `paging.pages` in the response to determine total pages when paginating.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                    | Type    | Required | Example         | Description                                                                                                                                                                                                 |
| ---------------------------- | ------- | :------: | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `page`                       | string  |          | `"1"`           | Specifies the page number of the results to retrieve when paginating. Default is 1.                                                                                                                         |
| `user`                       | string  |          | `"W1234567890"` | Filter files created by a single user. Provide the Slack User ID.                                                                                                                                           |
| `count`                      | string  |          | `"100"`         | Specifies the number of files to return per page. Default is 100, maximum is 1000.                                                                                                                          |
| `ts_to`                      | integer |          | `"1678972800"`  | Filter files created before this Unix timestamp (inclusive).                                                                                                                                                |
| `types`                      | string  |          | `"images"`      | Filter by file type (comma-separated). Valid types: `all` (everything), `spaces` (Posts/long-form content), `snippets` (code snippets), `images`, `pdfs`, `gdocs` (Google Docs), `zips`. Defaults to 'all'. |
| `channel`                    | string  |          | `"C1234567890"` | Filter files appearing in a specific channel, indicated by its Slack Channel ID.                                                                                                                            |
| `team_id`                    | string  |          | `"T1234567890"` | The team/workspace ID to list files from. Required for Enterprise Grid workspaces.                                                                                                                          |
| `ts_from`                    | integer |          | `"1678886400"`  | Filter files created after this Unix timestamp (inclusive).                                                                                                                                                 |
| `show_files_hidden_by_limit` | boolean |          | `true`          | Show truncated file info for files hidden due to being too old or if the team owning the file is over the storage limit.                                                                                    |

***

### `Slack List Idp Groups Linked To Channel`

Integration name: **SLACK\_LIST\_IDP\_GROUPS\_LINKED\_TO\_CHANNEL**

Lists IDP groups that have restricted access to a private Slack channel. Use when you need to see which identity provider groups can access a specific channel.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example         | Description                                                                                                                               |
| ------------ | ------ | :------: | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `team_id`    | string |          | `"T0984H91R2N"` | The workspace where the channel exists. Required for channels tied to one workspace, optional for channels shared across an organization. |
| `channel_id` | string |     ✅    | `"C0ABHF7RSLR"` | The channel ID to list IDP groups for. This is the unique identifier for the private channel.                                             |

***

### `Slack List Pending Workspace Invite Requests`

Integration name: **SLACK\_LIST\_PENDING\_WORKSPACE\_INVITE\_REQUESTS**

Tool to list all pending workspace invite requests. Use when you need to see who has been invited but hasn't joined yet. Requires admin.invites:read scope.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                       |
| --------- | ------- | :------: | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`   | integer |          | `100`                    | The number of results that will be returned by the API on each invocation. Must be between 1 and 1000 (both inclusive). If not specified, uses the API's default. |
| `cursor`  | string  |          | `"dXNlcjpVMDYxREk0STM="` | Value of the `next_cursor` field sent as part of the previous API response. Used for pagination to fetch subsequent pages of results. Omit for the first page.    |
| `team_id` | string  |          | `"T0984H91R2N"`          | ID for the workspace where the invite requests were made. If not provided, lists requests for all workspaces the token has access to.                             |

***

### `Slack List Pinned Items`

Integration name: **SLACK\_LIST\_PINNED\_ITEMS**

Retrieves all messages and files pinned to a specified channel; the caller must have access to this channel.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                                           |
| --------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `channel` | string |     ✅    | `"C1234567890"` | The ID of the channel to retrieve pinned items from. This can be a public channel ID, private group ID, or direct message channel ID. |

***

### `Slack List Reminders`

Integration name: **SLACK\_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). Reminder text is not unique—perform client-side matching on returned objects before extracting a reminder ID for use with SLACK\_DELETE\_A\_SLACK\_REMINDER.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                                |
| --------- | ------ | :------: | --------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `team_id` | string |          | `"T1234567890"` | Encoded team id. Required if org token is passed. Omitting this when using an org-level token will cause the call to fail. |

***

### `Slack List Remote Files`

Integration name: **SLACK\_LIST\_REMOTE\_FILES**

Retrieve information about a team's remote files.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                                                                                                     |
| --------- | ------- | :------: | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`   | integer |          | `20`                     | The maximum number of items to return.                                                                                                                                                                                                          |
| `ts_to`   | number  |          | `123456789.012345`       | Filter files created before this timestamp (inclusive).                                                                                                                                                                                         |
| `cursor`  | string  |          | `"dXNlcjpVMDYxTkZUVDI="` | Paginate through collections of data by setting the cursor parameter to a next\_cursor attribute returned by a previous request's response\_metadata. Default value fetches the first 'page' of the collection. See pagination for more detail. |
| `channel` | string  |          | `"C1234567890"`          | Filter files appearing in a specific channel, indicated by its ID.                                                                                                                                                                              |
| `ts_from` | number  |          | `123456789.012345`       | Filter files created after this timestamp (inclusive).                                                                                                                                                                                          |

***

### `Slack List Restricted Apps`

Integration name: **SLACK\_LIST\_RESTRICTED\_APPS**

Tool to list restricted apps for an org or workspace. Use when you need to view apps that have been restricted from installation. Requires admin.apps:read scope and appropriate admin permissions.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example                  | Description                                                                                                                                                      |
| --------------- | ------- | :------: | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`         | integer |          | `100`                    | The maximum number of items to return. Must be between 1 and 1000 (inclusive). If omitted, the API default applies.                                              |
| `cursor`        | string  |          | `"dXNlcjpVMDYxTkZUVDA="` | Pagination cursor from response\_metadata.next\_cursor of a previous response. Set to next\_cursor returned by the previous call to list items in the next page. |
| `team_id`       | string  |          | `"T1234567890"`          | The workspace/team ID to list restricted apps from. Use this to filter by a specific workspace within an Enterprise Grid organization.                           |
| `certified`     | boolean |          | `true`                   | Filter results to certified apps only. When false, certified apps are excluded from results. Defaults to false if not specified.                                 |
| `enterprise_id` | string  |          | `"E1234567890"`          | The Enterprise Grid organization ID to list restricted apps from. Use this to filter by a specific enterprise organization.                                      |

***

### `Slack List Scheduled Messages`

Integration name: **SLACK\_LIST\_SCHEDULED\_MESSAGES**

Retrieves a list of pending (not yet delivered) messages scheduled in a specific Slack channel, or across all accessible channels if no channel ID is provided, optionally filtered by time and paginated.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                             |
| --------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`   | integer |          | `"100"`                  | Maximum messages per page (1-1000). Defaults to 100.                                                                                                    |
| `cursor`  | string  |          | `"dXNlcjpVMDYxREk0STM="` | Pagination cursor from response\_metadata.next\_cursor of a previous response. Omit for the first page.                                                 |
| `latest`  | string  |          | `"1678886400.000000"`    | Latest UNIX timestamp (exclusive) for messages. Defaults to the current time if omitted.                                                                |
| `oldest`  | string  |          | `"1678800000.000000"`    | Earliest UNIX timestamp (inclusive) for messages. Defaults to 0 if omitted.                                                                             |
| `channel` | string  |          | `"C1234567890"`          | ID or name of the channel (public, private, or DM) to list messages for. If omitted, lists for all accessible channels in the workspace.                |
| `team_id` | string  |          | `"T1234567890"`          | The workspace ID (team\_id) to list scheduled messages for. Required when using an org-level token; will be ignored when using a workspace-level token. |

***

### `Slack List Starred Items`

Integration name: **SLACK\_LIST\_STARRED\_ITEMS**

Lists items starred by a user. Returns classic starred items only — does not reflect Slack's 'saved for later' feature. Use SLACK\_SEARCH\_MESSAGES or SLACK\_SEARCH\_ALL for broader saved-content queries.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                                                              |
| --------- | ------- | :------: | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `page`    | integer |          | `2`                      | Page number of results to return.                                                                                                                                                                        |
| `count`   | integer |          | `20`                     | Number of items to return per page.                                                                                                                                                                      |
| `limit`   | integer |          | `20`                     | The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.                                                        |
| `cursor`  | string  |          | `"dXNlcjpVMDYxTkZUVDI="` | Parameter for pagination. Set cursor to the next\_cursor attribute returned by the previous request's response\_metadata. Continue paginating until next\_cursor is empty to retrieve all starred items. |
| `team_id` | string  |          | `"T1234567890"`          | Encoded team id to list stars in, required if org token is used.                                                                                                                                         |

***

### `Slack List User Group Members`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example         | Description                                                                                                                                                              |
| ------------------ | ------- | :------: | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `team_id`          | string  |          | `"T1234567890"` | The encoded ID of the team/workspace. Only relevant when using an org-level token. This field will be ignored if the API call is sent using a workspace-level token.     |
| `usergroup`        | string  |     ✅    | `"S0604QSJC"`   | The encoded ID of the User Group to list users from. This ID is an alphanumeric string.                                                                                  |
| `include_disabled` | boolean |          | —               | Set to `true` to include users from disabled user groups. If omitted, the default Slack API behavior for handling disabled groups (typically excluding them) will apply. |

***

### `Slack List User Groups`

Integration name: **SLACK\_LIST\_USER\_GROUPS**

Lists user groups in a Slack workspace, including user-created and default groups; results for large workspaces may be paginated.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example         | Description                                                                     |
| ------------------ | ------- | :------: | --------------- | ------------------------------------------------------------------------------- |
| `team_id`          | string  |          | `"T1234567890"` | Encoded team ID to list user groups in. Required when using an org-level token. |
| `include_count`    | boolean |          | `"true"`        | Include the number of users in each user group. Defaults to false.              |
| `include_users`    | boolean |          | `"true"`        | Include the list of user IDs for each user group. Defaults to false.            |
| `include_disabled` | boolean |          | `"true"`        | Include disabled user groups in the results. Defaults to false.                 |

***

### `Slack List User Reactions`

Integration name: **SLACK\_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. Results are paginated; check `response_metadata.next_cursor` and iterate with the `cursor` parameter to retrieve complete reaction history.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                                                       |
| --------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `full`    | boolean |          | —                        | If true, return the complete reaction list, which may include reactions to deleted items. Significantly inflates payload size; enable only when reactions to deleted items are explicitly needed. |
| `page`    | integer |          | `"1"`                    | Page number of results to return.                                                                                                                                                                 |
| `user`    | string  |          | `"U012A3CDEFG"`          | Reactions made by this user. Defaults to the authed user.                                                                                                                                         |
| `count`   | integer |          | `"20"`                   | Number of items to return per page.                                                                                                                                                               |
| `limit`   | integer |          | `"100"`                  | Maximum number of items to return; fewer items may be returned. Use with cursor-based pagination.                                                                                                 |
| `cursor`  | string  |          | `"dXNlcjpVMDYxTkZ0NUI="` | Pagination cursor. Set to `next_cursor` from a previous response's `response_metadata`. See Slack API pagination documentation for details.                                                       |
| `team_id` | string  |          | `"T1234567890"`          | Required when using an org-level token. The ID of the workspace to list reactions from.                                                                                                           |

***

### `Slack List Workspace Admins`

Integration name: **SLACK\_LIST\_WORKSPACE\_ADMINS**

Tool to list all admins on a given Slack workspace. Use when you need to identify workspace administrators. Requires Enterprise Grid organization and admin.teams:read scope.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                      |
| --------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `limit`   | integer |          | `20`                     | The maximum number of items to return per page. Must be between 1 and 1000 (inclusive). Fewer may be returned if the end of the list is reached. |
| `cursor`  | string  |          | `"dXNlcjpVMDYxREk0STM="` | Pagination cursor for fetching subsequent pages. Set to next\_cursor from a previous response. Omit for the first page.                          |
| `team_id` | string  |     ✅    | `"T0AB0BSTDV5"`          | The ID of the workspace to list admins for. Required for Enterprise Grid organizations.                                                          |

***

### `Slack List Workspace Owners`

Integration name: **SLACK\_LIST\_WORKSPACE\_OWNERS**

Tool to list all owners on a given Slack workspace. Use when you need to identify workspace ownership or admin structure. Requires admin.teams:read scope.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                              |
| --------- | ------- | :------: | ------------------------ | ---------------------------------------------------------------------------------------- |
| `limit`   | integer |          | `100`                    | The maximum number of items to return. Must be between 1 and 1000 (inclusive).           |
| `cursor`  | string  |          | `"dXNlcjpVMDYxREk0STM="` | Set cursor to next\_cursor returned by the previous call to list items in the next page. |
| `team_id` | string  |     ✅    | `"T0AB0BSTDV5"`          | The workspace ID to list owners for. Required parameter.                                 |

***

### `Slack List Workspace Users`

Integration name: **SLACK\_LIST\_WORKSPACE\_USERS**

Retrieves a paginated list of admin users for a specified Slack workspace.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                             | Type    | Required | Example                  | Description                                                                                                                                                                                  |
| ------------------------------------- | ------- | :------: | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`                               | integer |          | `"20"`                   | The maximum number of admin users to retrieve per page. Must be a positive integer. If not specified, defaults to 100.                                                                       |
| `cursor`                              | string  |          | `"dXNlcjpVMEc5V0ZYTlo="` | Pagination cursor for retrieving the next page of results. Pass the `next_cursor` value returned from a previous request to fetch subsequent items. If omitted, the first page is retrieved. |
| `team_id`                             | string  |          | `"T123456789"`           | The ID of the Slack workspace (e.g., `T123456789`) from which to list admin users. If omitted when using an org-level token, returns users across the entire Enterprise organization.        |
| `is_active`                           | boolean |          | `"true"`                 | Filter users by their activity status. Set to true to return only active users, false to return only deactivated users. If omitted, defaults to true (active users only).                    |
| `only_guests`                         | boolean |          | `"true"`                 | When true, returns only guest accounts and their expiration dates for the specified team. Defaults to false.                                                                                 |
| `include_deactivated_user_workspaces` | boolean |          | `"true"`                 | Only applicable with org-level tokens. When true, returns user workspaces regardless of the user's deactivation status. Defaults to false.                                                   |

***

### `Slack Lookup Canvas Sections`

Integration name: **SLACK\_LOOKUP\_CANVAS\_SECTIONS**

Looks up section IDs in a Slack Canvas for use with targeted edit operations. Section IDs are needed for insert\_after, insert\_before, delete, and section-specific replace operations.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter   | Type   | Required | Example                       | Description                                                                                                                             |
| ----------- | ------ | :------: | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `criteria`  | object |     ✅    | `{"contains_text":"grocery"}` | Search criteria to find sections. Use 'contains\_text' to search for text within sections. Returns section IDs that match the criteria. |
| `canvas_id` | string |     ✅    | `"F01234ABCDE"`               | The unique identifier of the canvas to lookup sections in                                                                               |

***

### `Slack Open Dm`

Integration name: **SLACK\_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. Returns `already_open=true` when the DM exists — treat as success and reuse the returned `channel.id` (starts with 'D') for subsequent SLACK\_SEND\_MESSAGE calls; passing a username, email, or user ID directly to SLACK\_SEND\_MESSAGE causes `channel_not_found`. Avoid redundant calls when an existing DM channel ID is available.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter          | Type    | Required | Example         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ------------------ | ------- | :------: | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `users`            | string  |          | `"U0123456789"` | Comma-separated string of user IDs (1 for a DM, or 2-8 for an MPIM) to open/resume a conversation. Order is preserved for MPIMs. Either `channel` or `users` must be provided. Accepts list input (will be converted to comma-separated string). Also accepts `user_ids` as alias. Do not pass emails, display names, or workspace usernames — only Slack user IDs (e.g., `U0123456789`). Do not provide both `users` and `channel` simultaneously. |
| `channel`          | string  |          | `"D0123456789"` | ID or name of an existing DM or MPIM channel to open/resume. Either `channel` or `users` must be provided.                                                                                                                                                                                                                                                                                                                                          |
| `return_im`        | boolean |          | —               | If `true`, returns the full DM channel object. Applies only when opening a DM via a single user ID in `users` (not with `channel`).                                                                                                                                                                                                                                                                                                                 |
| `prevent_creation` | boolean |          | —               | Do not create a direct message or multi-person direct message. This is used to see if there is an existing dm or mpdm.                                                                                                                                                                                                                                                                                                                              |

***

### `Slack Pin Item`

Integration name: **SLACK\_PIN\_ITEM**

Pins a message to a specified Slack channel; the message must not already be pinned.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter   | Type   | Required | Example               | Description                                                                                                                                    |
| ----------- | ------ | :------: | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `channel`   | string |     ✅    | `"C1234567890"`       | The ID of the channel where the message will be pinned.                                                                                        |
| `timestamp` | string |     ✅    | `"1624464000.000200"` | Timestamp of the message to pin, in ‘epoch\_time.microseconds’ format (e.g., ‘1624464000.000200’). This is required by the Slack pins.add API. |

***

### `Slack Read Audit Logs`

Integration name: **SLACK\_READ\_AUDIT\_LOGS**

Read Slack Enterprise Grid Audit Logs (logins, admin changes, app installs, channel/privacy changes, etc.) with server-side filters and pagination. Requires Enterprise Grid organization with auditlogs:read scope and a user token (xoxp-...) from an owner/admin context.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                                                        |
| --------- | ------- | :------: | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `actor`   | string  |          | `"U1234567890"`          | User ID of the actor who performed the actions. Filters results to only show actions by this user.                                                                                                 |
| `limit`   | integer |          | `100`                    | Maximum number of audit log entries to return (max 9999). Fewer entries may be returned if there aren't enough matching results.                                                                   |
| `action`  | string  |          | `"user_login"`           | Comma-separated list of action types to filter by (max 30). Examples: 'user\_login', 'user\_logout', 'channel\_created', 'app\_installed'. See Slack's Audit Logs API documentation for full list. |
| `cursor`  | string  |          | `"dXNlcjpVMDYxTkZUVDA="` | Pagination cursor from response\_metadata.next\_cursor of a previous response. Use to fetch the next page of results.                                                                              |
| `entity`  | string  |          | `"E1234567890"`          | Entity ID that was affected by the actions. Filters results to only show actions affecting this entity.                                                                                            |
| `latest`  | integer |          | `1609545600`             | Unix timestamp (inclusive) of the latest audit log entry to include. Use for time-range filtering.                                                                                                 |
| `oldest`  | integer |          | `1609459200`             | Unix timestamp (inclusive) of the oldest audit log entry to include. Use for time-range filtering.                                                                                                 |

***

### `Slack Remove Call Participants`

Integration name: **SLACK\_REMOVE\_CALL\_PARTICIPANTS**

Registers participants removed from a Slack call.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                                                      | Description                                                                                                                         |
| --------- | ------ | :------: | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| `id`      | string |     ✅    | `"R0123456789"`                                              | ID of the call returned by the add method.                                                                                          |
| `users`   | string |     ✅    | `"[{\"slack_id\": \"U1H77\", \"external_id\": \"ext-id\"}]"` | The list of users to remove as participants in the call. users is a JSON array with each user having a `slack_id` or `external_id`. |

***

### `Slack Remove Emoji`

Integration name: **SLACK\_REMOVE\_EMOJI**

Tool to remove a custom emoji across an Enterprise Grid organization. Use when you need to delete a custom emoji from the entire organization.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example             | Description                                                                                                                                                                                           |
| --------- | ------ | :------: | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`    | string |     ✅    | `"my_test_alias_1"` | The name of the emoji to be removed. Colons (`:myemoji:`) around the value are not required, although they may be included. The emoji will be removed across the entire Enterprise Grid organization. |

***

### `Slack Remove Reaction From Item`

Integration name: **SLACK\_REMOVE\_REACTION\_FROM\_ITEM**

Removes an emoji reaction from a message, file, or file comment in Slack. Provide exactly one targeting method: channel+timestamp together, file, or file\_comment. Mixing methods or omitting all returns invalid\_arguments.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter      | Type   | Required | Example      | Description                                                                                                                                                       |
| -------------- | ------ | :------: | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file`         | string |          | —            | ID of the file to remove the reaction from.                                                                                                                       |
| `name`         | string |     ✅    | `"thumbsup"` | Name of the emoji reaction to remove (e.g., 'thumbsup'), without colons. Must be Slack's canonical emoji name; non-canonical names return a 'no\_reaction' error. |
| `channel`      | string |          | —            | Channel ID of the message. Required if `timestamp` is provided.                                                                                                   |
| `timestamp`    | string |          | —            | Timestamp of the message. Required if `channel` is provided.                                                                                                      |
| `file_comment` | string |          | —            | ID of the file comment to remove the reaction from.                                                                                                               |

***

### `Slack Remove Remote File`

Integration name: **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 `external_id` or `file` ID (one of which is required), without deleting the actual external file.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example                       | Description                                              |
| ------------- | ------ | :------: | ----------------------------- | -------------------------------------------------------- |
| `file`        | string |          | `"F0123ABCDEF"`               | Slack-specific file ID.                                  |
| `token`       | string |          | —                             | Authentication token.                                    |
| `external_id` | string |          | `"my-unique-file-guid-12345"` | Creator-defined, globally unique ID (GUID) for the file. |

***

### `Slack Remove Star`

Integration name: **SLACK\_REMOVE\_STAR**

Removes a star from a previously starred Slack item (message, file, file comment, channel, group, or DM), requiring identification via `file`, `file_comment`, `channel` (for channel/group/DM), or both `channel` and `timestamp` (for a message).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter      | Type   | Required | Example               | Description                                                                                             |
| -------------- | ------ | :------: | --------------------- | ------------------------------------------------------------------------------------------------------- |
| `file`         | string |          | `"F1234567890"`       | ID of the file to unstar.                                                                               |
| `channel`      | string |          | `"C1234567890"`       | ID of the item (channel, private group, DM) or the message's channel (if `timestamp` is also provided). |
| `timestamp`    | string |          | `"1629883200.000100"` | Timestamp of the message to unstar; requires `channel`.                                                 |
| `file_comment` | string |          | `"Fc1234567890"`      | ID of the file comment to unstar.                                                                       |

***

### `Slack Remove User From Conversation`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                               |
| --------- | ------ | :------: | --------------- | --------------------------------------------------------- |
| `user`    | string |          | `"U012A3BCD4E"` | The ID of the user to be removed from the conversation.   |
| `channel` | string |          | `"C012AB3CD4E"` | ID of the conversation (channel) to remove the user from. |

***

### `Slack Remove User From Workspace`

Integration name: **SLACK\_REMOVE\_USER\_FROM\_WORKSPACE**

Tool to remove a user from a Slack workspace. Use when you need to revoke a user's access to a workspace.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                |
| --------- | ------ | :------: | --------------- | -------------------------------------------------------------------------- |
| `team_id` | string |     ✅    | `"T0AB0BSTDV5"` | The ID of the workspace (e.g., T1234567890) from which to remove the user. |
| `user_id` | string |     ✅    | `"U0984HARZHQ"` | The ID of the user to remove from the workspace.                           |

***

### `Slack Rename Conversation`

Integration name: **SLACK\_RENAME\_CONVERSATION**

Renames a Slack channel, automatically adjusting the new name to meet naming conventions (e.g., converting to lowercase), which may affect integrations using the old name.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example              | Description                                                                                                                         |
| --------- | ------ | :------: | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `name`    | string |          | `"new-channel-name"` | New name for the conversation. Must be 80 characters or less and contain only lowercase letters, numbers, hyphens, and underscores. |
| `channel` | string |          | `"C012AB3CD"`        | ID of the conversation (channel) to rename.                                                                                         |

***

### `Slack Rename Emoji`

Integration name: **SLACK\_RENAME\_EMOJI**

Renames an existing custom emoji in a Slack workspace, updating all its instances.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter  | Type   | Required | Example                | Description                                                                                                                |
| ---------- | ------ | :------: | ---------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `name`     | string |     ✅    | `"current_emoji_name"` | Current name of the custom emoji to be renamed. Colons (e.g., `:current_emoji:`) are optional.                             |
| `new_name` | string |     ✅    | `"new_emoji_name"`     | Desired new name for the custom emoji. Must be unique within the workspace and adhere to Slack's emoji naming conventions. |

***

### `Slack Reset User Sessions`

Integration name: **SLACK\_RESET\_USER\_SESSIONS**

Tool to wipe all valid sessions on all devices for a given user. Use when you need to force a user to re-authenticate due to security concerns or account changes.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type    | Required | Example         | Description                                                      |
| ------------- | ------- | :------: | --------------- | ---------------------------------------------------------------- |
| `user_id`     | string  |     ✅    | `"U1234567890"` | The ID of the user to wipe sessions for (e.g., U1234567890).     |
| `web_only`    | boolean |          | —               | Only expire web sessions. Defaults to false if not specified.    |
| `mobile_only` | boolean |          | —               | Only expire mobile sessions. Defaults to false if not specified. |

***

### `Slack Restrict App Installation`

Integration name: **SLACK\_RESTRICT\_APP\_INSTALLATION**

Restrict an app for installation on a workspace. Use when you need to prevent an app from being installed on a specific workspace or enterprise organization.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type   | Required | Example          | Description                                                                                                                                  |
| --------------- | ------ | :------: | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `app_id`        | string |          | `"A08U8HZHY0Y"`  | The ID of the app to restrict (e.g., A08U8HZHY0Y). Either app\_id or request\_id must be provided.                                           |
| `team_id`       | string |          | `"T1234567890"`  | The workspace ID to restrict the app installation for (e.g., T1234567890). Either team\_id or enterprise\_id must be provided.               |
| `request_id`    | string |          | `"Ar1234567890"` | The ID of the app installation request to restrict. Either app\_id or request\_id must be provided.                                          |
| `enterprise_id` | string |          | `"E0984HGHPJ6"`  | The enterprise organization ID to restrict the app installation for (e.g., E0984HGHPJ6). Either team\_id or enterprise\_id must be provided. |

***

### `Slack Retrieve A User S Identity Details`

Integration name: **SLACK\_RETRIEVE\_A\_USER\_S\_IDENTITY\_DETAILS**

Retrieves the authenticated user's and their team's identity, with details varying based on OAuth scopes (e.g., `identity.basic`, `identity.email`, `identity.avatar`).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack Retrieve Conversation Information`

Integration name: **SLACK\_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. The `channel` parameter is effectively required. Private channels, DMs, or channels where the app lacks membership may return restricted data; check `is_archived` and `is_member` fields in the response to diagnose access issues. Bulk lookups may trigger HTTP 429 rate limiting; honor the `Retry-After` response header.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter             | Type    | Required | Example         | Description                                                                                                                                                                                                           |
| --------------------- | ------- | :------: | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `channel`             | string  |          | `"C1234567890"` | The ID of the conversation (channel, direct message, or multi-person direct message) to retrieve information for. Effectively required — omitting this parameter yields no useful data despite being marked optional. |
| `include_locale`      | boolean |          | —               | If true, the response will include the locale setting for the conversation. Defaults to false.                                                                                                                        |
| `include_num_members` | boolean |          | —               | If true, the response will include the number of members in the conversation. Defaults to false.                                                                                                                      |

***

### `Slack Retrieve Conversation Members List`

Integration name: **SLACK\_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. Returns only user IDs; use a user-lookup tool to enrich member data.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| --------- | ------- | :------: | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `limit`   | integer |          | `"100"`                  | The maximum number of members to return per page. Fewer items may be returned than the requested limit, even if more members exist and the end of the list hasn't been reached.                                                                                                                                                                                                                                                                                                                                                                                  |
| `cursor`  | string  |          | `"dXNlcj1VMEc5V0ZYTlo="` | Pagination cursor value for fetching specific pages of results. To retrieve the next page, provide the `next_cursor` value obtained from the `response_metadata` of the previous API call. If omitted or empty, the first page of members is fetched. For more details on pagination, refer to Slack API documentation. Loop by passing `next_cursor` into subsequent calls until `next_cursor` is empty to avoid silently truncating large member lists.                                                                                                        |
| `channel` | string  |          | `"C1234567890"`          | ID of the conversation (public channel, private channel, direct message, or multi-person direct message) for which to retrieve the member list. Public channel IDs typically start with 'C', private channels or multi-person direct messages (MPIMs) with 'G', and direct messages (DMs) with 'D'. Channel names are NOT accepted — only IDs. Obtain IDs via SLACK\_FIND\_CHANNELS or SLACK\_LIST\_CONVERSATIONS. For private channels and MPIMs, the app must have required scopes and be a member of the conversation, otherwise members may not be returned. |

***

### `Slack Retrieve Current User Dnd Status`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                                                                                  |
| --------- | ------ | :------: | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `user`    | string |          | `"U012ABCDEF"`  | User ID to fetch DND status for. If not provided, fetches the DND status for the authenticated user.                                                                         |
| `team_id` | string |          | `"T1234567890"` | Encoded team ID where the passed user param belongs. Required if an org token is used. If no user param is passed, then a team which has access to the app should be passed. |

***

### `Slack Retrieve Detailed Information About A File`

Integration name: **SLACK\_RETRIEVE\_DETAILED\_INFORMATION\_ABOUT\_A\_FILE**

Retrieves detailed metadata and paginated comments for a specific Slack file ID; does not download file content.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example                  | Description                                                                                                                                                                                                                                                        |
| --------- | ------- | :------: | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `file`    | string  |     ✅    | `"F123ABCDEF0"`          | ID of the file to retrieve information for. This is a required field.                                                                                                                                                                                              |
| `page`    | integer |          | `1`                      | Page number of comment results to retrieve. Used for comment pagination. Slack's default is 1 if not provided. `cursor`-based pagination is generally preferred.                                                                                                   |
| `count`   | integer |          | `20`                     | Number of comments to retrieve per page. Used for comment pagination. Slack's default is 100 if not provided.                                                                                                                                                      |
| `limit`   | integer |          | `"10"`                   | The maximum number of comments to retrieve. This is an upper limit, not a guarantee of how many will be returned. Primarily used for comment pagination.                                                                                                           |
| `cursor`  | string  |          | `"dXNlcjpVMDYxRkExNDIK"` | Pagination cursor for retrieving comments. Set to `next_cursor` from a previous response's `response_metadata` to fetch the next page of comments. Essential for navigating through large sets of comments. See [pagination](https://slack.dev/) for more details. |

***

### `Slack Retrieve Detailed User Information`

Integration name: **SLACK\_RETRIEVE\_DETAILED\_USER\_INFORMATION**

Retrieves comprehensive information for a valid Slack user ID, excluding message history and channel memberships. Sensitive fields like `email` and `phone` require the `users:read.email` scope and may be silently omitted based on workspace privacy policies.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example        | Description                                                                                                                                                                          |
| ---------------- | ------- | :------: | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `user`           | string  |          | `"U012ABCDEF"` | The ID of the user to retrieve information for. Must be a Slack user ID (U- or W-prefixed); passing emails, display names, or other non-ID strings returns a `user_not_found` error. |
| `include_locale` | boolean |          | —              | Set to `true` to include the user's locale (e.g., `en-US`) in the response. Defaults to `false`.                                                                                     |

***

### `Slack Retrieve Message Permalink Url`

Integration name: **SLACK\_RETRIEVE\_MESSAGE\_PERMALINK\_URL**

Retrieves a permalink URL for a specific message in a Slack channel or conversation; the permalink respects Slack's privacy settings.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example               | Description                                                                                                                                                                                                                                                                                 |
| ------------ | ------ | :------: | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `channel`    | string |     ✅    | `"C012AB3CD"`         | The ID of the conversation or channel containing the message. This can be a public channel ID, a private channel ID, a direct message channel ID, or a multi-person direct message channel ID. Must be a channel ID, not a channel name; use SLACK\_FIND\_CHANNELS to resolve names to IDs. |
| `message_ts` | string |     ✅    | `"1610144875.000600"` | A message's `ts` value (timestamp), uniquely identifying it within a channel. Example: '1610144875.000600'.                                                                                                                                                                                 |

***

### `Slack Retrieve User Profile Information`

Integration name: **SLACK\_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. Sensitive fields like email and phone may be silently omitted if required scopes (e.g., `users:read.email`) are not granted or workspace privacy policies restrict access.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter        | Type    | Required | Example       | Description                                                                      |
| ---------------- | ------- | :------: | ------------- | -------------------------------------------------------------------------------- |
| `user`           | string  |          | `"U012A3CDE"` | User ID to retrieve profile information for; defaults to the authenticated user. |
| `include_labels` | boolean |          | `true`        | Include human-readable labels for custom profile fields. API defaults to false.  |

***

### `Slack Revoke File Public Sharing`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example        | Description                                                                                              |
| --------- | ------ | :------: | -------------- | -------------------------------------------------------------------------------------------------------- |
| `file`    | string |     ✅    | `"F123ABC456"` | The ID of the file for which to revoke the public URL. This unique identifier typically starts with 'F'. |

***

### `Slack Rtm Connect`

Integration name: **SLACK\_RTM\_CONNECT**

Starts a Real Time Messaging session and returns a WebSocket URL. Use when you need to establish a persistent RTM connection to receive real-time events from Slack.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type    | Required | Example | Description                                                                                                                           |
| ---------------------- | ------- | :------: | ------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `presence_sub`         | boolean |          | —       | Only deliver presence events when requested by subscription. See presence subscriptions documentation.                                |
| `batch_presence_aware` | boolean |          | —       | Batch presence deliveries via subscription. Enabling changes the shape of `presence_change` events. See batch presence documentation. |

***

### `Slack Rtm Start`

Integration name: **SLACK\_RTM\_START**

Starts a Real Time Messaging API session for Slack. Use when you need to establish an RTM connection with additional options beyond rtm.connect. Note: RTM API is deprecated; consider Socket Mode for new apps.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type    | Required | Example | Description                                                                                                                                                                            |
| ---------------------- | ------- | :------: | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `no_latest`            | boolean |          | `true`  | Exclude latest timestamps for channels, groups, and direct messages. When set to true, automatically sets no\_unreads to true as well.                                                 |
| `mpim_aware`           | boolean |          | `true`  | Returns MPIMs (multiparty instant messages / group DMs) in the API response when set to true. If false or omitted, MPIMs may not be included in the channels list.                     |
| `no_unreads`           | boolean |          | `true`  | Skip unread counts for each channel. When set to true, the response will not include unread message counts for channels, which can reduce payload size.                                |
| `presence_sub`         | boolean |          | `true`  | Only deliver presence events when requested by subscription. If true, presence change events will only be delivered for users explicitly subscribed to via the presence\_query method. |
| `simple_latest`        | boolean |          | `true`  | Return timestamp only for latest message in each channel. When true, only the message timestamp is returned instead of the full message object, reducing payload size.                 |
| `include_locale`       | boolean |          | `true`  | Set to true to receive locale for users and channels. When enabled, the response will include locale information for users and channels.                                               |
| `batch_presence_aware` | boolean |          | `true`  | Batch presence deliveries via subscription. If true, presence change events will be batched for subscribed users instead of delivered individually.                                    |

***

### `Slack Schedule Message`

Integration name: **SLACK\_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; scheduling is limited to 120 days in advance.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter         | Type    | Required | Example                                                                                                                                                                                  | Description                                                                                                                                                                                                                                                                                                                                            |
| ----------------- | ------- | :------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `text`            | string  |          | `"Hello, world!"`                                                                                                                                                                        | This sends raw text only, use markdown\_text field for formatting. Primary text of the message; formatting with `mrkdwn` applies. Required if `blocks` and `attachments` are not provided.                                                                                                                                                             |
| `parse`           | string  |          | `"none"`                                                                                                                                                                                 | Message text treatment: `full` for special formatting, `none` otherwise (default). See Slack's `chat.postMessage` docs for options.                                                                                                                                                                                                                    |
| `blocks`          | string  |          | \`"\[{"type": "section", "text": {"type": "mrkdwn", "text": "New Paid Time Off request from \<example.com                                                                                | Fred Enriquez>"}}]"\`                                                                                                                                                                                                                                                                                                                                  |
| `channel`         | string  |          | `"C1234567890"`                                                                                                                                                                          | Channel, private group, or DM channel ID (e.g., C1234567890) or name (e.g., #general) to send the message to. Bot must be a member of the target channel; missing membership returns `not_in_channel` error.                                                                                                                                           |
| `post_at`         | string  |          | `"1678886400"`                                                                                                                                                                           | Unix EPOCH timestamp (integer seconds since 1970-01-01 00:00:00 UTC) for the future message send time. Must be strictly greater than current time (past values return `time_in_past` error). Always convert local times to UTC epoch seconds before use; Slack evaluates in UTC only.                                                                  |
| `thread_ts`       | string  |          | `"1405894322.002768"`                                                                                                                                                                    | Timestamp of the parent message for the scheduled message to be a thread reply. Must be float seconds (e.g., `1234567890.123456`).                                                                                                                                                                                                                     |
| `link_names`      | boolean |          | —                                                                                                                                                                                        | Pass true to automatically link channel names (e.g., #general) and usernames (e.g., @user). NOTE: This parameter is deprecated by Slack; the linking behavior is primarily controlled by Slack's default message parsing. For explicit control, use the 'parse' parameter instead (set to 'full' to enable auto-linking).                              |
| `attachments`     | string  |          | `"[{\"fallback\": \"Summary text\", \"color\": \"#36a64f\", \"title\": \"Title\", \"text\": \"Content\", \"fields\": [{\"title\": \"Field\", \"value\": \"Value\", \"short\": true}]}]"` | This is Slack's legacy 'secondary attachments' field for adding rich formatting elements like colored sidebars, structured fields, and author info. Pass as a JSON string array. NOT for file/image uploads. To send files or images, use `SLACK_UPLOAD_OR_CREATE_A_FILE_IN_SLACK` instead.                                                            |
| `unfurl_links`    | boolean |          | —                                                                                                                                                                                        | Pass false to disable automatic link unfurling. Defaults to true. NOTE: Due to a known Slack API limitation, this parameter may not be respected for scheduled messages (works correctly for chat.postMessage but may be ignored by chat.scheduleMessage).                                                                                             |
| `unfurl_media`    | boolean |          | —                                                                                                                                                                                        | Pass false to disable automatic media unfurling. Defaults to true. NOTE: Due to a known Slack API limitation, this parameter may not be respected for scheduled messages (works correctly for chat.postMessage but may be ignored by chat.scheduleMessage).                                                                                            |
| `markdown_text`   | string  |          | `"# Scheduled Reminder\n\nDon't forget about the **team meeting** tomorrow at *2 PM*!\n\n```\nZoom: https://zoom.us/meeting-id\n```"`                                                    | **PREFERRED**: Write your scheduled message in markdown for nicely formatted display. Supports headers (#), bold (**text**), italic (*text*), strikethrough (~~text~~), code (\`\`\`), links ([text](broken://pages/aaa324062e3be52a5a27e3da13ef9e56a436736b)), quotes (>), and dividers (---). Your message will be posted with beautiful formatting. |
| `reply_broadcast` | boolean |          | —                                                                                                                                                                                        | With `thread_ts`, makes reply visible to all in channel, not just thread members. Defaults to `false`.                                                                                                                                                                                                                                                 |

***

### `Slack Scim Get Config`

Integration name: **SLACK\_SCIM\_GET\_CONFIG**

Tool to retrieve SCIM service provider configuration from Slack. Use when you need to discover Slack's SCIM API capabilities including supported authentication schemes, bulk operations, filtering, and other service provider features.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack Search All`

Integration name: **SLACK\_SEARCH\_ALL**

Tool to search all messages and files. Use when you need unified content search across channels and files in one call. Results are scoped to content visible to the authenticated token; missing hits in private or restricted channels reflect permission/membership gaps. Response separates messages and files into distinct sections — explicitly read the files section for document results. Results are index-based and may lag several minutes behind real-time; use SLACK\_FETCH\_CONVERSATION\_HISTORY for near-real-time per-channel coverage. Paginated searches exceeding \~1 req/sec may return HTTP 429 too\_many\_requests; honor the Retry-After header and resume from the last page.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter   | Type    | Required | Example          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ----------- | ------- | :------: | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `page`      | integer |          | `1`              | Page number of results to return; default is 1. Iterate until total\_count or page\_count signals completion.                                                                                                                                                                                                                                                                                                                                                 |
| `sort`      | string  |          | `"score"`        | Sort by `score` (relevance) or `timestamp` (chronological).                                                                                                                                                                                                                                                                                                                                                                                                   |
| `count`     | integer |          | `20`             | Number of results per page; default is 20; max is 100.                                                                                                                                                                                                                                                                                                                                                                                                        |
| `query`     | string  |     ✅    | `"error report"` | Search query supporting Slack search modifiers/booleans. Date modifiers after:, before:, on: are UTC day-based; after: is exclusive, so convert time ranges to explicit UTC dates to avoid boundary gaps — sub-day precision requires client-side filtering by numeric ts. Spaces act as logical AND; omitting in:#channel or date filters makes search workspace-wide and slow. Malformed modifiers (e.g., wrong from: format) silently return zero results. |
| `team_id`   | string  |          | —                | Encoded team ID to search in; required when using an org-level token.                                                                                                                                                                                                                                                                                                                                                                                         |
| `sort_dir`  | string  |          | `"asc"`          | Sort direction: `asc` or `desc`.                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `highlight` | boolean |          | `true`           | If true, search terms are wrapped with markers for client-side highlighting.                                                                                                                                                                                                                                                                                                                                                                                  |

***

### `Slack Search Messages`

Integration name: **SLACK\_SEARCH\_MESSAGES**

Workspace‑wide Slack message search with date ranges and filters. Use `query` modifiers (e.g., in:#channel, from:@user, before/after:YYYY-MM-DD), sorting (score/timestamp), and pagination.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example           | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| --------------- | ------- | :------: | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `page`          | integer |          | `1`               | Page number for manual pagination control. Cannot be used with auto\_paginate - choose either automatic collection OR manual page control, not both.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `sort`          | string  |          | `"score"`         | Sort results by `score` (relevance) or `timestamp` (chronological).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `count`         | integer |          | `20`              | Without auto\_paginate: Number of messages per page (max 100). With auto\_paginate: Total messages desired. Set count=500 to get 500 messages with automatic pagination handling.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `query`         | string  |     ✅    | `"on:2025-09-25"` | Search query supporting various modifiers for precise filtering: **Location Modifiers:** - `in:#channel-name` - Messages in specific channel - `in:@username` - Direct messages with user **User Modifiers:** - `from:@username` - Messages from specific user - `from:botname` - Messages from bot **Content Modifiers:** - `has:link` - Messages with links - `has:file` - Messages with files - `has::star:` - Starred messages - `has::pin:` - Pinned messages **Special Characters:** - `"exact phrase"` - Search exact phrase - `*wildcard` - Wildcard matching - `-exclude` - Exclude words **Combinations:** Mix modifiers with date filters like `"project update" on:2025-09-25 in:#marketing from:@john` |
| `cursor`        | string  |          | `"*"`             | Cursor for cursor-mark pagination. Use `*` for the first call, then use `next_cursor` from the previous response for subsequent calls. This is the modern pagination approach recommended by Slack. Cannot be used with `page` parameter - choose either cursor-based or page-based pagination.                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `team_id`       | string  |          | `"T1234567890"`   | The ID of the workspace to search in. Only relevant when using an org-level token. This field will be ignored if using a workspace-level token.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `sort_dir`      | string  |          | `"asc"`           | Sort direction: `asc` (ascending) or `desc` (descending).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `highlight`     | boolean |          | `true`            | Enable highlighting of search terms in results.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `auto_paginate` | boolean |          | `true`            | When enabled, 'count' becomes the total messages desired instead of per-page limit. System automatically handles pagination to collect the specified total. Cannot be used with 'page' parameter - choose either automatic collection or manual page control. Usage: If you fetched 100 messages but pagination shows 500 total available, set auto\_paginate=true and count=500 to get all results at once.                                                                                                                                                                                                                                                                                                        |

***

### `Slack Send Ephemeral Message`

Integration name: **SLACK\_SEND\_EPHEMERAL\_MESSAGE**

Sends an ephemeral message visible only to the specified `user` in a channel; other channel members cannot see it. Both the bot and the target user must be members of the specified channel.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example                                                                                                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| --------------- | ------- | :------: | ------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `text`          | string  |          | `"Hello world"`                                                                                        | The message text to display. Required unless 'blocks' or 'attachments' is provided. When using blocks, this serves as fallback text for notifications. Supports markdown formatting.                                                                                                                                                                                                                                                                                                                                                                 |
| `user`          | string  |     ✅    | `"U0BPQUNTA"`                                                                                          | User ID of the user to send the ephemeral message to.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `parse`         | string  |          | `"full"`                                                                                               | Controls text parsing behavior. Use 'full' to enable automatic linking of @mentions, #channels, and URLs. Use 'none' to disable special parsing (URLs will still be clickable). Defaults to 'none'.                                                                                                                                                                                                                                                                                                                                                  |
| `blocks`        | string  |          | `"[{\"type\": \"section\", \"text\": {\"type\": \"plain_text\", \"text\": \"Hello world\"}}]"`         | A JSON-based array of structured blocks, presented as a URL-encoded string.                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `as_user`       | boolean |          | `true`                                                                                                 | Legacy parameter for authenticated user authorship. Defaults to true without chat:write:bot scope, false otherwise. Setting to true requires chat:write:user scope for the authenticated user to author the message.                                                                                                                                                                                                                                                                                                                                 |
| `channel`       | string  |     ✅    | `"C1234567890"`                                                                                        | Channel, private group, or DM channel to send message to. Can be an encoded ID, or a name.                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `icon_url`      | string  |          | `"http://lorempixel.com/48/48"`                                                                        | URL to an image to use as the icon for this message. Must be used in conjunction with as\_user set to false, otherwise ignored. See authorship below.                                                                                                                                                                                                                                                                                                                                                                                                |
| `username`      | string  |          | `"My Bot"`                                                                                             | Set your bot's user name. Must be used in conjunction with as\_user set to false, otherwise ignored. See authorship below.                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `thread_ts`     | string  |          | `"1234567890.123456"`                                                                                  | Provide another message's ts value to make this message a reply. Avoid using a reply's ts value; use its parent instead.                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `icon_emoji`    | string  |          | `":chart_with_upwards_trend:"`                                                                         | Emoji to use as the icon for this message. Overrides icon\_url. Must be used in conjunction with as\_user set to false, otherwise ignored. See authorship below.                                                                                                                                                                                                                                                                                                                                                                                     |
| `link_names`    | boolean |          | `true`                                                                                                 | Find and link channel names and usernames.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `attachments`   | string  |          | `"[{\"fallback\": \"Summary\", \"color\": \"#36a64f\", \"title\": \"Title\", \"text\": \"Content\"}]"` | This is Slack's legacy 'secondary attachments' field for adding rich formatting elements like colored sidebars, structured fields, and author info. Pass as a JSON string array. NOT for file/image uploads. To send files or images, use `SLACK_UPLOAD_OR_CREATE_A_FILE_IN_SLACK` instead.                                                                                                                                                                                                                                                          |
| `markdown_text` | string  |          | `"# Ephemeral Notice\n\nThis message is **only visible to you**.\n\n```\nStatus: Active\n```"`         | PREFERRED: Write your ephemeral message in markdown for nicely formatted display. Supports: headers (# ## ###), bold (**text** or **text**), italic (*text* or *text*), strikethrough (~~text~~), inline code (`code`), code blocks (\`\`\`), links ([text](broken://pages/aaa324062e3be52a5a27e3da13ef9e56a436736b)), block quotes (>), lists (- item, 1. item), dividers (--- or \*\*\*). IMPORTANT: Use \n for line breaks (e.g., 'Line 1\nLine 2'), not actual newlines. Incompatible with blocks or text parameters. Maximum 12,000 characters. |

***

### `Slack Send Me Message`

Integration name: **SLACK\_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 channel must exist and be accessible.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                         | Description                                                                                                                                               |
| --------- | ------ | :------: | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `text`    | string |          | `"is preparing for a meeting."` | Content of the 'me message', displayed as an action performed by the user (e.g., if text is 'is feeling happy', it appears as '*User is feeling happy*'). |
| `channel` | string |          | `"C1234567890"`                 | Specifies the target channel by its public ID (e.g., 'C1234567890'), private group ID, IM channel ID, or name (e.g., '#general', '@username').            |

***

### `Slack Send Message`

Integration name: **SLACK\_SEND\_MESSAGE**

Posts a message to a Slack channel, DM, or private group; requires at least one content field (`markdown_text`, `text`, `blocks`, or `attachments`) — omitting all causes a `no_text` error. Fails with `not_in_channel`, `channel_not_found`, or `channel_is_archived` if the bot lacks access. Body limit \~4000 characters. Rate-limited at \~1 req/sec (HTTP 429, honor `Retry-After`). Not idempotent — duplicate calls post duplicate messages.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter         | Type    | Required | Example                                                                                                                                                                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ----------------- | ------- | :------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `text`            | string  |          | `"Hello from your friendly bot!"`                                                                                                                                                                   | DEPRECATED: This sends raw text only, use markdown\_text field. Primary textual content. Recommended fallback if using `blocks` or `attachments`. Supports mrkdwn unless `mrkdwn` is `false`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `parse`           | string  |          | `"full"`                                                                                                                                                                                            | Message text parsing behavior. Set to 'full' to parse as user-typed (auto-links @mentions, #channels). Omit for default behavior (no special parsing).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `blocks`          | —       |          | `"%5B%7B%22type%22%3A%20%22section%22%2C%20%22text%22%3A%20%7B%22type%22%3A%20%22mrkdwn%22%2C%20%22text%22%3A%20%22Hello%2C%20world%21%22%7D%7D%5D"`                                                | DEPRECATED: Use `markdown_text` field instead. Block Kit layout blocks for rich/interactive messages. Accepts either a URL-encoded JSON string or a list of block dictionaries. See Slack API Block Kit docs for structure.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `mrkdwn`          | boolean |          | —                                                                                                                                                                                                   | Controls Slack mrkdwn formatting for the top-level `text` field ONLY. Set to `false` to disable formatting (text appears as-is with literal asterisks, underscores, etc.). Default `true` enables mrkdwn formatting (*bold*, *italic*, etc.). NOTE: This parameter has NO effect on `blocks` or `markdown_text` - block content always uses its own formatting rules.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `channel`         | string  |     ✅    | `"C1234567890"`                                                                                                                                                                                     | ID or name of the channel, private group, or IM channel to send the message to. Can be specified as either 'channel' or 'channel\_id'. Do NOT include the '#' prefix (e.g., use 'general' not '#general') - any leading '#' will be automatically stripped. For DMs, use the channel ID returned by SLACK\_OPEN\_DM (starts with 'D'); usernames, emails, and user IDs are not valid DM targets.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `thread_ts`       | string  |          | `"1618033790.001500"`                                                                                                                                                                               | Timestamp (`ts`) of an existing message to make this a threaded reply. Use `ts` of the parent message, not another reply. Example: '1476746824.000004'.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `link_names`      | boolean |          | —                                                                                                                                                                                                   | Automatically hyperlink channel names (e.g., #channel) and usernames (e.g., @user) in message text. Defaults to `false` for bot messages.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `attachments`     | string  |          | `"[{\"fallback\": \"Summary text\", \"color\": \"#36a64f\", \"title\": \"Title\", \"text\": \"Attachment content\", \"fields\": [{\"title\": \"Field\", \"value\": \"Value\", \"short\": true}]}]"` | This is Slack's legacy 'secondary attachments' field for adding rich formatting elements like colored sidebars, structured fields, and author info to messages. Pass as a JSON string array. NOT for file/image uploads. To send a message with attachments of files or images, use the 'SLACK\_UPLOAD\_OR\_CREATE\_A\_FILE\_IN\_SLACK' instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `unfurl_links`    | boolean |          | —                                                                                                                                                                                                   | Enable unfurling of text-based URLs. Defaults `false` for bots, `true` if `as_user` is `true`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `unfurl_media`    | boolean |          | —                                                                                                                                                                                                   | Enable media previews (images, videos) from URLs. Set to `true` (default) to show media previews, `false` to hide them.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `markdown_text`   | string  |          | `"# Status Update\n\nSystem is **running smoothly** with *excellent* performance.\n\n```bash\nkubectl get pods\n```\n\n> All services operational ✅"`                                               | PREFERRED: Write your message in markdown for nicely formatted display. Supports: headers (# ## ###), bold (**text** or **text**), italic (*text* or *text*), strikethrough (~~text~~), inline code (`code`), code blocks (\`\`\`), links ([text](broken://pages/aaa324062e3be52a5a27e3da13ef9e56a436736b)), block quotes (>), lists (- item, 1. item), dividers (--- or \*\*\*), context blocks (:::context with images), and section buttons (:::section-button). IMPORTANT: Use \n for line breaks (e.g., 'Line 1\nLine 2'), not actual newlines. USER MENTIONS: To tag users, use their user ID with <@USER\_ID> format (e.g., <@U1234567890>), not username. NOTE: Slack enforces a 50-block limit per message. Very long messages with extensive formatting may exceed this limit. If your message is very long, consider splitting it into multiple shorter messages or using simpler formatting. |
| `reply_broadcast` | boolean |          | —                                                                                                                                                                                                   | If `true` for a threaded reply, also posts to main channel. Defaults to `false`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

***

### `Slack Set Admin User`

Integration name: **SLACK\_SET\_ADMIN\_USER**

Promotes an existing workspace member (guest, regular user, or owner) to admin status. Use when you need to grant admin privileges to a user.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                                                             |
| --------- | ------ | :------: | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `team_id` | string |     ✅    | `"T0984H91R2N"` | The ID of the workspace (e.g., T1234567890) where the user will be set as admin. This uniquely identifies the Slack workspace.                          |
| `user_id` | string |     ✅    | `"U0AAXAXTMS5"` | The ID of the user (e.g., U1234567890) to designate as an admin. This user must be an existing member of the workspace (guest, regular user, or owner). |

***

### `Slack Set Conversation Prefs`

Integration name: **SLACK\_SET\_CONVERSATION\_PREFS**

Sets the posting permissions for a public or private channel in Slack. Use this to control who can post messages, start threads, use @channel/@here mentions, and initiate huddles in a specific channel.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter    | Type   | Required | Example                               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ------------ | ------ | :------: | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prefs`      | string |     ✅    | `"{\"who_can_post\":\"type:admin\"}"` | The prefs for this channel in a stringified JSON format. Example: '{"who\_can\_post":"type:admin"}' to restrict posting to admins only, or '{"who\_can\_post":{"type":\["admin","ra"]}}' to allow admins and regular users. The prefs object can include: who\_can\_post (defines who can post messages), can\_thread (defines who can respond in threads), can\_huddle (boolean), enable\_at\_channel (object with 'enabled' boolean), enable\_at\_here (object with 'enabled' boolean). |
| `channel_id` | string |     ✅    | `"C0984HA4318"`                       | The channel to set the prefs for.                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

***

### `Slack Set Conversation Purpose`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                                       | Description                                                                                                                         |
| --------- | ------ | :------: | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `channel` | string |          | `"C012AB3CD4E"`                               | The ID of the conversation (channel, direct message, or group message) to set the purpose for.                                      |
| `purpose` | string |          | `"Discuss project milestones and deadlines."` | The new purpose for the conversation. This text will be displayed as the channel description. The maximum length is 250 characters. |

***

### `Slack Set Default Channels`

Integration name: **SLACK\_SET\_DEFAULT\_CHANNELS**

Tool to set the default channels of a workspace. Use when you need to configure which channels new members automatically join.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example                         | Description                                                                                                             |
| ------------- | ------ | :------: | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `team_id`     | string |     ✅    | `"T0AB0BSTDV5"`                 | ID for the workspace to set the default channel for.                                                                    |
| `channel_ids` | —      |     ✅    | `["C0ACHDEQ3JP","C0A3KLXQ7J8"]` | A list of channel IDs to set as default channels. Can also accept a comma-separated string for backwards compatibility. |

***

### `Slack Set Dnd Duration`

Integration name: **SLACK\_SET\_DND\_DURATION**

Turns on Do Not Disturb mode for the current user, or changes its duration.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example | Description                                   |
| ------------- | ------ | :------: | ------- | --------------------------------------------- |
| `num_minutes` | string |     ✅    | `"60"`  | Number of minutes, from now, to snooze until. |

***

### `Slack Set Profile Photo`

Integration name: **SLACK\_SET\_PROFILE\_PHOTO**

This method allows the user to set their profile image.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type    | Required | Example | Description                                                                                 |
| --------- | ------- | :------: | ------- | ------------------------------------------------------------------------------------------- |
| `image`   | object  |     ✅    | —       | Profile image file to upload. Maximum 1024x1024 pixels, minimum 512x512 pixels recommended. |
| `crop_w`  | integer |          | —       | Width/height of crop box (always square)                                                    |
| `crop_x`  | integer |          | —       | X coordinate of top-left corner of crop box                                                 |
| `crop_y`  | integer |          | —       | Y coordinate of top-left corner of crop box                                                 |

***

### `Slack Set Read Cursor In A Conversation`

Integration name: **SLACK\_SET\_READ\_CURSOR\_IN\_A\_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 a member of the channel and the message exists within it.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example               | Description                                                                                                                                                                                           |
| --------- | ------ | :------: | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ts`      | string |          | `"1678886400.000100"` | The timestamp of the message to mark as the most recently read. Must be a Slack timestamp string with microsecond precision in the format 'UNIX\_TIMESTAMP.MICROSECONDS' (e.g., '1625800000.000200'). |
| `channel` | string |          | `"C012QRSTUW9"`       | The ID of the public channel, private channel, or direct message to set the read cursor for.                                                                                                          |

***

### `Slack Set The Topic Of A Conversation`

Integration name: **SLACK\_SET\_THE\_TOPIC\_OF\_A\_CONVERSATION**

Sets or updates the topic for a specified Slack conversation.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                    | Description                                                                                                                                                                                                                 |
| --------- | ------ | :------: | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `topic`   | string |          | `"Q4 Planning Discussion"` | The new topic for the conversation. It must be a string up to 250 characters long. Text formatting and linkification are not supported.                                                                                     |
| `channel` | string |          | `"C1234567890"`            | The ID of the public channel, private channel, direct message, or multi-person direct message conversation for which the topic will be set. Must be a channel ID (C/G/D prefix), not a human-readable name like '#general'. |

***

### `Slack Set User Active`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack Set User Presence`

Integration name: **SLACK\_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 or Slack's auto-away (e.g., after 10 mins of inactivity).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter  | Type   | Required | Example  | Description                             |
| ---------- | ------ | :------: | -------- | --------------------------------------- |
| `presence` | string |     ✅    | `"auto"` | The presence state to set for the user. |

***

### `Slack Set User Profile`

Integration name: **SLACK\_SET\_USER\_PROFILE**

Updates a Slack user's profile, setting either individual fields or multiple fields via a JSON object.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                                                                                                                        | Description                                                                                                                                                                                        |
| --------- | ------ | :------: | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`    | string |          | `"first_name"`                                                                                                                 | Name of a single profile field to set. Use with `value` if `profile` is not provided.                                                                                                              |
| `user`    | string |          | `"U012A3CDE"`                                                                                                                  | ID of the user whose profile will be updated; defaults to authenticated user. Team admins on paid teams can specify another member's ID.                                                           |
| `value`   | string |          | `"John Doe"`                                                                                                                   | Value for the single profile field specified by `name`. Use with `name` if `profile` is not provided.                                                                                              |
| `profile` | string |          | `"{\"first_name\": \"Alice\", \"last_name\": \"Wonderland\", \"status_text\": \"Exploring\", \"status_emoji\": \":rabbit:\"}"` | JSON string of key-value pairs for profile fields to update (max 50 fields, 255 chars per field name). Pass as a plain JSON string (not URL-encoded). If provided, `name` and `value` are ignored. |

***

### `Slack Set Workspace Description`

Integration name: **SLACK\_SET\_WORKSPACE\_DESCRIPTION**

Set the description of a given workspace. Use when you need to update or change the description text displayed for a Slack workspace.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example                                            | Description                                      |
| ------------- | ------ | :------: | -------------------------------------------------- | ------------------------------------------------ |
| `team_id`     | string |     ✅    | `"T0AB0BSTDV5"`                                    | ID for the workspace to set the description for. |
| `description` | string |     ✅    | `"Test workspace for API testing and development"` | The new description for the workspace.           |

***

### `Slack Set Workspace Icon`

Integration name: **SLACK\_SET\_WORKSPACE\_ICON**

Sets the icon of a workspace. Use when you need to update or change the workspace icon image. The image must be publicly accessible and in a supported format (GIF, PNG, JPG, JPEG, HEIC, or HEIF).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter   | Type   | Required | Example                                    | Description                                                                                                                                                               |
| ----------- | ------ | :------: | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `team_id`   | string |     ✅    | `"T1234567890"`                            | ID of the workspace to set the icon for.                                                                                                                                  |
| `image_url` | string |     ✅    | `"https://example.com/workspace-icon.png"` | Publicly accessible URL of the image to set as the workspace icon. Must be in GIF, PNG, JPG, JPEG, HEIC, or HEIF format. Ideally 512x512 pixels for best display quality. |

***

### `Slack Set Workspace Name`

Integration name: **SLACK\_SET\_WORKSPACE\_NAME**

Set the name of a given Slack workspace. Use when you need to update the display name for a workspace in an Enterprise Grid organization.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example                        | Description                               |
| --------- | ------ | :------: | ------------------------------ | ----------------------------------------- |
| `name`    | string |     ✅    | `"Test Workspace Name Update"` | The new name of the workspace.            |
| `team_id` | string |     ✅    | `"T0AB0BSTDV5"`                | ID for the workspace to set the name for. |

***

### `Slack Set Workspace Owner`

Integration name: **SLACK\_SET\_WORKSPACE\_OWNER**

Set an existing guest, regular user, or admin user to a workspace owner. Use when you need to promote a workspace member to owner status. Requires an Enterprise Grid workspace.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                                                                                                                                                           |
| --------- | ------ | :------: | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `team_id` | string |     ✅    | `"T0984H91R2N"` | The ID of the workspace or organization (e.g., T1234567890). This specifies which workspace the user should become an owner of. Must be an Enterprise Grid workspace. |
| `user_id` | string |     ✅    | `"U0984HARZHQ"` | The ID of the user to promote to workspace owner (e.g., U1234567890). The user must already be a member, guest, or admin of the workspace.                            |

***

### `Slack Set Workspaces For Channel`

Integration name: **SLACK\_SET\_WORKSPACES\_FOR\_CHANNEL**

Set the workspaces in an Enterprise grid org that connect to a channel. Use when you need to share a public or private channel with specific workspaces in an Enterprise Grid organization.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter         | Type    | Required | Example                     | Description                                                                                                                       |
| ----------------- | ------- | :------: | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `team_id`         | string  |          | `"T0984H91R2N"`             | The workspace to which the channel belongs. Omit this argument if the channel is a cross-workspace shared channel.                |
| `channel_id`      | string  |     ✅    | `"C0ACHDEQ3JP"`             | The encoded channel ID to add or remove to workspaces.                                                                            |
| `org_channel`     | boolean |          | —                           | True if channel has to be converted to an org channel.                                                                            |
| `target_team_ids` | string  |          | `"T0984H91R2N,T0AB0BSTDV5"` | A comma-separated list of workspaces to which the channel should be shared. Not required if the channel is being shared org-wide. |

***

### `Slack Share Remote File`

Integration name: **SLACK\_SHARE\_REMOTE\_FILE**

Shares a remote file, which must already be registered with Slack, into specified Slack channels or direct message conversations.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter     | Type   | Required | Example                      | Description                                                                                                                                                                                                      |
| ------------- | ------ | :------: | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file`        | string |          | `"F0123456789"`              | The unique ID of the remote file registered with Slack. Either this `file` field or the `external_id` field (or both) is required to identify the file.                                                          |
| `channels`    | string |     ✅    | `"C0123456789,D0987654321"`  | A comma-separated list of channel IDs where the remote file will be shared. These can include public channel IDs, private channel IDs, or direct message channel IDs.                                            |
| `external_id` | string |          | `"myapp-unique-file-id-007"` | The globally unique identifier (GUID) for the remote file, as provided by the app that registered it with Slack. Either this `external_id` field or the `file` field (or both) is required to identify the file. |

***

### `Slack Start Call`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type    | Required | Example                                                                                                                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ---------------------- | ------- | :------: | --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`                | string  |          | `"Project Alpha Sync"`                                                                                                      | The name or title for the call. This will be displayed in Slack to identify the call.                                                                                                                                                                                                                                                                                                                                                              |
| `users`                | string  |          | `"'''[{\"slack_id\": \"U012A3BCD4E\"}, {\"external_id\": \"participant1@example.com\", \"slack_id\": \"U012A3BCD4F\"}]'''"` | A JSON string representing an array of user objects to be registered as participants in the call. Each user object in the array should define a participant using their `slack_id` (Slack User ID) and/or an `external_id` (an identifier from the third-party application, unique to that user within that application). For instance: `'''[{"slack_id": "U012A3BCD4E"}, {"external_id": "user-xyz@example.com", "slack_id": "U012A3BCD4F"}]'''`. |
| `join_url`             | string  |     ✅    | `"https://thirdparty.call/join/meeting123"`                                                                                 | The URL required for a client to join the call (e.g., a web join link). This field is mandatory. Must be a valid third-party call system URL (e.g., web join link), not a Slack channel or message URL.                                                                                                                                                                                                                                            |
| `created_by`           | string  |          | `"U012A3BCD4E"`                                                                                                             | Slack user ID of the creator; optional (defaults to authenticated user) if using a user token, otherwise required.                                                                                                                                                                                                                                                                                                                                 |
| `date_start`           | integer |          | `"1678886400"`                                                                                                              | The start time of the call, specified as a UTC UNIX timestamp in seconds. For example, `1678886400` corresponds to March 15, 2023, at 12:00 PM UTC.                                                                                                                                                                                                                                                                                                |
| `external_unique_id`   | string  |     ✅    | `"v=abcdef123456"`                                                                                                          | A unique identifier for the call, supplied by the third-party call provider. This ID must be unique across all calls from that specific service. This field is required.                                                                                                                                                                                                                                                                           |
| `external_display_id`  | string  |          | `"Meeting H.323"`                                                                                                           | An optional, human-readable identifier for the call, supplied by the third-party call provider. If provided, this ID will be displayed in the Slack call object interface.                                                                                                                                                                                                                                                                         |
| `desktop_app_join_url` | string  |          | `"your-app-protocol://call/12345"`                                                                                          | An optional URL that, when provided, allows Slack clients to attempt to directly launch the third-party call application. This is typically a deep link URI for the specific application.                                                                                                                                                                                                                                                          |

***

### `Slack Test Auth`

Integration name: **SLACK\_TEST\_AUTH**

Checks authentication and tells you who you are. Use to verify Slack API authentication is functional and to retrieve identity information about the authenticated user or bot.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

*No parameters required.*

***

### `Slack Unarchive Channel`

Integration name: **SLACK\_UNARCHIVE\_CHANNEL**

Reverses conversation archival.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter | Type   | Required | Example         | Description                     |
| --------- | ------ | :------: | --------------- | ------------------------------- |
| `channel` | string |     ✅    | `"C1234567890"` | ID of conversation to unarchive |

***

### `Slack Unpin Item`

Integration name: **SLACK\_UNPIN\_ITEM**

Unpins a message, identified by its timestamp, from a specified channel if the message is currently pinned there; this operation is destructive.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter   | Type   | Required | Example               | Description                                                                                                                         |
| ----------- | ------ | :------: | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `channel`   | string |     ✅    | `"C1234567890"`       | The ID of the channel where the message is pinned (e.g., a public channel, private channel, or direct message).                     |
| `timestamp` | string |     ✅    | `"1625640000.000100"` | Timestamp of the message to unpin. This is required to identify the specific message to be removed from the channel's pinned items. |

***

### `Slack Update Call Info`

Integration name: **SLACK\_UPDATE\_CALL\_INFO**

Updates the title, join URL, or desktop app join URL for an existing Slack call identified by its ID.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter              | Type   | Required | Example                                    | Description                                                                                                        |
| ---------------------- | ------ | :------: | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `id`                   | string |     ✅    | `"R0123ABCDEF"`                            | Unique identifier of the call to update, obtained when a call is created (e.g., via `calls.add` Slack API method). |
| `title`                | string |          | `"Project Alpha Review"`                   | New title for the call.                                                                                            |
| `join_url`             | string |          | `"https://example.com/join/meeting/12345"` | New URL for clients to join the call.                                                                              |
| `desktop_app_join_url` | string |          | `"your-app-protocol://join?call_id=12345"` | URL to directly launch the third-party call application from Slack clients.                                        |

***

### `Slack Update Remote File`

Integration name: **SLACK\_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.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter                 | Type   | Required | Example                                      | Description                                                                                                                                                                                                                                                                               |
| ------------------------- | ------ | :------: | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file`                    | string |          | `"F0123ABC456"`                              | Slack's unique identifier for the remote file (e.g., `F12345678`). Used to identify the file if `external_id` is not provided. One of `file` or `external_id` is required to specify the file to update.                                                                                  |
| `title`                   | string |          | `"Updated Project Proposal Q3"`              | New title for the remote file. If omitted, the current title remains unchanged.                                                                                                                                                                                                           |
| `token`                   | string |          | —                                            | Authentication token for authorizing the API request to Slack.                                                                                                                                                                                                                            |
| `filetype`                | string |          | `"pdf"`                                      | New filetype for the remote file. This typically describes the kind of file, e.g., `pdf`, `gdoc`, `image`, `text`. See Slack API documentation for specific supported `filetype` values. Providing an inaccurate filetype might affect how the file is handled or displayed.              |
| `external_id`             | string |          | `"item_12345_report_2024"`                   | Creator-defined Globally Unique Identifier (GUID) for the remote file. Used to identify the file if `file` ID is not provided. One of `file` or `external_id` is required to specify the file to update.                                                                                  |
| `external_url`            | string |          | `"https://example.com/updated_document.pdf"` | New publicly accessible URL for the remote file. If provided, this updates the link associated with the file in Slack.                                                                                                                                                                    |
| `preview_image`           | string |          | —                                            | A string that references the new preview image for the document. The referenced image data will be sent as `multipart/form-data`. This could be a local file path (if supported by the client), a public URL, or base64 encoded image data. Max 1MB. Updates the file's preview in Slack. |
| `indexable_file_contents` | string |          | —                                            | Plain text content extracted from the remote file, used by Slack to improve searchability. This can be a summary or the full text. Maximum 1MB. If provided, updates the searchable content.                                                                                              |

***

### `Slack Updates A Slack Message`

Integration name: **SLACK\_UPDATES\_A\_SLACK\_MESSAGE**

Updates a Slack message, identified by `channel` ID and `ts` timestamp, by modifying its `text`, `attachments`, or `blocks`; provide at least one content field, noting `attachments`/`blocks` are replaced if included (`[]` clears them).

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter         | Type    | Required | Example                                                                                                                                                                                  | Description                                                                                                                                                                                                                                                                                                                                                                                                  |
| ----------------- | ------- | :------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `ts`              | string  |     ✅    | `"1625247600.000200"`                                                                                                                                                                    | Timestamp of the message to update (string, Unix time with microseconds, e.g., `'1234567890.123456'`).                                                                                                                                                                                                                                                                                                       |
| `text`            | string  |          | `"Hello world, this is an *updated* message."`                                                                                                                                           | This sends raw text only, use markdown\_text field for formatting. New message text (plain or mrkdwn). Not required if `blocks` or `attachments` are provided. See Slack formatting rules.                                                                                                                                                                                                                   |
| `parse`           | string  |          | `"full"`                                                                                                                                                                                 | Parse mode for `text`: `'full'` (auto-links @mentions and #channels) or `'none'` (literal text). If not provided, uses Slack's default behavior.                                                                                                                                                                                                                                                             |
| `blocks`          | —       |          | `"[{\"type\": \"section\", \"text\": {\"type\": \"mrkdwn\", \"text\": \"This is an updated section block.\"}}]"`                                                                         | **DEPRECATED**: Use `markdown_text` field instead. Block Kit layout blocks for rich/interactive messages. Accepts either a JSON string array or a list of block dictionaries. Replaces existing blocks if field is provided; use `[]` to clear. Omit field to leave blocks untouched. Required if `text` and `attachments` are absent. See Slack API for format.                                             |
| `as_user`         | boolean |          | —                                                                                                                                                                                        | Pass `true` to update the message as the authenticated user; applicable to bot users as well.                                                                                                                                                                                                                                                                                                                |
| `channel`         | string  |     ✅    | `"C1234567890"`                                                                                                                                                                          | The ID of the channel containing the message to be updated.                                                                                                                                                                                                                                                                                                                                                  |
| `file_ids`        | array   |          | `["F1234567890","F0987654321"]`                                                                                                                                                          | Array of file IDs to attach to the updated message. Files must already be uploaded to Slack.                                                                                                                                                                                                                                                                                                                 |
| `metadata`        | object  |          | `{"event_type":"task_update","event_payload":{"status":"completed"}}`                                                                                                                    | JSON object containing `event_type` (string) and `event_payload` (dict) fields for adding custom metadata to the message.                                                                                                                                                                                                                                                                                    |
| `link_names`      | boolean |          | —                                                                                                                                                                                        | Set to `true` to link channel/user names in `text`. If not provided, Slack's default update behavior may override original message's linking settings.                                                                                                                                                                                                                                                       |
| `attachments`     | —       |          | `"[{\"fallback\": \"Summary text\", \"color\": \"#36a64f\", \"title\": \"Title\", \"text\": \"Content\", \"fields\": [{\"title\": \"Field\", \"value\": \"Value\", \"short\": true}]}]"` | This is Slack's legacy 'secondary attachments' field for adding rich formatting elements like colored sidebars, structured fields, and author info. Accepts either a JSON string array or a list of attachment dictionaries. Replaces existing attachments if provided; use `[]` to clear. NOT for file/image uploads. To send files or images, use 'SLACK\_UPLOAD\_OR\_CREATE\_A\_FILE\_IN\_SLACK' instead. |
| `markdown_text`   | string  |          | `"# Updated Status\n\nThe issue has been **resolved** and systems are *fully operational*.\n\n```bash\n# All services running\nkubectl get services\n```"`                               | **PREFERRED**: Write your updated message in markdown for nicely formatted display. Supports headers (#), bold (**text**), italic (*text*), strikethrough (~~text~~), code (\`\`\`), links ([text](broken://pages/aaa324062e3be52a5a27e3da13ef9e56a436736b)), quotes (>), and dividers (---). Your message will be posted with beautiful formatting.                                                         |
| `reply_broadcast` | boolean |          | —                                                                                                                                                                                        | If `true` and the message is a thread reply, broadcast the updated message to the channel. Defaults to `false`.                                                                                                                                                                                                                                                                                              |

***

### `Slack Update User Group`

Integration name: **SLACK\_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, handle, or default channels.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter             | Type    | Required | Example                                          | Description                                                                                                                                                           |
| --------------------- | ------- | :------: | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                | string  |          | `"Q4 Marketing"`                                 | New name for the User Group. Must be unique among User Groups.                                                                                                        |
| `handle`              | string  |          | `"marketing-team-alpha"`                         | New mention handle. Must be unique among channels, users, and User Groups.                                                                                            |
| `team_id`             | string  |          | `"T1234567890"`                                  | Encoded team (workspace) ID where the User Group exists. Required if using an org-level token. Will be ignored if the API call is sent using a workspace-level token. |
| `channels`            | string  |          | `"C1234567890,C2345678901"`                      | Comma-separated encoded channel IDs to set as default channels.                                                                                                       |
| `usergroup`           | string  |     ✅    | `"S0615G0KT"`                                    | Encoded ID of the existing User Group to update.                                                                                                                      |
| `description`         | string  |          | `"Team responsible for Q4 marketing campaigns."` | New short description for the User Group.                                                                                                                             |
| `include_count`       | boolean |          | `true`                                           | If true, include the number of users in the User Group in the response.                                                                                               |
| `enable_section`      | boolean |          | `true`                                           | Configure this user group to show as a sidebar section for all group members. Only relevant if group has 1 or more default channels added.                            |
| `additional_channels` | string  |          | `"C1234567890,C2345678901"`                      | Comma-separated encoded channel IDs for which the User Group can custom add usergroup members to.                                                                     |

***

### `Slack Update User Group Members`

Integration name: **SLACK\_UPDATE\_USER\_GROUP\_MEMBERS**

Replaces all members of an existing Slack User Group with a new list of valid user IDs.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter       | Type    | Required | Example                             | Description                                                                                                                                             |
| --------------- | ------- | :------: | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `users`         | string  |     ✅    | `"U012AB34CD,W567EF89GH,U01234567"` | Comma-separated string of encoded user IDs for the new, complete member list, replacing all existing members. User IDs typically start with 'U' or 'W'. |
| `team_id`       | string  |          | `"T1234567890"`                     | Encoded team ID where the User Group exists. Required when using an org-level token (Enterprise Grid). Ignored for workspace-level tokens.              |
| `usergroup`     | string  |     ✅    | `"S012AB34CD"`                      | The encoded ID of the User Group whose members are to be updated. This ID typically starts with 'S'.                                                    |
| `include_count` | boolean |          | `"true"`                            | If true, the response `usergroup` object includes `user_count` and potentially `channel_count` fields, reflecting counts after the update.              |

***

### `Slack Upload Or Create A File In Slack`

Integration name: **SLACK\_UPLOAD\_OR\_CREATE\_A\_FILE\_IN\_SLACK**

Upload files, images, screenshots, documents, or any media to Slack channels or threads. Supports all file types including images (PNG, JPG, JPEG, GIF), documents (PDF, DOCX, TXT), code files, and more. Can share files publicly in channels or as thread replies with optional comments. Large files may fail with `upload_too_large`; use SLACK\_ADD\_A\_REMOTE\_FILE\_FROM\_A\_SERVICE for large uploads. If the API returns `ok=false` with `method_deprecated`, fall back to SLACK\_ADD\_A\_REMOTE\_FILE\_FROM\_A\_SERVICE or SLACK\_SEND\_MESSAGE with a URL.

#### Parameters

Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.

| Parameter         | Type   | Required | Example                                  | Description                                                                                                                                                                                                                                                                                                                                    |
| ----------------- | ------ | :------: | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `file`            | —      |          | —                                        | File(s) to upload. Accepts a single file or a list of files. At least one of 'content' or 'file' must be provided (but not both). FileUploadable object(s) where 'name' is the filename to use in Slack. The file must exist in accessible storage; expired or invalid s3keys will result in a storage error.                                  |
| `title`           | string |          | `"My Document"`                          | Title of the file, displayed in Slack.                                                                                                                                                                                                                                                                                                         |
| `token`           | string |          | —                                        | Authentication token; requires 'files:write' scope.                                                                                                                                                                                                                                                                                            |
| `content`         | string |          | `"This is the content of my text file."` | Text content of the file; use for text-based files. At least one of 'content' or 'file' must be provided (but not both).                                                                                                                                                                                                                       |
| `channels`        | string |          | `"C1234567890"`                          | Channel ID where the file will be shared; if omitted, file is private to the uploader. Use channel ID (e.g., C1234567890) not channel name. Note: Due to API changes, only the first channel ID is used if multiple are provided. App must be a member of the target channel or the upload fails with `not_in_channel` or `channel_not_found`. |
| `filename`        | string |          | `"report.pdf"`                           | Filename to be displayed in Slack. Required when using 'content' parameter.                                                                                                                                                                                                                                                                    |
| `filetype`        | string |          | `"text"`                                 | Deprecated: File type detection is now automatic. This parameter is preserved for backward compatibility but no longer affects file uploads.                                                                                                                                                                                                   |
| `thread_ts`       | string |          | `"1234567890.123456"`                    | Timestamp of a parent message to upload this file as a reply; use the original message's 'ts' value (e.g., '1234567890.123456').                                                                                                                                                                                                               |
| `initial_comment` | string |          | `"Here is the Q3 financial report."`     | Optional message to introduce the file in specified 'channels'.                                                                                                                                                                                                                                                                                |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.toolhouse.ai/toolhouse/integrations/slack.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
