Skip to content

Leave a receipt, not just a chat message

Asked, approved, changed, failed: all on the record.

The product keeps a record of what the agent actually did: what was asked, who approved, which items changed, what failed, and what can still be undone. Someone else can read the record without the original chat.

Why the pattern matters#

Later, a teammate asks why three dates didn’t move. The chat shows what the user wanted; the chat can’t prove which changes landed. “Attempted,” “accepted by the service,” and “verified” are different states, and the record should say which one applies. None of the 12 products in the teardowns documents a full receipt; each shows part of one.

When to use the pattern#

Use the pattern when

  • Someone other than the requester will need to understand the result.
  • Work can partly succeed, be cancelled halfway, or be undone later.
  • Different people are allowed to see different parts of the work.

Skip the pattern when

  • A team is tempted to save the model’s hidden reasoning as the record. Save the decision, the permission used, the exact inputs, and the checked results instead.
  • A team would write a success entry just to make the timeline look finished.

In real products#

What each product documents, strongest example first.

Sources checked September 28, 2026.

Checklist#

Yes-or-no checks for a design review.

  • The receipt comes from the system that made the change, not from the agent’s summary.
  • Every item appears with the before and after values and one outcome: changed, skipped, failed, or unknown.
  • The receipt says which state applies: attempted, accepted by the service, or verified.
  • A teammate can open the record without the original chat and follow links to the changed objects.
  • Cancellation and recovery get entries of their own; nothing is erased or rewritten.
  • Viewers see only what their access allows, and a hidden detail says “withheld,” not nothing.

Try it on your product

Write three receipts

For one bulk action in your product, write the receipt a teammate would see after complete success, after partial success, and after a partial reversal. Under each, name what remains in the world: changed records, messages sent, items skipped.

Deep dive#

Deep dive · 4 min readLeave a receipt, not just a chat message

A receipt from the system that made the change, not the agent’s summary, lets a second person see what happened without the original chat.

Next patternMeasure cost per result that actually worked

Count every request the agent should have handled, charge the agent for every attempt including failures, and compare only checked results against the manual cost of those same results.