Connect EMQX Agents to Slack
The Slack connector lets EMQX Agents read and search conversations, send and manage messages, work with channels and members, upload files, add reactions, and create reminders. Use it for alerting, collaboration, and operational follow-up workflows.
Common Use Cases
- Send an alert to an operations channel after detecting an anomaly.
- Summarize unread messages or a message thread.
- Create a channel for an incident and invite responders.
- Upload a generated report and add it to a message thread.
Example chat prompt:
Use the ops-slack connector to post a concise alert in the device-alerts channel when the agent confirms a critical anomaly. Include the device ID and recommended action.Prerequisites
Before adding the connector, prepare:
- A Slack account with access to the required workspace.
- Permission to authorize the required message, channel, file, reaction, reminder, and user operations.
- Membership in private channels that the workflow needs to access.
Add a Slack Connector
In the left navigation menu, click Connectors.
On the Available tab, locate Slack and click Add.
In the Add Connector panel, verify that Type is set to Slack.
Enter a descriptive Name, then click Confirm.
EMQX Agents adds the connector with the Unauthorized status and opens an authorization dialog.
In the authorization dialog, wait for Composio to redirect you to Slack.
On the Slack authorization page, select the Workspace that the connector should access.
Review the permissions requested by Composio, then click Allow.
Wait for Composio to confirm that it has successfully connected to Slack and return you to EMQX Agents.
On the Added tab, verify that an Authorization successful message appears and that the connector status is Authorized.
Important Notice
Slack may indicate that the Composio app has not been approved for the Slack Marketplace. Review the requested permissions and your organization's app authorization policy before continuing.
Edit a Slack Connector
- On the Added tab, click the edit icon for the Slack connector.
- In the Edit Connector panel, update Name.
- Click Confirm.
Only Name can be edited. Type and the Slack authorization cannot be changed in the Edit Connector panel. This restriction applies to all MCP connectors.
Supported Tools
Messages and Conversation Content
| Tool | Access | Description |
|---|---|---|
SLACK_SEND_MESSAGE | Write | Sends a message to a channel, direct message, group message, or thread. |
SLACK_UPDATES_A_SLACK_MESSAGE | Write | Updates an existing Slack message. |
SLACK_DELETES_A_MESSAGE_FROM_A_CHAT | Destructive | Deletes a Slack message. |
SLACK_SEARCH_MESSAGES | Read | Searches workspace messages with optional channel, user, date, or content filters. |
SLACK_FETCH_CONVERSATION_HISTORY | Read | Gets messages from a channel or conversation timeline. |
SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION | Read | Gets a parent message and its thread replies. |
SLACK_LIST_UNREAD_CHANNEL_MESSAGES | Read | Gets unread messages for the authorized user in a channel. |
SLACK_SCHEDULE_MESSAGE | Write | Schedules a message for future delivery. |
Channels and Members
| Tool | Access | Description |
|---|---|---|
SLACK_LIST_ALL_CHANNELS | Read | Lists accessible public channels, private channels, direct messages, and group messages. |
SLACK_RETRIEVE_CONVERSATION_INFORMATION | Read | Gets channel or conversation metadata. |
SLACK_RETRIEVE_CONVERSATION_MEMBERS_LIST | Read | Lists members of a channel or conversation. |
SLACK_INVITE_USERS_TO_A_SLACK_CHANNEL | Write | Invites users to a channel. |
SLACK_CREATE_CHANNEL | Write | Creates a public or private channel. |
SLACK_SET_THE_TOPIC_OF_A_CONVERSATION | Write | Sets or updates a conversation topic. |
SLACK_SET_CONVERSATION_PURPOSE | Write | Sets or updates a conversation purpose. |
Users and Identity
| Tool | Access | Description |
|---|---|---|
SLACK_FIND_USER_BY_EMAIL_ADDRESS | Read | Finds a Slack user by email address. |
SLACK_RETRIEVE_DETAILED_USER_INFORMATION | Read | Gets detailed user and team information by user ID. |
SLACK_LIST_ALL_USERS | Read | Lists workspace users and profile information. |
SLACK_RETRIEVE_A_USER_S_IDENTITY_DETAILS | Read | Gets the authorized user and workspace identity. |
Reactions, Files, and Reminders
| Tool | Access | Description |
|---|---|---|
SLACK_ADD_REACTION_TO_AN_ITEM | Write | Adds an emoji reaction to a message. |
SLACK_UPLOAD_OR_CREATE_A_FILE_IN_SLACK | Write | Uploads a file or creates a file from text and can share it to a channel or thread. |
SLACK_CREATE_A_REMINDER | Write | Creates a one-time or recurring reminder for the authorized user or another user. |
Important Notice
Message send, update, delete, channel creation, member invitation, file upload, and reminder tools change the Slack workspace or communicate with users. Confirm the destination before write operations.
Use the Connector in a Chat
- In the chat input area, click the connector icon.
- Select the authorized Slack connector.
- In the prompt, identify the external resource and operation that the agent should use.
- Review the generated agent definition and confirm that it contains only the required tools.
Permissions and Data Access
The connector uses the authorized Slack account and workspace. Channel membership, workspace roles, app permissions, and Slack administrator policies determine accessible conversations and actions.
Do not include external service credentials or access tokens in the chat prompt or agent instructions.
Limitations
- Slack API rate limits and workspace policies apply.
- Private channels are available only when the authorized account and integration have access.
- File uploads, message history, and search results can be limited by the Slack plan and retention settings.
Troubleshooting
| Symptom | Resolution |
|---|---|
| The connector remains Unauthorized. | Retry authorization and verify that the account can grant access to EMQX Agents. |
| A tool returns a permission error. | Verify the authorized account's access to the target resource and operation. |
| A required tool is unavailable. | Verify that the tool is supported and approved for this connector, then select the connector again in the chat. |
| Requests are rejected intermittently. | Check the external service status, API quota, rate limits, and account plan. |