Topic guide

✓ Slack bots and approval gates

Every bot here that does something outside the company (sends an email, pays a reward, answers a customer) stops first and posts a Slack card with two buttons. Nothing goes out until a person clicks. These posts are about making that gate cheap to use, and about keeping Slack readable when the bots get busy.

Read the approval-buttons post first; it is the pattern the others build on. The statement post is the gate in daily use, with a count of every request since September. The 50-block post is what happens when one month produces more cards than one message can hold. The alert post explains why bot errors go to one person's DM and never to a channel, and the error-watcher post is the bot that reads those errors first.

The Slack screenshots in these posts come from a test workspace with invented companies and numbers. The card layouts are copied from the production code.

86statements sent, Sep–Nov
7stopped by a Cancel click
50blocks per Slack message, hard limit

Read them in this order

  1. Slack Approval Buttons for AI Bots: Nothing Ships Without a ClickA one-card Slack approval flow that lets a non-developer team run AI bots that send emails and statements: the Block Kit shape and three mistakes it caught.
  2. Monthly Statement Emails From Slack: Dashboard → Spreadsheet → GmailA Slack command builds a customer's monthly statement from our dashboards and emails it after a human approves. The pipeline and the bug the button caught.
  3. Slack's 50-Block Limit: Paging 25 Approval Cards Into a ThreadA Slack message holds 50 Block Kit blocks. Our approval bot hit it at 25 cards. How we page the overflow into thread replies and keep clicks under a second.
  4. Why Every Bot Alert Goes to One Person's DM, Not the ChannelWe tried an alerts channel. It was wallpaper in a week. The routing rules we use now for bot errors, case alerts and photos, and why one DM is what works.
  5. An AI Bot That Watches Our Slack Channel and Diagnoses Its Own ErrorsA bot that reads our bots' failures and proposes patches it may not apply, plus the morning a DNS flood and a launchd PATH trap silenced three bots.

Other topics

⌘ Claude Code in a real business▦ Google Sheets as a database for bots☏ Support automation⚠ Cost and failure log