Slack Connect
Entry point for all Slack operations. Validates configuration, discovers workspace, and routes requests to appropriate skills.
Trigger Phrases
Load this skill when user says:
-
"slack" / "connect slack" / "slack connect"
-
"send slack message" / "message [channel]"
-
"list slack channels" / "slack channels"
-
"search slack" / "find in slack"
-
"slack users" / "who's on slack"
-
Any reference to Slack operations
Quick Reference
First-time setup:
python 00-system/skills/slack/slack-master/scripts/setup_slack.py
Check configuration:
python 00-system/skills/slack/slack-master/scripts/check_slack_config.py --json
Workflow
Step 1: Validate Configuration
Always run first:
python 00-system/skills/slack/slack-master/scripts/check_slack_config.py --json
If ai_action is proceed_with_operation :
- Continue to Step 2
If ai_action is run_oauth_setup :
-
Tell user: "Slack needs to be set up. Let me guide you through authorization."
-
Run: python 00-system/skills/slack/slack-master/scripts/setup_slack.py
-
After setup, re-check config
If ai_action is create_slack_app :
-
Guide user through creating a Slack App
-
Load: slack-master/references/setup-guide.md
-
After app created, run setup wizard
Step 2: Identify User Intent
Parse what the user wants to do:
User Says Route To
"send message to #general" Messaging → send_message.py
"list channels" Channels → list_channels.py
"get messages from #dev" Channels → channel_history.py
"search for 'project update'" Search → search_messages.py
"list users" Users → list_users.py
"upload file" Files → upload_file.py
"add reaction" Reactions → (see Phase 7)
"pin message" Pins → (see Phase 9)
"set reminder" Reminders → (see Phase 10)
Step 3: Execute Operation
Use the appropriate script from slack-master/scripts/ :
Messaging Operations
Send message:
python 00-system/skills/slack/slack-master/scripts/send_message.py
--channel "C1234567890"
--text "Hello from Nexus!"
--json
Update message:
python 00-system/skills/slack/slack-master/scripts/update_message.py
--channel "C1234567890"
--ts "1234567890.123456"
--text "Updated message"
--json
Delete message:
python 00-system/skills/slack/slack-master/scripts/delete_message.py
--channel "C1234567890"
--ts "1234567890.123456"
--json
Channel Operations
List channels:
python 00-system/skills/slack/slack-master/scripts/list_channels.py
--types "public_channel,private_channel"
--limit 50
--json
Get channel info:
python 00-system/skills/slack/slack-master/scripts/channel_info.py
--channel "C1234567890"
--json
Get channel history:
python 00-system/skills/slack/slack-master/scripts/channel_history.py
--channel "C1234567890"
--limit 20
--json
User Operations
List users:
python 00-system/skills/slack/slack-master/scripts/list_users.py
--limit 100
--json
Get user info:
python 00-system/skills/slack/slack-master/scripts/user_info.py
--user "U1234567890"
--json
Search Operations
Search messages:
python 00-system/skills/slack/slack-master/scripts/search_messages.py
--query "project update"
--count 20
--json
Search files:
python 00-system/skills/slack/slack-master/scripts/search_files.py
--query "report.pdf"
--count 10
--json
File Operations
Upload file:
python 00-system/skills/slack/slack-master/scripts/upload_file.py
--file "/path/to/file.pdf"
--channels "C1234567890"
--title "My Report"
--json
List files:
python 00-system/skills/slack/slack-master/scripts/list_files.py
--channel "C1234567890"
--limit 20
--json
Step 4: Handle Results
Success:
-
Display relevant information to user
-
Format output nicely (channel names, usernames, etc.)
Error:
-
Load slack-master/references/error-handling.md if needed
-
Common errors:
-
channel_not_found → Help user find correct channel
-
missing_scope → Need to add scope and re-authorize
-
rate_limited → Wait and retry
Operation Scripts Reference
All scripts are in 00-system/skills/slack/slack-master/scripts/ :
Messaging
Script API Method Description
send_message.py chat.postMessage Send a message
update_message.py chat.update Edit a message
delete_message.py chat.delete Delete a message
schedule_message.py chat.scheduleMessage Schedule a message
Conversations
Script API Method Description
list_channels.py conversations.list List channels
channel_info.py conversations.info Get channel details
channel_history.py conversations.history Get messages
create_channel.py conversations.create Create channel
Users
Script API Method Description
list_users.py users.list List workspace users
user_info.py users.info Get user details
Files
Script API Method Description
upload_file.py files.upload Upload a file
list_files.py files.list List files
Search
Script API Method Description
search_messages.py search.messages Search messages
search_files.py search.files Search files
Channel Resolution
When user references a channel by name (e.g., "#general"):
First, list channels to find the ID:
python list_channels.py --json
Find matching channel in response
Use the channel ID (e.g., "C1234567890") for operations
Common Pattern:
User says: "send message to #general"
1. List channels to find ID
2. Use ID in send_message.py --channel C123...
User Resolution
When user references someone by name (e.g., "@john"):
List users to find the ID:
python list_users.py --json
Find matching user in response
Use the user ID (e.g., "U1234567890") for operations
Example Interactions
Send a Message
User: "Send 'Hello team!' to #general"
AI Actions:
-
Check config: check_slack_config.py --json
-
List channels: list_channels.py --json
-
Find #general ID → C1234567890
-
Send message: send_message.py --channel C1234567890 --text "Hello team!" --json
-
Confirm to user: "Message sent to #general"
Search Slack
User: "Search slack for 'quarterly report'"
AI Actions:
-
Check config
-
Search: search_messages.py --query "quarterly report" --json
-
Display results with channel names and snippets
List My Channels
User: "What slack channels am I in?"
AI Actions:
-
Check config
-
List: list_channels.py --types "public_channel,private_channel" --json
-
Display channel names and member counts
Error Handling
Configuration Errors
Error Action
No token Run setup_slack.py
Invalid token Re-authenticate
Token revoked Re-authenticate
Operation Errors
Error Action
channel_not_found List channels, help user find correct one
missing_scope Add scope to app, re-authorize
rate_limited Wait retry_after seconds, then retry
not_in_channel Join channel first
For detailed error handling:
Load: slack-master/references/error-handling.md
Related Resources
-
Setup: slack-master/references/setup-guide.md
-
API Reference: slack-master/references/api-reference.md
-
Authentication: slack-master/references/authentication.md
-
Errors: slack-master/references/error-handling.md
Version: 1.0 Created: 2025-12-17 Status: Production Ready