lua channels, and both hand you an app manifest that configures Slack for you.
Verified against lua-cli 3.33.0.
Before you begin
- A Slack app created at api.slack.com/apps (Create New App → From scratch) in a workspace you can install apps to.
- Private: the app’s Bot User OAuth Token, which starts with
xoxb-, from OAuth & Permissions after a first install with at least theusers:readscope. - Public: the App ID, Client ID, and Client Secret from Basic Information → App Credentials.
- An agent with a promoted production version; see Release an agent.
1
Link the app
- Dashboard
- CLI
In the admin dashboard open Agents, select the agent, select + in the Channels section of its Overview tab, and choose Slack in Connect a channel. Choose Private — just my workspace or Public — a distributable app, say whether you already have a Slack app (the wizard walks you through creating one otherwise), enter the Bot token or the App ID, Client ID, and Client Secret, and select Connect. The next dialog shows the app Manifest to copy into Slack’s App Manifest page and, for a public app, an Add to Slack button.
2
Provider console: apply the manifest
In your Slack app open App Manifest, switch to JSON, paste the manifest, and save. It sets the fourteen bot scopes listed under Limits, subscribes the bot to
app_mention, message.channels, message.groups, message.im, and message.mpim, points Event Subscriptions and Interactivity at https://wa.heylua.ai/slack/webhook, and adds the OAuth redirect URL https://auth.heylua.ai/slack/oauth_redirect/<appId>. Edit display_information to name the app. For a private app, reinstall it to the workspace so the token picks up the new scopes.3
Public only: install through Lua
Open the install URL the admin dashboard or CLI gave you and approve the installation. It completes OAuth with Lua and moves the channel from
pending_setup to active.4
Verify
Send the app a direct message with
hello; it answers in a thread under your message. Invite it to a channel and mention it; it answers in a thread there too. lua channels list shows a SLACK entry.Response settings
Once connected, select the Slack channel in the admin dashboard to open Slack settings; Response behavior offers Mentions only, DMs and mentions (the default), and Auto-respond in channels, which adds a list of channels to pick. Mentions are always answered.
Direct messages are answered unless the mode is
mentions_only. Messages in channels the app belongs to are answered only in auto_respond mode and only in the listed channels. Reactions need the reactions:write scope; an app installed before that scope was in the manifest keeps its old token until the workspace reauthorises it, and the agent silently skips the reaction until then.
Channel behavior
To put something in front of a Slack workspace unprompted, either let people ask the agent in-channel, or connect Slack as an integration and have a job post through it; as a channel, Slack is where people talk to the agent.
Limits
- Bot scopes:
chat:write,channels:history,groups:history,im:history,mpim:history,channels:read,groups:read,im:read,mpim:read,users:read,app_mentions:read,users:read.email,files:read,reactions:write. - One private connection per workspace and app; one public connection per App ID per agent.
imagesrenders only the first image.
Troubleshooting
Missing required scope: users:read
Missing required scope: users:read
The bot token was issued before the manifest was applied. Apply the manifest, reinstall the app to the workspace, and link again with the new
xoxb- token.A public channel stays pending
A public channel stays pending
The app was installed with Slack’s button instead of the install URL, so OAuth never returned to Lua. Open
https://auth.heylua.ai/slack/install/<appId> and approve it there.The agent answers DMs but ignores a channel
The agent answers DMs but ignores a channel
That is the default
dms_and_mentions mode. Mention the app, or set responseMode to auto_respond and add the channel’s ID to autoRespondChannels.Next steps
Connect Microsoft Teams
The other team-chat channel, admin dashboard only.
Response formatting
What each component becomes in Slack.
lua channels
Every menu item and what it prints.
About channels
Channels and integrations, and why Slack is on both lists.

