Channel posts
Cyborg posts to specific channels you grant access to (whitelist). New deals, deploys, alerts, weekly digests. Markdown, blocks, attachments · never @-channel without explicit role config.
scope:chat:write
Install the A'nil Cyborg Slack app in 90 seconds. Each Cyborg you hire gets its own bot identity (@cyborg-eng, @cyborg-sales, @cyborg-legal...) with role-scoped channel access. Posts updates, threads context, DMs the right owner on alerts, requests approvals via interactive buttons. Bot-attributed on every message. Never sees DMs it isn't tagged in. Audit log streamed to your S3.
— CAPABILITIES
Every Slack action falls into one of 8 categories. All are bot-attributed (BOT badge), all logged to your audit stream, all revocable from your workspace admin panel.
Cyborg posts to specific channels you grant access to (whitelist). New deals, deploys, alerts, weekly digests. Markdown, blocks, attachments · never @-channel without explicit role config.
scope:chat:writeCyborg replies in-thread to keep channels clean. Auto-threads its own follow-ups (e.g. PR opened → review summary → CI status → merge confirmation all in one thread).
scope:chat:writeCyborg DMs the right human owner only when paged or @-mentioned. Cyborg cannot read DMs unless added to them. No "spy mode". DM intake closed by default.
scope:im:write · im:history (own only)Approve / Reject / Edit / Snooze buttons on action posts. Owner clicks → action runs upstream (deploy, contract sign-route, refund issue). Audit-stamped to clicker.
scope:chat:write + Block Kit/cyborg ask <question>, /cyborg deploy <service>, /cyborg contract status <id>. Per-role command sets. Permission-gated to channels + users you allow.
commandsCyborg posts PDFs (board pack, PR diff, contract redline), CSVs (sales pipeline export, finance reconciliation), and Slack canvases (weekly digest, SOPs).
scope:files:writeCyborg reacts to messages it processed (✅ done, 👀 reviewed, ⏳ queued). Pins critical messages (active incident, on-call rotation, weekly OKR).
scope:reactions:write · pins:writeCyborg looks up Slack users by email (e.g. resolves "@dharm" from PagerDuty alert → DM correct owner). Read-only, name + email + tz only. Never reads message history.
users:read · users:read.email— REAL WORKSPACE · TUESDAY 11:00 IST · ANONYMISED
A live snapshot of what your workspace looks like 7 days after install. Each Cyborg posts in its own lane, threaded, bot-attributed. Owners click buttons to approve. No noise.
PR #4218 opened by @dharmesh · "Refactor caching layer to use Redis cluster mode"
Auto-review summary · +312 / −487 across 14 files
3 minor suggestions (1 missing null-guard in CacheKeyBuilder, 2 doc comments missing). 0 security flags. Tests pass locally. CI running · ETA 4 min.
Fixed the null-guard, pushed. Comments inline.
Re-reviewed. ✅ Looks good. CI green. Ready to merge.
🎯 Qualified lead · NorthStar Logistics · CEO replied to outbound seq #4
Reply preview · sentiment: positive 0.81
"Interesting timing — we're evaluating exactly this in Q3. Can you do a 30-min call next Tuesday?"
⚠ Escalation · ticket #8214 · Enterprise customer (BigCo) reports billing discrepancy · CSAT-risk · needs human
Triage summary
Customer was double-charged on April 28 ($1,200). I drafted refund + credit-note response (canned reply not adequate — this is real money). Routing to @priya for sign-off. SLA < 30 min.
📊 Daily flash · Tue 7 May 2026
P&L snapshot · cash: $4.82M · runway: 18.4 mo
Revenue MTD $312k (88% to plan). Burn MTD $184k (within ±3%). 2 unreconciled wires from yesterday — routed to @anil for class-tagging. 1 P0 anomaly: AWS bill projected $42k vs $28k plan — investigating with @dharm.
📝 Redline ready · AcmeCorp MSA v4 · routed to @gc
14 changes · 8 standard / 6 deviations · risk 3.4 / 5
Auto-applied 8 standard playbook positions. 6 deviations need GC: limit-of-liability cap, IP assignment, indemnity scope, audit rights, governing law, termination notice. Drafted rationale for each. ~18 min review estimated.
ANONYMISED FROM 4 LIVE CUSTOMER WORKSPACES · ALL SCREENSHOTS USE PERMISSION · NAMES + DOLLAR FIGURES OBFUSCATED
— OAUTH 2.0 · YOU CONTROL EVERYTHING
No admin scopes. No "user token" access (only bot tokens). Cyborg cannot install other apps, change workspace settings, read other users' DMs, or make payments. Workspace admin can revoke any scope per-cyborg from the admin panel.
| Scope | What it allows | Why we need it | Risk | Default |
|---|---|---|---|---|
chat:write |
Post messages as the bot, edit own messages | Core. Cyborg posts updates, threads replies, sends approval cards. | Low | ON |
im:write |
Open DMs to a user (one-way) | DM the right human owner on alerts (e.g. on-call escalation, refund approval). | Low | ON |
im:history |
Read DMs the bot is part of | So owner can reply in DM and Cyborg sees the reply. Bot cannot see other DMs. | Low | ON |
commands |
Receive slash-command invocations | Power /cyborg deploy, /cyborg ask, etc. Per-role allowlist. |
Low | ON |
files:write |
Upload files (PDF, CSV, canvas) | Post PDFs (PR diff, board pack, contract redline), CSVs (pipeline export). | Low | ON |
reactions:write + pins:write |
React + pin own action messages | Status reactions (✅ done, ⏳ queued) and pin active incidents / OKRs. | Low | ON |
users:read + users:read.email |
Look up user by email, get name + tz | Resolve "the on-call SRE" to the right Slack user when paged from PagerDuty. | Low | ON |
channels:read |
List public channels Cyborg can join | So workspace admin can pick which channels each Cyborg may post to. Read names only. | Low | ON |
NEVER REQUESTED: admin.* · users:write · channels:history (other channels) · groups:history · im:history for non-bot DMs · files:read across workspace · payment scopes · user tokens (only bot tokens). |
||||
— 90 SECONDS · WORKSPACE ADMIN APPROVAL REQUIRED
From any Cyborg's hire flow or from this page. Opens Slack OAuth consent in a new tab.
Slack shows the exact scope list (no surprises). Workspace admin must approve if you're not admin yourself. Most teams approve in ~30 seconds.
For each Cyborg you've hired, pick the channels it may post to. Defaults: cyborg-eng → #engineering, cyborg-sales → #sales-*, etc. You can change this anytime in the admin panel.
Each Cyborg posts a "Hi, I'm @cyborg-eng, here's what I'll do" hello message in its primary channel. Owner reacts ✅ to confirm. If anything looks off, single-click revoke.
Every Cyborg Slack action (post, edit, button click, file upload) is mirrored to a Cyborg-side audit log. Optional: stream to your own S3 bucket / Datadog / Splunk via webhook.
— ALL 12
Each role gets its own bot identity (own avatar, own colour, own channels). Click any role to see how it uses Slack specifically.
— BOTH SIDES OF THE WIRE
/apps → Cyborg → "Remove" disconnects all 12 cyborgs at once. Or per-cyborg from Cyborg admin panel.im:history only on DMs the bot is in. Cannot read other DMs.chat.postMessage, button click, file upload — logged with timestamp + user + payload digest.No per-message charge. No per-channel charge. No "Slack premium tier" upsell. Every Cyborg you hire from $499/month onwards posts to Slack at no extra cost. Even the unlimited NDA reviews from Legal Cyborg post to Slack for free.
— WORKSPACE ADMIN + IT QUESTIONS
No. im:history only applies to DMs the bot is part of. If you DM another human, Cyborg literally cannot see it — Slack's API will not return those messages to our token. We don't request groups:history, mpim:history, or any cross-user reading scope. You can verify this in Slack admin → app permissions.
Three things. (1) Every message is BOT-attributed — obvious it's automated. (2) Workspace admin can delete any Cyborg message in 1 click. (3) Wrong-post is logged to your audit stream so you can trace cause and we can tune the rule that triggered it. In 4,318 workspaces over 18 months, we've had 11 wrong-post incidents — all in shadow/test channels, none reached a customer-facing channel.
Yes — per-channel allowlist. Workspace admin picks exactly which channels (public or private) each Cyborg may post to. Default is deny-all. To grant access to a private channel, an existing member of that channel just /invite @cyborg-eng (or whichever bot) once — that's the Slack-native way.
Supported. Cyborg installs at the org level (Org Owner approval) with per-workspace channel allowlists. Each Cyborg can post to designated channels across multiple workspaces in your grid — useful when, e.g., your sales workspace and engineering workspace are separate. Pricing unchanged: still free with any Cyborg.
Disabled by default. @-channel requires per-cyborg + per-channel explicit enablement (admin panel toggle). @-everyone is hard-disabled for all cyborgs. You'll never wake up to a 3am workspace-wide ping.
Use it. Microsoft Teams integration is feature-equivalent (channel posts, threaded replies, adaptive cards for approvals, channel allowlist). About 35% of our customers run Teams instead of Slack — same Cyborgs, different surface.
Your Slack message history is yours — we never owned it. On uninstall, the Cyborg app is removed from your workspace, all OAuth tokens are revoked, and our 30-day rolling action log is purged within 7 days. Slack-side, every message Cyborg posted stays in your workspace exactly as it is (you can choose to delete via Slack's normal export/delete tools).