slack
Skill10 starsChanged 7 months agoMITView on GitHub
Slack team messaging for small businesses. Send messages, manage channels, post automated updates, run daily standups, and coordinate your team. Includes SMB channel structure and team communication best practices.
- Sends data out
We split this skill into the rules it gives an agent
6 rules. 0 are common, 6 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 60 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 53
Create a new app (or use existing)
- Distinctive: line 215
Don't over-channel. Start with:
- Distinctive: line 223
Add channels only when a topic generates enough noise to warrant its own space.
- Distinctive: line 340
Don't over-notify: Every bot message should be actionable or informational — never both at once.
- Distinctive: line 345
Respect DND: Don't send non-urgent DMs outside business hours.
- Distinctive: line 347
Archive dead channels: If nobody's posted in 30 days, archive it.
“Common” is measured: kept by at least 6 in 10 of the 60 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Slack
Team messaging built for how small businesses actually communicate.
For user lookups and directory management, see the slack-directory skill. This skill covers everything else: sending messages, managing channels, posting automated updates, and organizing your team's communication.
Triggers
- "send a slack message"
- "post to #channel"
- "message the team"
- "set up slack channels"
- "slack standup"
- "post an update to slack"
- Any request involving Slack messaging, channels, or team communication
Prerequisites
- Slack Bot Token with appropriate scopes (see Setup below)
- jq installed for JSON parsing
slack-directoryskill for user lookupssecrets-managerskill for secure token storage
Setup
Required Bot Token Scopes
| Scope | What It Enables |
chat:write | Send messages to channels and DMs |
channels:read | List and get info about public channels |
channels:manage | Create and archive public channels |
groups:read | List private channels the bot is in |
im:write | Send direct messages |
users:read | Look up users (for slack-directory) |
files:write | Upload files to channels |
reactions:write | Add emoji reactions |
Getting Your Bot Token
- Go to api.slack.com/apps
- Create a new app (or use existing)
- Go to OAuth & Permissions → add the scopes above
- Install to your workspace
- Copy the Bot User OAuth Token (
xoxb-...) - Store securely:
# GCP Secret Manager (recommended) echo -n "xoxb-your-token" | gcloud secrets create slack-bot-token --data-file=- # Or set as environment variable export SLACK_BOT_TOKEN="xoxb-your-token"
Retrieving Your Token
# From GCP Secret Manager
TOKEN=$(gcloud secrets versions access latest --secret="slack-bot-token")
# From environment
TOKEN="$SLACK_BOT_TOKEN"Every message and channel change is visible to your team and hard to fully unsend. Before the agent posts a message, sends a DM, creates or archives a channel, or uploads a file, show the user the exact text and target and get explicit approval — unless they've pre-approved a specific recurring automation (e.g. a daily briefing to a named channel), in which case state that standing approval the first time and stay within its scope.
Core Operations
Send a message to a channel
TOKEN=$(gcloud secrets versions access latest --secret="slack-bot-token")
curl -s -X POST "https://slack.com/api/chat.postMessage" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channel": "C0XXXXXXX",
"text": "Morning update: 3 deliveries scheduled, 2 pickups. Full details in the daily brief."
}' | jq '.ok'Send a DM to someone
# First, look up the user ID (use slack-directory skill)
# Then send a DM
curl -s -X POST "https://slack.com/api/chat.postMessage" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channel": "U09ABC123",
"text": "Hey — vendor delivery moved to 3pm today. Can you be there to receive it?"
}' | jq '.ok'Send a rich message (blocks)
curl -s -X POST "https://slack.com/api/chat.postMessage" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channel": "C0XXXXXXX",
"blocks": [
{
"type": "header",
"text": {"type": "plain_text", "text": "Daily Sales Report"}
},
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*Revenue:*\n$2,450"},
{"type": "mrkdwn", "text": "*vs Forecast:*\n+11%"},
{"type": "mrkdwn", "text": "*Transactions:*\n87"},
{"type": "mrkdwn", "text": "*Avg Ticket:*\n$28.16"}
]
},
{
"type": "context",
"elements": [
{"type": "mrkdwn", "text": "Generated automatically by your AI agent"}
]
}
]
}'List channels
curl -s "https://slack.com/api/conversations.list" \
-H "Authorization: Bearer $TOKEN" \
-G -d "types=public_channel,private_channel" -d "limit=100" | \
jq -r '.channels[] | "\(.id)\t\(.name)\t\(.num_members) members"'Create a channel
curl -s -X POST "https://slack.com/api/conversations.create" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "daily-briefing",
"is_private": false
}' | jq '.channel.id'Upload a file
# Upload a report or document to a channel
curl -s -X POST "https://slack.com/api/files.uploadV2" \
-H "Authorization: Bearer $TOKEN" \
-F "channel_id=C0XXXXXXX" \
-F "title=Weekly Sales Report" \
-F "file=@./report.pdf"Set channel topic
curl -s -X POST "https://slack.com/api/conversations.setTopic" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channel": "C0XXXXXXX",
"topic": "Daily ops updates. Agent posts briefings at 7:30am."
}'Thread a reply
# Reply in a thread (use ts from the parent message)
curl -s -X POST "https://slack.com/api/chat.postMessage" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channel": "C0XXXXXXX",
"thread_ts": "1705300000.000100",
"text": "Update: delivery confirmed for 3pm."
}'SMB Channel Structure
Recommended channels for small businesses
| Channel | Purpose | Who's In | Bot Posts |
#general | Company-wide announcements | Everyone | Major alerts only |
#daily-briefing | Morning briefing + end-of-day summary | Everyone | Daily automated briefing |
#orders | Order updates, fulfillment status | Operations team | Order alerts |
#inventory | Stock levels, reorder alerts | Operations + purchasing | Low stock alerts |
#sales | Revenue updates, daily numbers | Leadership + sales | Daily sales report |
#marketing | Ad performance, campaign updates | Marketing team | Ad spend alerts |
#ops-log | Shift handoffs, equipment issues | Operations team | Shift change reminders |
#vendor-comms | Vendor updates, delivery tracking | Purchasing + ops | Delivery confirmations |
For very small teams (< 5 people)
Don't over-channel. Start with:
| Channel | Purpose |
#general | Everything that doesn't fit elsewhere |
#daily-briefing | Automated morning briefing |
#alerts | Anything that needs immediate attention |
Add channels only when a topic generates enough noise to warrant its own space.
SMB Messaging Patterns
Morning standup post
Post a structured daily standup every morning:
*Daily Standup — Wednesday, Jan 15*
*Yesterday:*
• Revenue: $2,450 (forecast: $2,200, +11%)
• 87 transactions, avg ticket $28.16
• Vendor delivery received from Fresh Farms
*Today:*
• 3 deliveries scheduled (UPS, Fresh Farms, Packaging Co)
• 2 customer pickups
• Mike out — Sarah covering his shift
*Blockers:*
• Cooler #2 running warm (38°F, target 34°F) — monitoring
• Waiting on quote from new packaging vendor
*Action items:*
• [ ] Follow up with landlord re: lease renewal (Owner)
• [ ] Submit Q1 tax docs by Friday (Owner)Shift handoff
Post at shift change so the next crew knows what's happening:
*Shift Handoff — 3:00 PM*
*Completed:*
• Morning delivery received and checked in
• Inventory count done for deli case
• Customer order #4521 prepped and ready for pickup
*In progress:*
• Cooler reorganization (about 60% done)
*Needs attention:*
• Customer called about catering for Saturday — details in #orders
• Paper towel supply low — reorder needed
• Register 2 jamming on receipts (works if you open/close the paper door)
*Heads up:*
• Evening delivery from Sysco expected at 5pm
• VIP customer (Johnson) picking up at 6pm — special order in walk-in, labeledAutomated alerts
Post alerts when metrics cross thresholds:
🚨 *Alert: Revenue significantly below forecast*
Today's revenue: $1,200 (forecast: $2,100)
Shortfall: -43%
Time: 4:30 PM
Possible causes to investigate:
• Weather impact? (check conditions)
• Foot traffic? (compare to normal)
• Missing transactions? (check POS)📦 *Low Stock Alert*
The following items are below reorder point:
• Ground Beef (8 lbs remaining, reorder at 15)
• Chicken Breast (12 lbs remaining, reorder at 20)
Suggested: Place order with Fresh Farms by EOD for Thursday delivery.Weekly recap
Post a weekly summary every Friday afternoon or Monday morning:
*Weekly Recap — Week of Jan 13*
*Revenue:* $12,450 (target: $11,500, +8.3%)
*Best day:* Tuesday ($2,890)
*Transactions:* 423 total, avg ticket $29.43
*Highlights:*
• New catering client signed (Johnson Corp, $800/week)
• Google Ads ROAS improved to 3.2x (was 2.5x)
*Issues:*
• Cooler #2 still running warm — repair scheduled Monday
• 2 customer complaints (both resolved same-day)
*Next week:*
• Vendor price negotiation with Fresh Farms (Tuesday)
• Monthly inventory count (Thursday)
• Payroll deadline (Friday)Integration with Other Skills
slack-directory— Look up user IDs for DMs and mentionsmorning-briefing— Post the daily briefing to#daily-briefinggmail— Forward important emails as Slack messagesgoogle-sheets— Pull KPI data for automated reportsgoogle-drive— Share Drive links in channelsautoresearch— Post overnight experiment resultsgoogle-ads— Post ad performance summaries
Tips
- Don't over-notify. Every bot message should be actionable or informational — never both at once.
- Use threads for follow-ups. Keep the main channel clean.
- Use blocks for structured data (sales reports, KPIs). Plain text for quick updates.
- Pin important messages — delivery schedules, SOPs, emergency contacts.
- Set channel topics to explain what the channel is for and what the bot posts there.
- Respect DND. Don't send non-urgent DMs outside business hours.
- One channel for bot posts. Consolidate automated messages into
#daily-briefingor#alertsrather than spraying every channel. - Archive dead channels. If nobody's posted in 30 days, archive it.
API Reference
| Endpoint | Method | What It Does |
chat.postMessage | POST | Send a message |
chat.update | POST | Edit a message |
chat.delete | POST | Delete a message |
conversations.list | GET | List channels |
conversations.create | POST | Create a channel |
conversations.invite | POST | Add someone to a channel |
conversations.setTopic | POST | Set channel topic |
conversations.setPurpose | POST | Set channel purpose |
files.uploadV2 | POST | Upload a file |
reactions.add | POST | Add an emoji reaction |
users.list | GET | List users (see slack-directory) |
Full docs: api.slack.com/methods
Related Skills
slack-directory— User lookup and caching (prerequisite)google-chat— Alternative for Google Workspace teamsmorning-briefing— Daily digest that can post to Slacksecrets-manager— Secure token storage
Your team channel is your operational heartbeat. Keep it structured and it keeps you informed.
Other versions63 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 63
- paperclipai/paperclip★ 110ksame name
- vercel-labs/agent-browser★ 45ksame name
- anthropics/claude-quickstarts★ 19ksame name
- spinabot/brigade★ 11ksame name
- casibase/casibase★ 5.7ksame name
- the-open-agent/openagent★ 5.7ksame name
- linuxhsj/openclaw-zero-token★ 5.2ksame name
- jiulingyun/openclaw-cn★ 4.7ksame name
- Bitterbot-AI/bitterbot-desktop★ 2.5ksame name
- vercel-labs/emulate★ 2ksame name
53 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use taskflow-inbox-triage, BlueBubbles and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AtomicBot-aiSkilltaskflow-inbox-triage
Also in 6 projects that use this
jiulingyunSkillBlueBubbles
为Clawdbot构建或更新BlueBubbles外部通道插件(扩展包,REST发送/探测,webhook入站)。
Also in 18 projects that use this
seedprodSkillvoice-call
Start voice calls via the OpenClaw voice-call plugin.
Also in 16 projects that use this
seedprodSkillsession-logs
Search and analyze your own session logs (older/parent conversations) using jq.
Also in 16 projects that use this
hkyutongSkillopenclaw-release-maintainer
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
Also in 4 projects that use this
AtomicBot-aiSkilltaskflow
Also in 6 projects that use this
- +4 more from seedprod
In this repository23 other files it gives its agents.
- data-lake-starterSkill
- google-workspaceSkill
- mcp-guideSkill
- secrets-managerSkill
- semantic-layer-auditSkill
- gmailSkill
- google-calendarSkill
- google-chatSkill
- slack-directorySkill
- google-docsSkill
- google-driveSkill
- google-sheetsSkill
- google-tasksSkill
- brand-identitySkill
- creative-matrixSkill
- google-adsSkill
- nano-bananaSkill
- autoresearchSkill
- long-running-agentSkill
- morning-briefingSkill
- playbook-discoverySkill
- revenue-forecasterSkill
- patent-figureSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

