Slack Integration
Configure Slack MCP to post drafted messages for team review
Slack integration enables your agent workflows to post drafted messages to team channels for review, approval, or CRM logging. This is particularly useful with the /linkt-outreach skill.
What You Can Do
With Slack integration configured:
- Team review — Post drafted LinkedIn messages to a channel before sending
- CRM logging — Create a record of outreach in Slack for tracking
- Collaboration — Get feedback from teammates on message drafts
- Audit trail — Maintain a history of prospect communications
Prerequisites
Before setting up Slack integration, ensure you have:
- Linkt API key configured — Complete the MCP Setup
- Claude Code with MCP support — Install Claude Code
- Slack workspace admin access — Or permission to create apps
Create a Slack App
1. Create the app
- Go to api.slack.com/apps
- Click Create New App
- Choose From scratch
- Name it (e.g., "Linkt Agent") and select your workspace
2. Configure OAuth scopes
Navigate to OAuth & Permissions and add these Bot Token Scopes:
| Scope | Purpose |
|---|---|
chat:write | Post messages to channels |
channels:read | List available channels |
groups:read | List private channels (optional) |
3. Install to workspace
- Click Install to Workspace at the top of the OAuth page
- Authorize the app
- Copy the Bot User OAuth Token (starts with
xoxb-)
4. Get your Team ID
The Team ID identifies your Slack workspace. To find it:
- Open Slack in a web browser
- Look at the URL:
https://app.slack.com/client/T0XXXXXXX/... - The Team ID is the code starting with
T(e.g.,T0XXXXXXX)
MCP Configuration
Add the Slack MCP server to your .mcp.json file:
Set the environment variables
Add your Slack credentials to your .env file:
If using direnv, run direnv allow to reload the environment.
Invite the Bot to a Channel
Before the bot can post messages, invite it to your target channel:
- Open the channel in Slack
- Type
/invite @Linkt Agent(or your app name) - The bot can now post to this channel
Usage with /linkt-outreach
After drafting a message with the outreach skill, ask Claude to post it to Slack:
Claude will post the drafted message along with prospect context to the specified channel.
Example Slack Post
When posting a draft, the message includes:
- Prospect name and title
- Company name
- Signal or context used
- Drafted message
- Any notes from the conversation
This gives your team full context for review and approval.
Troubleshooting
"channel_not_found" error
The bot isn't a member of the channel. Invite it with /invite @YourAppName.
"not_authed" error
Your SLACK_BOT_TOKEN or SLACK_TEAM_ID is missing or invalid. Verify:
- Both
SLACK_BOT_TOKENandSLACK_TEAM_IDare set in your.envfile - The token starts with
xoxb- - The team ID starts with
T - You've run
direnv allowif using direnv
"missing_scope" error
Your app doesn't have the required permissions. Go to OAuth & Permissions in your Slack app settings and add the missing scope, then reinstall the app.
Bot doesn't respond
Ensure Claude Code has loaded the Slack MCP server. Restart Claude Code after updating .mcp.json:
Security Considerations
- Token storage — Never commit
SLACK_BOT_TOKENorSLACK_TEAM_IDto version control - Channel access — The bot can only post to channels it's invited to
- Review before sending — Slack posts are drafts, not automated sends
Next Steps
- /linkt-outreach — Draft personalized messages
- /linkt-signals — Find prospects with recent signals
- Overview — All available agent skills