Operators who approve agent work from their phone
20-minute channel design
Give the chat one job: decisions and exceptions only
Give chat one job
Point Telegram at three things: short commands, the decisions that need you now, and the status changes you would want to hear even mid-meeting. Send everything else—full reports, step-by-step logs, run history—to the dashboard, where it can be searched and read at your pace.
Chat is a stream, not a filing cabinet. It is unbeatable for the one message you must see in the next minute and useless for anything you will want to find next week. When both kinds of content share the channel, the approval you needed scrolls off the top under a pile of “task finished” lines.
How to judge it: if you catch yourself scrolling up to reconstruct what the agent did, that history belonged in the dashboard. The trade-off is real—leaning on the dashboard means the link to it has to be one tap from any chat message, or people feel like they are approving blind.
Use a small command set
Give the channel a handful of verbs everyone can remember without thinking. A small vocabulary is learnable in a day and hard to fat-finger under pressure.
- Start: begin a named task.
- Status: show what the agent is working on now.
- Pause: stop future actions safely, without losing progress.
- Approve: confirm one specific proposed action.
- Help: list the available commands.
The failure case is command sprawl: fifteen overlapping verbs where nobody remembers whether it is “stop” or “pause,” so in the one moment they need to halt the agent they hesitate. Keep the set small on purpose. The trade-off—that some things simply cannot be done from chat—is a feature, not a gap: those actions live in the dashboard, where there is room to see what you are doing.
Use case: one founder’s renewal Monday
Diego runs a subscription meal-kit business on his own. Every Monday his agent works through renewals, and in the first week it narrated the whole thing into Telegram: started, read each account, drafted each reminder, finished—41 messages by lunch. The one that mattered, asking permission to email 18 lapsing customers, sat at message 22. He nearly tapped approve without reading, because the phone had been buzzing all morning.
He had three options. Mute the chat and check the dashboard on a timer—but then approvals wait and renewals slip. Keep everything in chat and add commands to filter it—more to remember, same noise. Or give the chat one job: decisions and fixable failures only, with everything else routed to a daily digest and the dashboard.
He chose the third. Now the Monday approval arrives as a single message—“Send the renewal reminder to 18 customers? This emails them immediately,” with “Send reminders,” “Keep as draft,” and a link to the full list. Routine successes collect into a 6 p.m. digest, and only he and his part-time ops helper can issue commands.
The lesson: the fix was not a smarter notification. It was fewer notifications, so the one that needed him could actually be seen. A control panel earns trust by staying quiet until it shouldn’t.
Diego’s renewal Monday, before and after
Illustrative figures from the worked example above—a picture of designing a channel for signal, not a customer result.
Every start, read, draft, and finish pinged the chat by lunch.
One approval, one fixable failure, one evening digest.
The batch send—shown once with recipients and consequence.
Make approval messages specific
Every approval should carry its own context so it can be answered from a phone without opening anything else. Show the action, the target, and the consequence, then link to the full draft and offer two clearly labeled buttons.
“Send the prepared renewal reminder to 18 customers? This emails them immediately.” — with buttons “Send reminders” and “Keep as draft.”
The test is simple: could someone answer correctly in ten seconds without leaving the message? A vague “Continue?” fails it—the reviewer either stops to investigate or, more often, taps yes blind, which is worse than no gate at all. The trade-off is length. Specific runs a little longer than vague, so resist padding: four facts and a link, never a paragraph.
Control volume
Message the chat on four moments only: when long work starts, when it needs a decision, when it finishes in a way you would want to know, and when it fails in a way a person can fix. Roll every routine success into one daily digest instead of a ping each time.
This matters because alert fatigue is not a personality flaw—it is predictable. When the phone buzzes for everything, people learn to skim or ignore it, and the one urgent buzz gets ignored along with the noise. Site-reliability teams learned the same lesson the hard way: a pager that cries wolf trains people to stop reading it.
How to judge it: over a week, count how many messages you actually acted on. If most were “noted and dismissed,” cut them. The failure case is a “task finished” ping for all eighteen routine runs—by day three you mute the chat and miss the real approval. The trade-off is that batching good news into a digest adds a little latency; that is a fair price for protecting the signal of the messages that cannot wait.
Protect the channel
Decide exactly which people and chats may issue commands, and write it down. A control channel is only as safe as everyone who can type into it—a group where anyone can be added is a group where anyone can approve a send or a payment.
Then treat unexpected access changes as a stop signal. If the account, the group membership, or the admin list shifts in a way you did not initiate, pause sensitive actions until you have reviewed who is in the room.
How to judge it: can you name, right now, every person who can currently issue a command? If not, that gap is the risk. The failure case is the agent living in a shared group where a teammate adds someone for an unrelated reason, and that person can now type “approve.” The trade-off is that locking the channel to named people adds friction when you want to delegate—so delegate on purpose by adding a person, not by leaving the door open.
Try this next
- Route full reports, logs, and history to the dashboard; keep chat for commands, decisions, and important status changes.
- Define a small command set—start, status, pause, approve, help—and write every approval to show the action, target, and consequence with a link to the draft.
- Message the chat only on the four moments that matter, and batch routine successes into one daily digest.
- Limit who can issue commands, and pause sensitive actions if the account, membership, or admin list changes unexpectedly.
Sources and further reading
These primary references support the article’s approach to keeping a control channel actionable, designing clear commands and approvals, limiting who can act, and reducing notification fatigue.
Official reference for bot commands, message delivery, and the inline buttons that let an approval be answered in one tap.
Google SREMonitoring Distributed SystemsOn actionable alerts and pager fatigue: page a human only for urgent, actionable events, or people learn to ignore the signal.
Google PAIRFeedback + ControlGuidance for keeping people in control of higher-stakes actions and designing feedback they can act on.
OWASP GenAI Security ProjectLLM06:2025 Excessive AgencyMitigations for excessive permissions and autonomy, including least privilege and requiring human approval before consequential actions.
Ready to put one useful workflow to work?
Start with one clear job, a result you can review, and boundaries you understand.
See launch pricing