Slack
slack.com ↗Build and install in under an hour. Selling to other companies means Marketplace approval, which requires 10 active workspaces before you can even submit and up to ~10 weeks of review. Unlisted apps get 1 req/min on message history.
01Pick your path
02Time & effort
- DEVCreate app from manifest + install to your workspace10–30 minutessourced[slack-manifest][slack-dist]
- PRODBuild OAuth install flow (multi-workspace, state param, HTTPS redirect)2–6 hoursinferred[slack-dist]
- PRODReach 10 active workspaces (prerequisite to submit)wait 2–8 weeksinferred[slack-review]The requirement is sourced. How long it takes you depends on your go-to-market.
- PRODListing assets, test account, demo video4–8 hourssourced[slack-review]
- PRODPreliminary reviewwait 1–2 weekssourced[slack-review]Up to 10 business days. The queue resets on each resubmission.
- PRODFunctional reviewwait 2–10 weekssourced[slack-review]'Up to 10 weeks' for new submissions. Slack won't expedite.
03Steps
Get a working connection
Slack accepts a manifest in the create-app URL, so an agent can generate the full config (scopes, redirect URLs, bot user) and you just pick a workspace and confirm.
◆ prepared by agent · Create Slack app from this manifesthttps://api.slack.com/apps?new_app=1&manifest_json={"display_information":{"name":"My Agent","description":"AI agent that works in your Slack"},"features":{"bot_user":{"display_name":"My Agent","always_online":true}},"oauth_config":{"redirect_urls":["https://example.com/slack/oauth/callback"],"scopes":{"bot":["chat:write","channels:read","app_mentions:read"]}},"settings":{"org_deploy_enabled":false,"socket_mode_enabled":false}}Install App → Install to Workspace gives you a bot token for your own workspace with no OAuth code needed.
↗ api.slack.com/apps
Make it production-ready
Required before any other workspace can install. All redirect URLs must be HTTPS. Use the
stateparameter. For Enterprise installs, check the user's domain matches the customer.Manage Distribution → Activate Public Distribution. You get an 'Add to Slack' button and a shareable install URL. It's also a prerequisite for Marketplace submission.
Marketplace submission is blocked until the app is installed on ≥10 workspaces active in the last 28 days.
Reviewers need test credentials (paid tier if required) with dummy data, and a video of install → OAuth → setup → use → uninstall. Only request scopes for features that exist today. An agent can draft scope reasons and the video script.
From the app's 'Submit to the Slack Marketplace' section. Check the estimated review time shown on the submission page.
04Requirements, scopes & nuances
You'll need
- ▸HTTPS for all OAuth redirect URLs once the app is installable by other workspaces. sourced[slack-dist]
- ▸Marketplace: ≥10 active workspace installs before submission. sourced[slack-review]
- ▸Marketplace: production-ready app, test credentials, and ideally a demo video. sourced[slack-review]
- ▸Marketplace: app meets the listing guidelines. Some app categories are not accepted. sourced[slack-guidelines]
Gotchas
- !Since May 2025, conversations.history and conversations.replies are limited to 1 request/min for commercially distributed non-Marketplace apps. That's crippling for agents that read context. sourced[slack-rl]
- !Slack's API terms say the Marketplace is the only appropriate channel for commercial distribution. Unlisted is for pilots. sourced[slack-rl][slack-dist]
- !Every resubmission during preliminary review puts you back in the queue. sourced[slack-review]
- !Don't request scopes for future features. Reviewers only approve what they can test, and adding scopes later forces users to reinstall. sourced[slack-review]
- !Some workspaces only allow Marketplace apps or require admin approval, so unlisted apps may be blocked at install. sourced[slack-dist]
| Scope / permission | Tier | Note | Evidence |
|---|---|---|---|
| chat:write | basic | Post messages as the bot. | inferred |
| app_mentions:read | basic | React when @mentioned. | inferred |
| channels:history / conversations.history | gated | Unlisted commercial apps: 1 request/min. Marketplace apps keep normal limits. | sourced[slack-rl] |
05If you get blocked
→ Use events (message.* subscriptions) instead of polling history, cache aggressively, and prioritize Marketplace approval. Internal apps are unaffected.
→ Run unlisted pilots with design partners first. Launching on the managed Composio Slack app meanwhile doesn't count toward your app's installs.
→ Ask their admin to approve the app request (admin approval flow), or wait for Marketplace listing.
06Evidence: what was tested, sourced, and still uncertain
Sources read
- [slack-dist] Slack — App distribution official
- [slack-review] Slack — Marketplace review guide official
- [slack-guidelines] Slack — Marketplace app guidelines and requirements official
- [slack-rl] Slack changelog — 2025 terms & rate-limit update FAQ official
- [slack-manifest] Slack — Configuring apps with app manifests official
- [composio] Composio — Managed OAuth apps directory official
- [probe] Live HTTP probes run by the agent (dummy client_id, no credentials) probe
Still uncertain
- ? Review times are Slack's stated maximums ('up to'). Actual times vary with volume, and the submission page shows a live estimate.
- ? Time to reach 10 active installs depends entirely on your distribution.
- ? We did not create a real Slack app. The manifest link format is from Slack's docs, not a recorded click-through.