The client update in #general
A test we ran on purpose, on Slack with demo accounts and an agent called account-summary-agent. On the first run it did its job and still got it wrong. On the second run, the same mistake was refused.
Morning five, the churn risk landed in #general
We set this up in a demo workspace on purpose, with a #client-acme channel and the usual #general. The agent’s job was a morning summary into the client channel: account health, open issues, renewal risk. For four mornings it landed in the right place.
On the fifth it read “client update” as an update for everyone and posted to #general, including the line that Acme was a churn risk and why. Forty people in the workspace saw it.
Posted in SlackPosted, unchecked
- Channel
- #general, 40 people
- Message
- Acme account health: churn risk this quarter, and why.
What got out on the first run. Illustration with example data. The token could post anywhere, so it did
The summary itself was good, and the channel matched the instruction closely enough. The bot token could post anywhere, so anywhere is where the near miss went.
Second run: #general wasn’t on the list
Same agent, same summary, and only #client-acme on the list. Four mornings, four summaries, straight through, with no approval and no delay.
On morning five it reached for #general again. The post was refused before it reached Slack, and nothing appeared. The record shows the agent, the channel it tried, the message and the rule that said no. It then posted to #client-acme, which was allowed.
Audit logRefused
- RefusedPost the morning summary in #generalNot on this agent’s channel list
- AllowedPost the morning summary in #client-acmeOn the list
Same summary. One channel reachable, one not.Illustration with example data. What stopped it: post only in the channels you name
The agent’s Slack access is limited to the channels you list. A post anywhere else is refused before it reaches Slack, and the refusal is recorded. Posts to the listed channels go straight through.
Recipient rules are on Studio and above.
How many channels can your agent post in right now, and how many does it need?
If you don’t know, start by watching. Observe Mode shows every call one agent makes, live, with no signup. It records and never blocks, so nothing about your setup changes.
The other tests
Every one ran on demo accounts, and every agent was doing its job.
- It shared the contract with the wrong companyRefused
- It emailed our internal pricing to a clientHeld for you
- It archived the deal I was closingHeld for you
- Its invite showed the customer our floor priceHeld for you
- It refunded one customer twiceHeld for you
- It approved and merged its own pull requestHeld for you
- It promised a customer 20% offHeld for you
Take the keys back this afternoon.
Put one agent through AgentValet on the free plan and watch what it does for a day. If the approvals and the record don’t satisfy you, turn it off. Nothing else about your setup changes.
npx @agentvalet/register