← All posts
UX Writing9 min read · September 24, 2026

Confirmation Dialog Copy: What to Say Before Someone Commits

Confirmation dialog copy graded by how reversible the action is, with real generated examples for delete and cancel dialogs, counts included.

MicroKopy
Content design, MicroKopy
Cover illustration for “Confirmation Dialog Copy: What to Say Before Someone Commits”

A confirmation dialog is the last thing someone reads before they do something they may not be able to undo. Most confirmation dialog copy treats every one of those moments identically: a title that asks "Are you sure?", a body that restates the action in slightly longer words, and two buttons labelled OK and Cancel. That sameness is why the dialog gets dismissed on reflex. When every prompt looks like every other prompt, people stop reading and start clicking.

The better question is not whether you are sure. It is what will happen when you confirm, and whether you can get it back. Those two facts, the consequence and its reversibility, should decide how the copy is written. A dialog in front of an action you can undo in one click has almost nothing to say. A dialog in front of an action that erases forty files forever has a lot to say, and about one second to say it.

Grade the action before you write the copy

Before choosing a single word, place the action on a scale of how reversible it is. The copy follows from where it lands.

  • Trivially reversible. Toggling a setting, archiving something you can unarchive. These usually need no dialog at all, and a confirmation here is friction with no payoff.
  • Reversible with effort. Moving a file, removing a member you can re-invite. An undo toast beats a blocking dialog. Let the action happen, then offer the way back.
  • Reversible for now. Cancelling a subscription that still has paid time on it, or scheduling a deletion that runs in 30 days. The action is committed but the consequence is delayed, so the copy's job is to explain the grace window.
  • Irreversible. Deleting a project and everything in it, wiping an account. This is the tier that has truly earned a blocking dialog, and it is where "are you sure" copy has to do real work.

Two of these tiers are where the interesting writing happens, and they pull in opposite directions. An irreversible action needs copy that slows the user down and names the cost. A reversible-for-now action needs copy that removes panic, because the risk there is someone talking themselves out of a decision they could safely make. Same dialog pattern, opposite emotional job.

The examples, and where they came from

Everything in the tables below was generated with MicroKopy's own prompt builders, the same ones behind the product's generator, then parsed and counted. Nobody wrote them by hand and they are not lifted from another app's screenshots. Each carries its character count, spaces included, because the count is the detail that decides whether a line fits the dialog it was written for. Read them as strong first drafts you would edit, not as finished answers, and read across the tone rows to see how far the wording can move while the meaning holds still.

Two contexts were generated, one from each tier that matters: deleting a project with forty files in it, which cannot be undone, and cancelling a subscription that still has paid time left, which can. Four tone presets were run against each: professional, friendly, playful, and minimal.

Irreversible: the delete confirmation message

ToneCopyCharacters
ProfessionalProject deleted. All 40 files were removed with it.51
ProfessionalDone. Your project and its 40 files are gone.45
ProfessionalProject removed. All 40 files went with it — nothing left to clean up.70
FriendlyProject deleted. All 40 files were removed with it.51
FriendlyDone — your project and its 40 files are gone for good.55
FriendlyThat's it — the project and all 40 files have been deleted.59
PlayfulProject deleted — all 40 files went with it. Time for a clean slate.68
PlayfulPoof! Your project and its 40 files are gone for good. Fresh start time.72
PlayfulAll set — project and 40 files cleared out. What's next on your list?69
MinimalProject deleted. All 40 files are gone with it.47
MinimalDeleted. 40 files removed, nothing left behind.47
MinimalProject gone. Start fresh whenever you're ready.48

Read down the column and the same instinct shows up in every tone: name the blast radius. "All 40 files" is doing the heavy lifting, not "deleted". A delete confirmation message that says only "Project deleted" leaves the user to wonder what went with it. The lines that land are the ones that count the cost out loud, and the minimal "Deleted. 40 files removed, nothing left behind." gets it into 47 characters without dropping the number.

Notice what tone does and does not change. The facts are fixed: a project, forty files, gone. Tone decides the wrapping, from the flat professional report to the playful "Poof!", and it barely touches the length until playfulness starts adding a second sentence, "Time for a clean slate" or "Fresh start time", that the moment did not ask for. On a destructive action, that extra clause is the first thing to cut. Someone who just deleted forty files does not need a mood.

One caution the raw output makes visible. These are completion messages, written for the screen shown after the delete has run. They are not the warning you show before it. That warning is where destructive action copy earns its keep, and it needs the opposite framing: not "here is what happened" but "here is what is about to happen, and it cannot be undone". If you take one thing from this tier, make it that the scary copy belongs on the button and the prompt, before the click, while the confirmation afterward can afford to be calm.

Reversible for now: the cancellation dialog

ToneCopyCharacters
ProfessionalYour subscription is cancelled. You'll keep full access until [date] — nothing changes until then.98
ProfessionalDone. Your plan stays active through [date], so keep designing until then.74
ProfessionalCancellation confirmed. Enjoy full access through [date] — no action needed until it ends.90
FriendlyYou're covered until your billing period ends — no rush. Cancel now and you'll keep full access until then, with nothing more charged.134
FriendlyGood news: you've already paid for this, so your access stays active until it runs out. Cancelling just stops future charges.125
FriendlyCancelling won't cut you off right away — you'll keep everything until your current period ends on [date].106
PlayfulYou're all set to cancel — but you've still got 14 days left on your plan. Use 'em well!88
PlayfulCancellation confirmed. Your tools stick around until March 12, so keep designing till then.92
PlayfulDone! No more charges, and you've got time left to squeeze out a few more masterpieces.87
MinimalYour plan stays active until [date]. Cancel now and you'll keep full access until then.87
MinimalYou've got [X] days left. Cancelling now won't cut that short.62
MinimalNo rush — your access runs through [date] either way.53

This is the tier where reassurance is the whole job. Someone cancelling a subscription that still has two weeks on it is prone to a specific worry: that clicking Cancel cuts them off right now and burns the time they already paid for. Every good line here answers that worry before it is asked. "You'll keep full access until [date]" and "Cancelling now won't cut that short" are not padding, they are the point. Remove them and you get a technically correct message that leaves money-anxiety on the table.

Length runs longer across the board than the delete tier, and that is correct. A reassurance needs room that a report does not. The friendly preset stretches to 134 characters because it is doing two things at once, calming the user and stating the mechanic, which is a reasonable trade when the dialog has the space. The minimal line gets almost all of that into 53 characters and still tells the user their "access runs through [date] either way", which is the one to reach for when the dialog is tight.

What the raw output got wrong, kept in on purpose

A post that shows you a generator should show you where it slips, not a tidied highlight reel. Three things in the set above are worth pointing at.

The prompt for the second context asked for copy shown before cancelling. A good part of the output came back in the past tense anyway, as completion copy: "Your subscription is cancelled", "Cancellation confirmed". Before and after are different screens with different jobs, and the model does not reliably keep them apart. Check that by hand every time.

Two of the playful cancellation lines hardcode specifics the others leave as variables. One says "14 days left", another names "March 12", while their neighbours use "[date]" and "[X] days". Paste one of those straight into a product and you ship a number that is right for exactly one user on exactly one day. The placeholder is not a stylistic choice. It is the difference between a template and a lie, and the generator is not consistent about which it produces.

Then there is the punctuation. Close to a third of these lines use a long dash to weld a reassurance onto an instruction, the way "no rush" gets joined to the sentence about access running through a date. It is a real habit of how the model writes, so the lines are reproduced here exactly, dashes and all, rather than quietly conformed to the house style this blog is written in. If you are pasting generated copy into a product with its own voice rules, that punctuation pass is part of the editing the copy still needs. For the wider version of this argument, and six other copy types generated the same way, see how to write microcopy in UI.

A short checklist for confirmation dialogs

  • Decide the tier first. If the action is reversible in one click, question whether the dialog should exist at all.
  • On a destructive action, put the warning before the click and name what will be lost. Count the blast radius out loud, "all 40 files", not "your data".
  • On a cancellation or any delayed consequence, lead with what the user keeps and until when. Kill the fear before you confirm the action.
  • Match the button to the sentence. "Delete project" tells the user what the button does far better than "OK" ever will, and it is the one place "are you sure" copy actually pays off.
  • Spend tone where there is room. Tight confirmations should be plain, so save personality for the lines that have the characters to carry it.

Errors and confirmations are close cousins, since both arrive at a bad moment and both live or die on saying what happens next. The framework for the other half of that pairing is in writing better error messages.

Where to start

Open your product and find the one dialog that guards your most destructive action. Read its copy against the tier it belongs to. Most of the time you will find a prompt that asks "Are you sure?" and answers nothing, sitting in front of an action that deletes real work. Rewrite it to name the cost and move that warning ahead of the click. If you would rather start from generated options than a blank field, MicroKopy generates confirmations to a character ceiling you set, across the tones above, and you can see how that works on the features page. The goal is not a cleverer dialog. It is a user who knows exactly what they are about to do.

Frequently asked questions

What should confirmation dialog copy say?
It should say what will happen when the user confirms and whether it can be undone, not just "Are you sure?". Grade the action by how reversible it is: an irreversible delete needs the cost named out loud, while a cancellation with time left needs reassurance about what the user keeps.
How do you write a delete confirmation message?
Name the blast radius. "All 40 files" tells the user what went with the project far better than "deleted" on its own. Put the real warning before the click, and keep the message shown afterward calm, since by then the action is already done.
Is "Are you sure?" good confirmation copy?
On its own, no. "Are you sure?" asks a question the copy should already have answered. It works only when it is paired with the specific consequence and a button that names the action, like "Delete project" instead of "OK".
When do you not need a confirmation dialog?
When the action is reversible in one click. For something you can undo, an undo toast after the fact beats a blocking dialog before it. Save confirmation dialogs for actions that are irreversible or that carry a delayed consequence.
How long should confirmation dialog copy be?
Long enough to state the consequence and no longer, which is why every example here carries a character count. The delete confirmations run from about 45 to 70 characters and still name what was lost, while the cancellation copy runs longer because reassurance needs the room.
Were these confirmation examples written by a person?
No. Every example was generated with the MicroKopy prompt builders and reproduced exactly, including the punctuation and the occasional hardcoded date that a human editor would need to swap back to a placeholder.
MicroKopy

We build the copy layer for product screens: tone presets, character ceilings and a review trail that travels with every string.

Keep reading

All posts →

Write the words before the review

Free for one project and 200 strings a month. Google sign-in, nothing else to fill in.