slack-notifications

Mode: Cognitive/Prompt-Driven — No standalone utility script; use via agent context.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "slack-notifications" with this command: npx skills add oimiragieo/agent-studio/oimiragieo-agent-studio-slack-notifications

Mode: Cognitive/Prompt-Driven — No standalone utility script; use via agent context.

Slack Notifications Skill

Overview

This skill provides Slack API operations with progressive disclosure for optimal context usage.

Context Savings: ~90% reduction

  • MCP Mode: ~15,000 tokens always loaded (30+ tools)

  • Skill Mode: ~500 tokens metadata + on-demand loading

Requirements

  • SLACK_BOT_TOKEN environment variable (required)

  • SLACK_SIGNING_SECRET environment variable (optional, for event verification)

  • SLACK_APP_TOKEN environment variable (optional, for Socket Mode)

Setting up Slack Bot Token

  • Create a Slack App at https://api.slack.com/apps

  • Navigate to "OAuth & Permissions"

  • Add required bot token scopes:

  • chat:write

  • Send messages

  • channels:read

  • List channels

  • channels:history

  • Read channel history

  • users:read

  • List users

  • files:write

  • Upload files

  • reactions:write

  • Add reactions

  • Install app to workspace

  • Copy "Bot User OAuth Token" to SLACK_BOT_TOKEN environment variable

Tools

The skill provides 14 tools across 5 categories:

Category Tools Confirmation Required

Messaging post-message, post-thread, update-message, delete-message Yes (all)

Channels list-channels, get-channel, channel-history No

Users list-users, get-user, user-presence No

Files upload-file, list-files Yes (upload only)

Reactions add-reaction, get-reactions No

Quick Reference

Post message to channel

curl -X POST https://slack.com/api/chat.postMessage
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-H "Content-Type: application/json"
-d '{"channel": "C1234567890", "text": "Hello from Claude!"}'

List channels

curl -X GET "https://slack.com/api/conversations.list"
-H "Authorization: Bearer $SLACK_BOT_TOKEN"

Upload file

curl -X POST https://slack.com/api/files.upload
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-F "channels=C1234567890"
-F "file=@report.pdf"
-F "title=Weekly Report"

Tool Details

Messaging Tools (Confirmation Required)

post-message

Send a message to a Slack channel.

Parameters:

  • channel (required): Channel ID or name (e.g., "C1234567890" or "#general")

  • text (required): Message text (supports Slack markdown)

  • thread_ts (optional): Parent message timestamp for threading

  • blocks (optional): Rich message blocks (JSON array)

Example:

curl -X POST https://slack.com/api/chat.postMessage
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-H "Content-Type: application/json"
-d '{ "channel": "C1234567890", "text": "Deployment successful!", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "Deployment Status\n:white_check_mark: Production deployed successfully" } } ] }'

post-thread

Reply to a message in a thread.

Parameters:

  • channel (required): Channel ID

  • thread_ts (required): Parent message timestamp

  • text (required): Reply text

Example:

curl -X POST https://slack.com/api/chat.postMessage
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-H "Content-Type: application/json"
-d '{ "channel": "C1234567890", "thread_ts": "1234567890.123456", "text": "Thread reply here" }'

update-message

Update an existing message.

Parameters:

  • channel (required): Channel ID

  • ts (required): Message timestamp

  • text (required): New message text

Example:

curl -X POST https://slack.com/api/chat.update
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-H "Content-Type: application/json"
-d '{ "channel": "C1234567890", "ts": "1234567890.123456", "text": "Updated message" }'

delete-message

Delete a message.

Parameters:

  • channel (required): Channel ID

  • ts (required): Message timestamp

Example:

curl -X POST https://slack.com/api/chat.delete
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-H "Content-Type: application/json"
-d '{ "channel": "C1234567890", "ts": "1234567890.123456" }'

Channel Tools

list-channels

List all channels in workspace.

Parameters:

  • types (optional): Comma-separated channel types (default: "public_channel")

  • Options: "public_channel", "private_channel", "mpim", "im"

  • limit (optional): Max channels to return (default: 100)

Example:

curl -X GET "https://slack.com/api/conversations.list?types=public_channel,private_channel"
-H "Authorization: Bearer $SLACK_BOT_TOKEN"

get-channel

Get channel information.

Parameters:

  • channel (required): Channel ID

Example:

curl -X GET "https://slack.com/api/conversations.info?channel=C1234567890"
-H "Authorization: Bearer $SLACK_BOT_TOKEN"

channel-history

Get channel message history.

Parameters:

  • channel (required): Channel ID

  • limit (optional): Max messages to return (default: 100)

  • oldest (optional): Start of time range (Unix timestamp)

  • latest (optional): End of time range (Unix timestamp)

Example:

curl -X GET "https://slack.com/api/conversations.history?channel=C1234567890&limit=50"
-H "Authorization: Bearer $SLACK_BOT_TOKEN"

Security Note: Channel history may contain sensitive information. Use with caution.

User Tools

list-users

List all users in workspace.

Parameters:

  • limit (optional): Max users to return (default: 100)

Example:

curl -X GET "https://slack.com/api/users.list"
-H "Authorization: Bearer $SLACK_BOT_TOKEN"

get-user

Get user profile information.

Parameters:

  • user (required): User ID

Example:

curl -X GET "https://slack.com/api/users.info?user=U1234567890"
-H "Authorization: Bearer $SLACK_BOT_TOKEN"

user-presence

Get user online status.

Parameters:

  • user (required): User ID

Example:

curl -X GET "https://slack.com/api/users.getPresence?user=U1234567890"
-H "Authorization: Bearer $SLACK_BOT_TOKEN"

File Tools

upload-file (Confirmation Required)

Upload a file to Slack channel.

Parameters:

  • channels (required): Comma-separated channel IDs

  • file (required): File path to upload

  • title (optional): File title

  • initial_comment (optional): Message text

Example:

curl -X POST https://slack.com/api/files.upload
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-F "channels=C1234567890"
-F "file=@C:\reports\weekly.pdf"
-F "title=Weekly Report"
-F "initial_comment=Here is this week's report"

list-files

List files in channel.

Parameters:

  • channel (optional): Channel ID to filter by

  • user (optional): User ID to filter by

  • count (optional): Max files to return (default: 100)

Example:

curl -X GET "https://slack.com/api/files.list?channel=C1234567890"
-H "Authorization: Bearer $SLACK_BOT_TOKEN"

Reaction Tools

add-reaction

Add emoji reaction to a message.

Parameters:

  • channel (required): Channel ID

  • timestamp (required): Message timestamp

  • name (required): Emoji name (without colons, e.g., "thumbsup")

Example:

curl -X POST https://slack.com/api/reactions.add
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-H "Content-Type: application/json"
-d '{ "channel": "C1234567890", "timestamp": "1234567890.123456", "name": "thumbsup" }'

get-reactions

Get reactions on a message.

Parameters:

  • channel (required): Channel ID

  • timestamp (required): Message timestamp

Example:

curl -X GET "https://slack.com/api/reactions.get?channel=C1234567890&timestamp=1234567890.123456"
-H "Authorization: Bearer $SLACK_BOT_TOKEN"

Agent Integration

Primary Agents

  • devops: Infrastructure alerts, deployment notifications, monitoring

  • incident-responder: Incident alerts, status updates, escalations

Secondary Agents

  • pm: Sprint notifications, milestone updates, team announcements

  • developer: Build notifications, PR alerts, test results

  • qa: Test failure alerts, quality reports

  • security-architect: Security alerts, vulnerability notifications

Common Use Cases

Deployment Notifications

Notify channel of successful deployment

curl -X POST https://slack.com/api/chat.postMessage
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-H "Content-Type: application/json"
-d '{ "channel": "#deployments", "text": ":rocket: Production deployment completed", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "Production Deployment\n:white_check_mark: v1.2.3 deployed successfully\nDuration: 5m 23s" } } ] }'

Incident Alerts

Alert on-call team of incident

curl -X POST https://slack.com/api/chat.postMessage
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-H "Content-Type: application/json"
-d '{ "channel": "#incidents", "text": "<!channel> :rotating_light: High severity incident detected", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "Incident INC-1234\n:rotating_light: Severity: P1\nService: API Gateway\nStatus: 503 errors increasing" } } ] }'

Test Results

Post test results

curl -X POST https://slack.com/api/chat.postMessage
-H "Authorization: Bearer $SLACK_BOT_TOKEN"
-H "Content-Type: application/json"
-d '{ "channel": "#qa", "text": "Test suite completed", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "Test Results\n:white_check_mark: 245 passed\n:x: 3 failed\n:warning: 2 skipped" } } ] }'

Security Considerations

Token Security

  • NEVER expose bot token in logs or error messages

  • Store token in environment variable, not in code

  • Use least-privilege scopes for bot token

  • Rotate tokens periodically

Message Security

  • All message operations require confirmation

  • Channel history may contain sensitive information (PII, credentials, etc.)

  • Validate channel permissions before posting

  • Use private channels for sensitive communications

Data Privacy

  • Comply with workspace data retention policies

  • Avoid posting PII or credentials in messages

  • Use Slack's data export features for compliance

  • Respect user privacy and online status

Error Handling

Common Errors

Error Cause Solution

not_authed

Missing or invalid token Check SLACK_BOT_TOKEN is set correctly

channel_not_found

Invalid channel ID Verify channel ID with list-channels

missing_scope

Bot lacks required permission Add scope in Slack App settings

rate_limited

Too many requests Implement exponential backoff

message_not_found

Invalid timestamp Check message timestamp is correct

Retry Strategy

For rate limiting errors, implement exponential backoff:

  • Wait 1 second, retry

  • Wait 2 seconds, retry

  • Wait 4 seconds, retry

  • Wait 8 seconds, retry

  • Give up after 5 attempts

Rate Limits

Slack API rate limits:

  • Tier 1: 1 request per second

  • Tier 2: 20 requests per minute

  • Tier 3: 50 requests per minute

  • Tier 4: 100 requests per minute

Methods by tier:

  • chat.postMessage : Tier 3 (50/min)

  • conversations.list : Tier 2 (20/min)

  • users.list : Tier 2 (20/min)

  • files.upload : Tier 4 (100/min)

Related

Memory Protocol (MANDATORY)

Before starting: Read .claude/context/memory/learnings.md

After completing:

  • New pattern -> .claude/context/memory/learnings.md

  • Issue found -> .claude/context/memory/issues.md

  • Decision made -> .claude/context/memory/decisions.md

ASSUME INTERRUPTION: If it's not in memory, it didn't happen.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

filesystem

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

chrome-browser

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

diagram-generator

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

text-to-sql

No summary provided by upstream source.

Repository SourceNeeds Review