Send messages, manage channels, and upload files to Slack workspaces from your Xano backend.
| Function | Description |
|---|---|
slack_send_message |
Posts a message to a specified Slack channel. |
slack_send_dm |
Sends a direct message to a Slack user by their user ID. |
slack_list_channels |
Lists public channels the bot can access in the workspace. |
slack_upload_file |
Uploads a file to a Slack channel. |
With the Xano MCP enabled in Claude Code, paste this into Claude:
Install the integration at https://github.com/xano-community/integration-slack-messaging into my Xano workspace.
Claude will clone the repo and push the functions to your workspace.
-
Install and authenticate the Xano CLI:
npm install -g @xano/cli xano auth
-
Clone and push this integration:
git clone https://github.com/xano-community/integration-slack-messaging.git cd integration-slack-messaging xano workspace:push . -w <your-workspace-id>
Replace
<your-workspace-id>with the ID fromxano workspace:list.
- Go to https://api.slack.com/apps and click Create New App
- Choose From Scratch and select your workspace
- Under OAuth & Permissions, add the required bot token scopes: chat:write, channels:read, files:write, users:read
- Install the app to your workspace
- Copy the Bot User OAuth Token (starts with xoxb-)
- In Xano, set the environment variable SLACK_BOT_TOKEN to your bot token
Environment variables used by this integration:
SLACK_BOT_TOKEN
See .env.example for a template.
Call any function from another function, task, or API endpoint using function.run:
function.run "slack_send_message" {
input = {
// See function signature for required parameters
}
} as $resultSends a text message to any Slack channel the bot has access to. Specify the channel ID and message text, with optional support for Slack's Block Kit for rich formatting. The bot must be invited to private channels before posting. Returns the message timestamp which can be used for threading replies.
Opens or reuses a direct message conversation with a Slack user and sends them a message. Requires the target user's Slack user ID. Useful for sending notifications, alerts, or personalized updates directly to individual team members from your application.
Retrieves a paginated list of channels visible to the bot in the Slack workspace. Returns channel IDs, names, topics, and member counts. Supports cursor-based pagination for workspaces with many channels. Useful for building channel pickers or dynamically routing messages to the right channel.
Uploads a file to one or more Slack channels with an optional message and title. Supports various file types including images, documents, and text snippets. The bot must have the files:write scope and be a member of the target channel. Ideal for sharing reports, logs, or generated documents with your team.
MIT — see LICENSE.