{"slug":"exemplar-gmail","meta":{"title":"What Gmail Figured Out","slug":"exemplar-gmail","kind":"exemplar","summary":"That when an action is frequent and reversible, undo beats confirmation — and that changing an action's reversibility is better than adding friction to it.","problem":"High-volume decisions get protected with confirmation dialogs, which are paid by everyone on every action to prevent a mistake a few people make occasionally. People then click through them without reading, so the protection is gone and only the cost remains.","family":["act","recover"],"principles":["friction","orientation"],"status":"stable","visibility":"public","related":[{"title":"Confirmation vs Undo","url":"/patterns/confirmation-vs-undo","summary":"The decision this exemplar settles, and the table for making it yourself."},{"title":"Review Queue","url":"/patterns/review-queue","summary":"The regime where this matters most — one decision repeated all day."},{"title":"Empty State","url":"/patterns/empty-state","summary":"Inbox zero as a finished-queue state, and why emptying it feels like an achievement."}]},"body":"## The insight\n\n**When you cannot make an action safe, make it reversible.** Sending an email\ngenuinely leaves your system — the classic argument for a confirmation dialog.\nGmail's answer was not a dialog. It was a short delay, which converts an\nirreversible action into a reversible one and makes undo possible where it\nshould not have been.\n\nThat is a different kind of move from anything in an interface pattern library:\nthey changed the *property of the action* rather than the interface around it.\n\n## What is worth stealing\n\n**Undo, not confirm, for anything frequent.** Archiving is the highest-volume\naction in the product and it never asks. It happens, and a toast offers undo.\nMultiply a saved dialog by the number of archives per day and the design pays\nfor itself many times over.\n\n**Undo send.** The single best example of reframing reversibility. Whenever you\nare about to add a confirmation to something irreversible, ask first whether the\nirreversibility is negotiable — a delay, a draft state, a soft delete. Usually\nit is, and the answer is better than the dialog.\n\n**The keyboard loop.** j, k, e, and the queue empties. One item, decide,\nauto-advance. This is the [review queue](/patterns/review-queue) pattern at\nscale, and it works precisely because the decision is trivial and the volume is\nenormous.\n\n**\"You're all caught up.\"** Finishing is designed as success rather than as\nabsence. That is why emptying an inbox feels like an accomplishment, and it is a\nfree win almost every queue-shaped product leaves on the table.\n\n## Where it does not transfer\n\nUndo requires that you can genuinely restore the previous state. For actions\nwith external side effects that cannot be recalled — a payment taken, a\nwebhook consumed, a document filed with a regulator — a delay window is the only\nversion available, and sometimes not even that.\n\nConsumer-scale ergonomics also assume high frequency. A rarely-used destructive\naction gets no muscle memory, so a confirmation is cheap there and worth having.\n\n## The extraction\n\n\u003e **Before adding friction to a dangerous action, ask whether you can make it\n\u003e less dangerous instead.**\n\nA confirmation dialog is an admission that the action cannot be taken back. Trash\ninstead of delete, delay instead of send, draft instead of publish — each one\nremoves the need for the dialog rather than justifying it.\n"}