slack-automation

Interact with Slack workspaces for channel management, message reading, and content analysis. All operations are read-only unless creating channels.

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-automation" with this command: npx skills add casper-studios/casper-marketplace/casper-studios-casper-marketplace-slack-automation

Slack Automation

Overview

Interact with Slack workspaces for channel management, message reading, and content analysis. All operations are read-only unless creating channels.

Quick Decision Tree

What do you need? │ ├── Search for channels by name │ └── references/search.md │ └── Script: scripts/slack_search.py search │ ├── Read messages from a channel │ └── references/fetch-news.md │ └── Script: scripts/fetch_slack_news.py │ ├── Create a new channel │ └── references/create-channel.md │ └── Script: scripts/create_slack_channel.py │ └── Categorize/analyze messages └── references/categorize.md └── Script: scripts/categorize_slack_messages.py

Environment Setup

Required in .env

SLACK_BOT_TOKEN=xoxb-your-bot-token

Required Bot Scopes

Scope Purpose

channels:read

List public channels

channels:history

Read public channel messages

groups:read

List private channels

groups:history

Read private channel messages

channels:manage

Create channels

Common Usage

Search Channels

python scripts/slack_search.py search "internal" --limit 10

Read Channel Messages

python scripts/slack_search.py read "internal-client" --days 7

Create Channel

python scripts/create_slack_channel.py "project-alpha" --private

Channel Naming Pattern

For client channels: internal-{client-name}

  • e.g., internal-microsoft , internal-acme-corp

Cost

Free - Slack API has no per-request cost. Rate limited to ~50 requests/minute.

Security Notes

Credential Handling

  • Store SLACK_BOT_TOKEN in .env file (never commit to git)

  • Bot tokens start with xoxb-

  • never expose in logs or output

  • Rotate tokens via Slack App settings if compromised

  • Use environment variables, not hardcoded values

Data Privacy

  • Messages may contain sensitive internal communications

  • Avoid storing message content in persistent logs

  • Use message links/IDs for references instead of copying content

  • Consider data retention policies for exported messages

  • User profiles include PII (names, emails, profile photos)

Access Scopes

  • Request minimum required scopes for your use case:

  • channels:read

  • List public channels (read-only)

  • channels:history

  • Read public channel messages (read-only)

  • groups:read

  • List private channels bot is in (read-only)

  • groups:history

  • Read private channel messages (read-only)

  • channels:manage

  • Create channels (write access)

  • Bot can only access channels it has been invited to

  • Review scopes at: Slack App Settings > OAuth & Permissions

Compliance Considerations

  • Audit Logging: Slack Enterprise Grid provides audit logs for compliance

  • Message Retention: Follow your organization's data retention policies

  • GDPR: Message content may contain EU user PII

  • eDiscovery: Exported messages may be subject to legal holds

  • Internal Communications: Treat Slack data as confidential

  • Channel Privacy: Private channel access requires explicit invitation

Troubleshooting

Common Issues

Issue: Channel not found

Symptoms: "channel_not_found" error when reading or posting Cause: Invalid channel ID, bot not in channel, or private channel Solution:

  • Verify channel ID is correct (use slack_search.py search )

  • Invite the bot to the channel (/invite @botname )

  • Check if channel is private - bot needs explicit invitation

  • Ensure channel hasn't been archived or deleted

Issue: Missing permissions / scope errors

Symptoms: "missing_scope" or "not_allowed_token_type" error Cause: Bot token missing required OAuth scopes Solution:

  • Go to Slack App Settings > OAuth & Permissions

  • Add required scopes: channels:read , channels:history , etc.

  • Reinstall the app to workspace after adding scopes

  • Verify using the correct bot token (starts with xoxb- )

Issue: Token expired or invalid

Symptoms: "invalid_auth" or "token_revoked" error Cause: OAuth token expired, revoked, or incorrectly configured Solution:

  • Reauthorize the bot in Slack App settings

  • Regenerate the bot token if revoked

  • Check .env for correct SLACK_BOT_TOKEN value

  • Verify no whitespace or special characters in token

Issue: Rate limited

Symptoms: "ratelimited" error or 429 status code Cause: Too many API requests in short period Solution:

  • Add delays between requests (1-2 seconds)

  • Reduce batch size for bulk operations

  • Implement exponential backoff on retries

  • Slack allows ~50 requests/minute for most endpoints

Issue: Private channel access denied

Symptoms: Can't read private channel despite having scopes Cause: Bot not added to the private channel Solution:

  • Have a channel member invite the bot: /invite @botname

  • Ensure groups:read and groups:history scopes are added

  • Verify bot has been reinstalled after adding scopes

Resources

  • references/search.md - Channel search and message reading

  • references/fetch-news.md - Fetch news from channels

  • references/create-channel.md - Create new channels

  • references/categorize.md - AI message categorization

Integration Patterns

Slack to Newsletter

Skills: slack-automation → content-generation Use case: Summarize internal news for weekly newsletter Flow:

  • Fetch messages from news/announcements channels

  • Categorize and filter relevant content

  • Generate formatted newsletter section via content-generation

Slack and Meeting Context

Skills: slack-automation → transcript-search Use case: Find related meetings when researching Slack discussions Flow:

  • Search Slack for client name or topic

  • Extract date ranges and participant names

  • Search transcript-search for related meeting recordings

Slack Reports to Drive

Skills: slack-automation → google-workspace Use case: Archive categorized Slack summaries to Google Drive Flow:

  • Fetch and categorize messages from internal channels

  • Generate formatted report document

  • Upload to Google Drive via google-workspace

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.

Research

parallel-research

No summary provided by upstream source.

Repository SourceNeeds Review
Research

data-analysis

No summary provided by upstream source.

Repository SourceNeeds Review
General

firecrawl-scraping

No summary provided by upstream source.

Repository SourceNeeds Review
General

pr-summary

No summary provided by upstream source.

Repository SourceNeeds Review