- Communication
- v1.0.0
- slack
- messaging
- notifications
- channels
Slack
Send messages, manage channels, read threads, and schedule messages in connected Slack workspaces. Deliver reports and notifications from other skills.
SKILL.md
Slack
IMPORTANT: Slack messaging is available for this agent. Connected workspaces are managed through the MyClaw Bots dashboard. ALWAYS confirm before posting to public channels.
How it works
- Connected Slack workspaces are available via the API proxy
- All messages are audited and logged automatically
- The proxy handles authentication — no secrets on this machine
Dependencies
| Dependency | Required? | Why |
|---|---|---|
| Slack workspace connected via dashboard | Yes | The proxy needs a connected workspace to send and receive messages |
${PROXY_URL} and $PROXY_API_KEY configured |
Yes | Required for all API calls to the Slack proxy endpoints |
| Other skills (content-auditor, review-tracker, news-aggregator) | No | Optional; these skills can deliver reports and notifications to Slack channels |
Pre-flight checks:
- Verify the Slack workspace is connected in the MyClaw Bots dashboard
- Confirm
${PROXY_URL}and$PROXY_API_KEYenvironment variables are set - Test listing channels to verify connectivity before posting
Available Tools
1. List channels
curl -s -X GET "${PROXY_URL}/slack/channels" \
-H "x-api-key: $PROXY_API_KEY"
Returns: { "channels": [{ "id": "C...", "name": "general", "is_private": false, "num_members": 42 }] }
2. Read channel history
curl -s -X GET "${PROXY_URL}/slack/channel/C123456/history?limit=20" \
-H "x-api-key: $PROXY_API_KEY"
Returns: recent messages with timestamps, authors, and content.
3. Send a message
curl -s -X POST "${PROXY_URL}/slack/send" \
-H "x-api-key: $PROXY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "C123456",
"text": "Your message here"
}'
4. Send message with formatting
curl -s -X POST "${PROXY_URL}/slack/send" \
-H "x-api-key: $PROXY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "C123456",
"text": "Message with *bold* and _italic_",
"blocks": [{ "type": "section", "text": { "type": "mrkdwn", "text": "Formatted message" } }]
}'
5. Send a thread reply
curl -s -X POST "${PROXY_URL}/slack/send" \
-H "x-api-key: $PROXY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "C123456",
"text": "Reply to the thread",
"thread_ts": "1234567890.123456"
}'
6. Read a thread
curl -s -X GET "${PROXY_URL}/slack/thread/C123456/1234567890.123456" \
-H "x-api-key: $PROXY_API_KEY"
Returns: parent message and all replies with timestamps and authors.
7. Schedule a message
curl -s -X POST "${PROXY_URL}/slack/schedule" \
-H "x-api-key: $PROXY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "C123456",
"text": "Scheduled message",
"post_at": 1711700400
}'
post_atis Unix timestamp (must be in the future)
8. Add emoji reaction
curl -s -X POST "${PROXY_URL}/slack/react" \
-H "x-api-key: $PROXY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "C123456",
"timestamp": "1234567890.123456",
"emoji": "thumbsup"
}'
9. List workspace users
curl -s -X GET "${PROXY_URL}/slack/users" \
-H "x-api-key: $PROXY_API_KEY"
Returns: user list with IDs, names, and presence status.
10. Upload a file
curl -s -X POST "${PROXY_URL}/slack/file" \
-H "x-api-key: $PROXY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channels": ["C123456"],
"filename": "report.pdf",
"content": "<file_url_or_content>"
}'
Cross-Skill Synergies
- Deliver news digests — Generate content with the agent's own intelligence, then send to Slack channels
- Send audit reports — Use
content-auditorto analyze, post summaries to Slack - Notify about reviews — Use
review-trackerto monitor, send notifications to designated channels - Share documents — Generate or fetch files from Google Drive (via
gws), then share links in Slack - Schedule announcements — Plan ahead with scheduled messages for maximum visibility
Important Rules
- ALWAYS list channels first to verify the correct
channelID - ALWAYS show a preview and ask for explicit confirmation before posting to public channels
- NEVER spam channels with unsolicited messages
- Use threads for follow-ups to keep channels organized
- Respect @here and @channel — use sparingly and only when urgent
- Private channels are fine for internal reports; confirm before posting to company-wide channels
- If a message fails, report the error clearly to the user
- After posting, offer to check reactions or follow-ups later