Slack
Deploy your agent as a Slack bot. It responds to @mentions in channels, direct messages, and slash commands. Messages flow through the same agentic loop as the web widget — same tools, same knowledge base, same reasoning.
Setup
There are two ways to connect Slack:
Pillar's managed bot (OAuth)
- Go to Agents in the dashboard
- Click Add Agent and select Slack
- Click Use Pillar's Bot
- Authorize the bot in your Slack workspace
- The bot appears in your workspace and is ready to use
Bring your own bot (BYOB)
If you want a bot branded as your company (e.g., "Acme Bot" instead of "Pillar"), create your own Slack app and paste the credentials into Pillar.
- Go to Agents in the dashboard
- Click Add Agent and select Slack
- Click Create Your Own Bot
- Create a Slack app at api.slack.com/apps using the provided manifest
- Copy and paste these values from your Slack app:
- Bot User OAuth Token (
xoxb-...) - Signing Secret
- App ID
- Bot User OAuth Token (
Pillar validates the token and creates the connection.
Channel settings
Configured in the dashboard under Agents > [your agent] > Channel Settings.
| Setting | Description | Default |
|---|---|---|
| Slack Channel IDs | Restrict the bot to specific channels (comma-separated IDs). Empty means all channels. | All channels |
| Thread Replies Only | Reply in threads instead of the main channel | Off |
| Thinking Reaction | Show a reaction emoji while the agent is processing | On |
| Thinking Emoji | Which emoji to use for the thinking reaction | :thinking_face: |
Slash commands
The Slack bot registers /pillar (or your custom command name) with two subcommands:
/pillar ask <question>— Ask the agent a question directly/pillar connect— Link your Slack identity to your app account (see below)
Identity
Slack provides the user's email address, so Pillar can auto-link by email when an IdentityMapping already exists for that email. For first-time users, the /connect slash command generates a one-time link:
- User types
/pillar connect - Bot sends an ephemeral message with a link to your app's connect page
- User clicks the link, authenticates, and your backend confirms the link
- All future messages from this user include their
external_user_id
See Identity Linking for the backend implementation.
Tool context
For Slack agents, each tool can be restricted to DMs only or Public channels only in the Tools tab. This lets you make sensitive tools (like account modifications) available only in private DMs, while keeping informational tools available everywhere.
Next steps
- Identity Linking — Implement the
/connectbackend flow - Setting Up Tools — Configure tools for your agent
- Confirmation Flows — Ask users to confirm before executing actions