Slack developer docs
Build an app with a coding agent
Agents, apps, and integrations for the place where work happens. Pick how you like to build and have something running in Slack in minutes.
A coding agent
Give your coding agent Slack skills
One install adds the Slack developer skills, plus the Slack MCP server in Claude Code and Cursor.
/plugin install slack@claude-plugins-officialRun inside a Claude Code session.
Tell it what to build
Pick a starting idea or write your own, then copy it into your agent.
Chat with your agent in Slack
Your coding agent scaffolds the project with the Slack CLI, starts it with
How the skills plugin worksslack run, and you can message your new agent right away.
Starter Agent
Message Starter Agent
The Slack CLI
Install the Slack CLI
curl -fsSL https://downloads.slack-edge.com/slack-cli/install.sh | bashConnect to your workspace
slack loginCreate an agent
slack create agent my-agentChoose the Starter Agent or the Support Agent, then your framework: Claude Agent SDK, OpenAI Agents SDK, or Pydantic AI. Want a plain app? Run
slack create.Add your model key
cd my-agentcp .env.sample .envThen paste your model key into
.env, for exampleANTHROPIC_API_KEYfor the Claude Agent SDK.Run it
slack runThen message your agent in Slack. Some AI features need a paid plan; a free Developer Program sandbox has them.
Starter Agent
Message Starter Agent
App Settings
Create the app
Start from a ready-made agent manifest, or from a blank app.
View the manifest
{"display_information": {"name": "My Agent"},"features": {"agent_view": {"agent_description": "Hi, I am an agent built on Slack. I am here to help you out!","suggested_prompts": []},"app_home": {"home_tab_enabled": true,"messages_tab_enabled": true,"messages_tab_read_only_enabled": false},"bot_user": {"display_name": "My Agent","always_online": true}},"oauth_config": {"scopes": {"bot": ["app_mentions:read","assistant:write","channels:history","chat:write","groups:history","im:history","im:read","im:write","reactions:read","reactions:write","users:read"]}},"settings": {"event_subscriptions": {"bot_events": ["app_home_opened","app_mention","message.channels","message.groups","message.im"]},"interactivity": {"is_enabled": true},"org_deploy_enabled": false,"socket_mode_enabled": true,"token_rotation_enabled": false}}Install it to your workspace
Choose Install to Workspace and approve the permissions.
Connect your code or agent runtime
Copy the bot token (
App settings quickstartxoxb-) from OAuth & Permissions. For Socket Mode, create an app-level token (xapp-) withconnections:writeunder Basic Information.
My Agent
Message My Agent
Slack MCP server and developer skills
Connect your AI tools to Slack
Give Claude, Cursor, Codex, and other agents secure access to your workspace to search, read, and post. Add developer skills so they know how to build on Slack.
https://mcp.slack.com/mcpRemote MCP over HTTP with OAuth. Your workspace admin may need to approve it. No approval yet? Try it in a free Developer Program sandbox.
Showing Claude Code setupClaude Code
MCP server + skills in one step
Run in a Claude Code session. You will be asked to sign in to Slack.
/plugin install slack@claude-plugins-official
Only the MCP server
From your terminal. Then run /mcp in Claude Code to finish signing in.
claude mcp add --transport http --scope local slack https://mcp.slack.com/mcp
Claude Desktop and web
Add the Slack connector
- Open Customize, then Connectors.
- Click +, find Slack, and add it.
- Sign in to Slack to finish.
Building a Slack app?
Developer skills run in coding agents. Use Claude Code to add them in one step.
Cursor
MCP server + skills in one step
Run in a Cursor Agent chat, or search "slack" in the Cursor plugin marketplace.
/add-plugin slack
Only the MCP server
One click from your browser. Cursor opens and asks you to connect.
Connect to CursorCodex
Slack MCP server
Codex asks you to sign in to Slack. Check it with codex mcp list.
codex mcp add --transport http slack https://mcp.slack.com/mcp
Developer skills
Adds the Slack skills marketplace, then installs the plugin.
codex plugin marketplace add slackapi/slack-skills-plugin
codex plugin add slack@slack
Gemini CLI
Slack MCP server
Add Slack as a remote MCP server in your tool, set its authentication to OAuth 2.0, and enter your Slack app's client ID. Your workspace admin may need to approve it.
URL: https://mcp.slack.com/mcp
Client ID: your Slack app's client ID
Auth: OAuth 2.0
Pi
Slack MCP server
Install the adapter, restart Pi, then run /mcp setup and add slack with the server URL and OAuth.
pi install npm:pi-mcp-adapter
Other agents
Slack MCP server
Add Slack as a remote MCP server in your tool, set its authentication to OAuth 2.0, and enter your Slack app's client ID. Your workspace admin may need to approve it.
URL: https://mcp.slack.com/mcp
Client ID: your Slack app's client ID
Auth: OAuth 2.0
Developer skills
npx skills add slackapi/slack-skills-plugin -y -a crush
Using Slack, summarize what my team discussed in #general this week.Slack MCP server your agent → Slack
Your AI tool works in Slack: search messages and files, read channels and threads, send messages, and manage canvases and lists.
Server overviewSlackbot MCP client Slack → your server
Have your own MCP server? Connect it to Slack and Slackbot calls its tools in conversation.
Bring your serverFor admins
MCP connections go through the standard Slack app approval process, so admins stay in control of what connects.
App approvalsFind your path
What brings you here?
Examples of how to use these docs. Pick yours and skip the rest.
Not sure where to start? Build your first agent with your coding agent, the Slack CLI, or App Settings.
Templates
Skip to the finish line
Working apps you can configure, deploy, and forget. Start one from the CLI, open the code yourself, or hand it to your coding agent.
Support Agent (Casey)
An IT helpdesk agent that works in App Home, DMs, and @mentions. Comes in Claude Agent SDK, OpenAI Agents SDK, and Pydantic AI versions.
slack create agentStarter Agent
A minimal agent to make your own, with the Messages tab and your choice of agent framework.
slack create my-starter-agent --template slack-samples/bolt-python-starter-agentAgent that uses the Slack MCP server
An agent that calls the Slack MCP server to search, read, and post with the user's permissions.
git clone https://github.com/slack-samples/bolt-js-slack-mcp-server.gitAlerts to a channel
Post alerts from any tool to a channel with an incoming webhook. One scope, no code, done in about a minute.
Build and deploy updates
Post CI results, deploys, and releases from any GitHub Actions workflow.
uses: slackapi/slack-github-action@v4.0.0GitHub issues from Slack
Create and update GitHub issues from workflows, hosted by Slack with slack deploy. Nothing to run yourself.
slack create my-github-app -t slack-samples/deno-github-functionsCustom step for Workflow Builder
Write your own step once, then anyone can use it in no-code workflows.
slack create my-step -t slack-samples/bolt-python-custom-step-templateAnnouncement bot
Preview, post, and manage announcements sent to one or more channels.
slack create my-announcements -t slack-samples/deno-announcement-botIntegrate
Send anything to Slack
Sent here from another product? Get a working connection in about a minute. No scopes, events, or tokens to learn.
Any webhook
Webhook URL in about a minute
Best when your tool has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into your tool.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from my app"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Webhook alerts",
"description": "Posts Webhook notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Webhook alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Sending your own JSON?
Start a workflow from a webhook, map the fields you send, and post a formatted message. Needs a paid plan and a flat JSON payload.
Workflow webhooks (opens in new tab)Build it as an app
Need buttons, threads, or replies? Post with chat.postMessage from a Bolt app.
Sentry
Webhook URL in about a minute
Best when Sentry has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Sentry.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Sentry"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Sentry alerts",
"description": "Posts Sentry notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Sentry alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Sentry app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)GitHub
Webhook URL in about a minute
Best when GitHub has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into GitHub.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from GitHub"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "GitHub alerts",
"description": "Posts GitHub notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "GitHub alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official GitHub app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)From CI: Slack GitHub Action
Post build and deploy results from a workflow step.
- name: Post a message in a channel
uses: slackapi/slack-github-action@v4.0.0
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
webhook-type: incoming-webhook
payload: |
text: "*GitHub Action build result*: ${{ job.status }}"
Stripe
Webhook URL in about a minute
Best when Stripe has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Stripe.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Stripe"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Stripe alerts",
"description": "Posts Stripe notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Stripe alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Stripe app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Shopify
Webhook URL in about a minute
Best when Shopify has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Shopify.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Shopify"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Shopify alerts",
"description": "Posts Shopify notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Shopify alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Shopify app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Render
Webhook URL in about a minute
Best when Render has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Render.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Render"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Render alerts",
"description": "Posts Render notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Render alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Render app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Vercel
Webhook URL in about a minute
Best when Vercel has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Vercel.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Vercel"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Vercel alerts",
"description": "Posts Vercel notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Vercel alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Vercel app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)PagerDuty
Webhook URL in about a minute
Best when PagerDuty has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into PagerDuty.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from PagerDuty"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "PagerDuty alerts",
"description": "Posts PagerDuty notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "PagerDuty alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official PagerDuty app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Datadog
Webhook URL in about a minute
Best when Datadog has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Datadog.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Datadog"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Datadog alerts",
"description": "Posts Datadog notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Datadog alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Datadog app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Grafana
Webhook URL in about a minute
Best when Grafana has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Grafana.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Grafana"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Grafana alerts",
"description": "Posts Grafana notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Grafana alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Grafana app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Linear
Webhook URL in about a minute
Best when Linear has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Linear.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Linear"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Linear alerts",
"description": "Posts Linear notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Linear alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Linear app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Jira
Webhook URL in about a minute
Best when Jira has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Jira.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Jira"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Jira alerts",
"description": "Posts Jira notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Jira alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Jira app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Zendesk
Webhook URL in about a minute
Best when Zendesk has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Zendesk.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Zendesk"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Zendesk alerts",
"description": "Posts Zendesk notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Zendesk alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Zendesk app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)HubSpot
Webhook URL in about a minute
Best when HubSpot has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into HubSpot.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from HubSpot"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "HubSpot alerts",
"description": "Posts HubSpot notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "HubSpot alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official HubSpot app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Salesforce
Webhook URL in about a minute
Best when Salesforce has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Salesforce.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Salesforce"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Salesforce alerts",
"description": "Posts Salesforce notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Salesforce alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Salesforce app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)Notion
Webhook URL in about a minute
Best when Notion has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Notion.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Notion"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Notion alerts",
"description": "Posts Notion notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Notion alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Notion app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)GitLab
Webhook URL in about a minute
Best when GitLab has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into GitLab.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from GitLab"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "GitLab alerts",
"description": "Posts GitLab notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "GitLab alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official GitLab app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)CircleCI
Webhook URL in about a minute
Best when CircleCI has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into CircleCI.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from CircleCI"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "CircleCI alerts",
"description": "Posts CircleCI notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "CircleCI alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official CircleCI app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)GitHub Actions
Webhook URL in about a minute
Best when GitHub Actions has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into GitHub Actions.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from GitHub Actions"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "GitHub Actions alerts",
"description": "Posts GitHub Actions notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "GitHub Actions alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official GitHub Actions app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)From CI: Slack GitHub Action
Post build and deploy results from a workflow step.
- name: Post a message in a channel
uses: slackapi/slack-github-action@v4.0.0
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
webhook-type: incoming-webhook
payload: |
text: "*GitHub Action build result*: ${{ job.status }}"
Zapier
Webhook URL in about a minute
Best when Zapier has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into Zapier.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from Zapier"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "Zapier alerts",
"description": "Posts Zapier notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "Zapier alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official Zapier app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)n8n
Webhook URL in about a minute
Best when n8n has a field for a Slack webhook URL.
- Choose Install to Workspace and pick a channel.
- Copy the URL under Incoming Webhooks.
- Paste it into n8n.
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello from n8n"}' \
YOUR_WEBHOOK_URL
What gets created
{
"display_information": {
"name": "n8n alerts",
"description": "Posts n8n notifications to a Slack channel."
},
"features": {
"bot_user": {
"display_name": "n8n alerts",
"always_online": false
}
},
"oauth_config": {
"scopes": {
"bot": [
"incoming-webhook"
]
}
},
"settings": {
"incoming_webhooks": {
"incoming_webhooks_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
Use the official n8n app
Many services publish their own Slack app with richer features. Check before you build.
Search the Marketplace (opens in new tab)OpenClaw
Connect OpenClaw in 1 click
Creates a Socket Mode app, so OpenClaw can talk in Slack without a public URL.
- Install it to your workspace.
- Copy the bot token (
xoxb-) and an app-level token (xapp-) withconnections:write. - Paste both into OpenClaw's Slack settings.
Give it Slack skills
Teach OpenClaw to build Block Kit and Slack apps.
npx skills add slackapi/slack-skills-plugin -y -a openclaw
Read and post with the Slack MCP server
Let OpenClaw search and act in Slack with the user's permissions.
Connect a harnessDirectory
Jump straight to the docs
For developers and partners already building. Everything in one place.
SDKs
Tools
AI and agents
Docs your agent can read
Point your coding agent at these and it will find the right page on its own.
Start with llms.txt
https://docs.slack.dev/llms.txtAny page as Markdown
https://docs.slack.dev/ai/agent-quickstart.mdSearch from the terminal
slack docs search "block kit"
Slack CLI