Slack
Arcade toolkit · docs.arcade.dev
The Slack toolkit integrates Arcade with Slack, enabling LLMs to read, send, and manage messages, threads, channels, reactions, and users on behalf of an authenticated Slack user.
Capabilities
- Conversation discovery & metadata — list conversations the user belongs to; retrieve metadata (channel, DM, MPIM) by conversation ID, channel name, or user identifiers (ID/username/email); look up who is in a conversation.
- Message reading — fetch top-level channel/DM/MPIM messages or thread replies, with flexible absolute (
oldest_datetime/latest_datetime) or relative (DD:HH:MMoffsets) time filtering. - Messaging & threading — send messages to channels, DMs, or multi-person conversations; reply to existing threads with optional broadcast to the main channel.
- User management — look up one or many users by ID, username, or email in a single call; list all team members; invite users (up to 100 at once) to channels or MPIMs; retrieve the authenticated user's own profile.
- Reactions — add or remove the authenticated user's emoji reaction on any message without affecting others' reactions.
Tools11
Slack_GetConversationMetadata
Get metadata of a Channel, a Direct Message (IM / DM) or a Multi-Person (MPIM) conversation. Use this tool to retrieve metadata about a conversation with a conversation_id, a channel name, or by the user_id(s), username(s), and/or email(s) of the user(s) in the conversation. This tool does not return the messages in a conversation. Provide exactly one of: - conversation_id; or - channel_name; or - any combination of user_ids, usernames, and/or emails.
Slack_GetMessages
Get messages in a Slack Channel, DM (direct message) or MPIM (multi-person) conversation. Provide exactly one of: - conversation_id; or - channel_name; or - any combination of user_ids, usernames, and/or emails. To filter messages by an absolute datetime, use 'oldest_datetime' and/or 'latest_datetime'. If only 'oldest_datetime' is provided, it will return messages from the oldest_datetime to the current time. If only 'latest_datetime' is provided, it will return messages since the beginning of the conversation to the latest_datetime. To filter messages by a relative datetime, use 'oldest_relative' and/or 'latest_relative' with numeric DD:HH:MM offsets only. Convert relative phrases to DD:HH:MM before calling this tool. If only 'oldest_relative' is provided, it will return messages from the oldest_relative to the current time. If only 'latest_relative' is provided, it will return messages from the current time to the latest_relative. Do not provide both 'oldest_datetime' and 'oldest_relative' or both 'latest_datetime' and 'latest_relative'. Leave all arguments with the default None to get messages without date/time filtering
Slack_GetThreadMessages
Get messages in a Slack thread. A thread is a collection of messages grouped together as replies to a parent message. This tool retrieves all messages in a specific thread, identified by the parent message's timestamp (thread_ts). Provide exactly one of: - conversation_id; or - channel_name; or - any combination of user_ids, usernames, and/or emails. To filter messages by an absolute datetime, use 'oldest_datetime' and/or 'latest_datetime'. If only 'oldest_datetime' is provided, it will return messages from the oldest_datetime to the current time. If only 'latest_datetime' is provided, it will return messages since the beginning of the thread to the latest_datetime. To filter messages by a relative datetime, use 'oldest_relative' and/or 'latest_relative' with numeric DD:HH:MM offsets only. Convert relative phrases to DD:HH:MM before calling this tool. If only 'oldest_relative' is provided, it will return messages from the oldest_relative to the current time. If only 'latest_relative' is provided, it will return messages from the current time to the latest_relative. Do not provide both 'oldest_datetime' and 'oldest_relative' or both 'latest_datetime' and 'latest_relative'. Leave all datetime arguments with the default None to get all thread messages without date/time filtering.
Slack_GetUsersInConversation
Get the users in a Slack conversation (Channel, DM/IM, or MPIM) by its ID or by channel name. Provide exactly one of conversation_id or channel_name. Prefer providing a conversation_id, when available, since the performance is better.
Slack_GetUsersInfo
Get the information of one or more users in Slack by ID, username, and/or email. Provide any combination of user_ids, usernames, and/or emails. If you need to retrieve data about multiple users, DO NOT CALL THE TOOL MULTIPLE TIMES. Instead, call it once with all the user_ids, usernames, and/or emails. Do not retrieve users' info first to get the metadata or messages of a conversation, as it is inefficient: conversations can be looked up by user_ids, usernames, and/or emails directly.
Slack_InviteUsersToChannel
Invite users to a Slack channel or MPIM (multi-person direct message). This tool invites specified users to join a Slack conversation. It works with: - Public channels - Private channels - MPIMs (multi-person direct messages / group DMs) You can specify users by their user IDs, usernames, or email addresses. Provide exactly one of channel_id or channel_name, and at least one of user_ids, usernames, or emails. The tool will resolve usernames and emails to user IDs before inviting them. Up to 100 users may be invited at once.
Slack_ListConversations
List metadata for Slack conversations (channels, DMs, MPIMs) the user is a member of. This tool does not return the messages in a conversation. The listing does not include member counts, so num_members is null for every conversation returned.
Slack_ListUsers
List all users in the authenticated user's Slack team. Do not use this tool to first retrieve user(s) to get the metadata or messages of a conversation, as it is inefficient: conversations can be looked up by a user_id, username, and/or email directly.
Slack_ReactToMessage
Add or remove the user's emoji reaction on a message in a Slack conversation. Provide exactly one of conversation_id or channel_name. Only the user's own reaction is added or removed; other people's reactions are left untouched. Adding a reaction the user already left, or removing one they have not left, changes nothing and is reported with changed set to false.
Slack_SendMessage
Send a message to a Channel, Direct Message (IM/DM), or Multi-Person (MPIM) conversation. Can send top-level messages or reply to an existing thread. Provide exactly one of: - channel_name; or - conversation_id; or - any combination of user_ids, usernames, and/or emails. In case multiple user_ids, usernames, and/or emails are provided, the tool will open a multi-person conversation with the specified people and send the message to it. To reply to a thread, also provide thread_ts (the 'ts' field of the parent message). Optionally set reply_broadcast to true to also post the reply to the main conversation.
Slack_WhoAmI
Get comprehensive user profile and Slack information. This tool provides detailed information about the authenticated user including their name, email, profile picture, and other important profile details from Slack services.