UI/UX Atlas
Content & UX Writing Intermediate

Onboarding & Confirmation Dialog Copy

Writing onboarding flows and confirmation dialogs that reduce abandonment, build trust, and respect user autonomy — without resorting to manipulative patterns.

10 min read

The full lesson

Onboarding copy is the first real conversation your product has with a new user. Confirmation dialog copy is the moment just before something irreversible happens. Both have the same core problem: designers and writers tend to optimize them for what the product needs (activation, conversion, task completion) instead of what the user needs (understanding, confidence, control). Getting these two surfaces right takes precise language, honest framing, and a clear sense of what users actually need to know.

Why Onboarding Copy So Often Fails

Most onboarding copy fails for one of three reasons: it says too much, it says the wrong things, or it uses language that serves the company rather than the user.

Says too much. Welcome screens packed with feature lists. Tooltip tours that fire on every element. Four paragraphs of context before a single question. Users in onboarding are anxious to reach the value of the product — every extra word is friction.

Says the wrong things. Onboarding often explains what the product does instead of what the user can accomplish. “Our AI-powered document editor uses natural language processing to streamline your editorial workflow” is about the product. “Create polished reports in half the time — just write and we’ll handle the formatting” is about the user’s outcome.

Uses company language. Phrases like “leveraging synergies,” “best-in-class solutions,” and “unlock your potential” are written for internal decks, not users. The perennial offender: “Welcome to [Product Name]!” — a heading that uses the most valuable real estate in any UI to say something the user already knows.

The Four Jobs of Onboarding Copy

Before writing a single word, decide which job each screen is doing. Onboarding copy has exactly four jobs:

  1. Orient — Tell users where they are and what kind of tool this is. One sentence. Use this only when the product category is genuinely new or unclear.
  2. Motivate — Show users the specific outcome they’ll get from completing setup. Lead with the user’s benefit, not your features.
  3. Instruct — Tell users what to do next. One action at a time. Use an imperative verb and a specific object: “Upload your first document,” not “Let’s get started.”
  4. Reassure — Address the specific fear users have at this moment — data privacy, commitment, irreversibility. Defuse the hesitation before they have to voice it.

Most onboarding screens should do one job well, not all four poorly.

Writing Effective Welcome and Empty-State Onboarding

The first screen a new user sees sets the tone for the whole relationship. The principles below apply to welcome screens, empty states with onboarding calls to action, and first-run experiences.

Lead with the user’s outcome, not the product’s name

WeakStrong
Welcome to NotionYour workspace is ready — start with a blank page or pick a template
Get started with FigmaDesign your first screen — drag a frame to begin
Welcome aboard!You’re one step away from sending your first campaign

The strong versions tell the user what happens next and why it matters to them. The weak versions announce the obvious.

Calibrate length to context

Onboarding tooltips: 1–2 sentences maximum. Onboarding modal headers: 5–10 words. Onboarding body copy: 2–3 sentences per screen, never a full paragraph. If you need more words than this to explain a step, the step is too complex — break it up or redesign it.

Use progressive disclosure, not information walls

Progressive disclosure means surfacing information exactly when it’s needed. When a user first opens an empty calendar, explain how to add a single event. Don’t explain recurring events, invites, and calendar sharing all at once. Save those details for the moment each one becomes relevant.

Do

Lead with the user’s desired outcome. Use imperative CTAs that name the action (“Add your first task”). Reassure users about reversibility when relevant (“You can change this later”). Surface one concept at a time.

Don't

Open with “Welcome to [Product Name]!” as a heading. List features in bullet form on the first screen. Use vague CTAs like “Get started” or “Let’s go.” Explain every edge case upfront in the interest of being thorough.

Permission and Data Request Copy

Asking users for permissions — notifications, location, camera, contacts — is one of the most critical and most botched parts of onboarding. The platform gives users a hard binary: allow or deny. What you write in your own UI, just before that prompt, determines how they respond.

The formula that works:

[Specific capability] so you can [specific user benefit] — [reassurance of what you won’t do].

“Get notified when a teammate comments on your work — we’ll only send alerts you ask for” is more convincing than “Allow notifications to stay updated.” The first version answers the user’s implicit question (“What exactly will you notify me about?”) before they have to ask.

For camera or microphone access, address the fear directly. “Take a profile photo — we never record or store video” speaks to a real concern. Saying nothing leaves users filling in the blank with their worst assumption.

Confirmation Dialog Copy: The Anatomy

A confirmation dialog asks a user to explicitly affirm an action before it runs — most often because the action is destructive, irreversible, or has significant consequences. It is a designed friction point: enough friction to prevent accidents, not so much that it blocks intentional actions.

Every confirmation dialog needs four elements:

  1. A title that names the action, not the consequence — “Delete project?” not “Are you sure?”
  2. A body that describes the consequence accurately and specifically — “This will permanently delete the project and all 14 files inside it. This cannot be undone.”
  3. A primary action button labeled with the action — “Delete project,” not “OK” or “Confirm”
  4. A cancel path — “Cancel” or “Keep project”

The most common confirmation dialog anti-pattern is the “Are you sure?” title. It’s vague, adds no information, and looks identical to every other dialog in the product regardless of severity. Users learn to dismiss it without reading.

Severity-calibrated language

Not all confirmation dialogs carry the same weight. A user deleting a personal note is different from a user deleting a shared production environment. Calibrate the copy — and the visual design — to the actual severity.

SeverityTitle patternBody patternPrimary CTA
Low (reversible)“Remove from list?""You can add it back at any time.""Remove”
Medium (data loss, recoverable)“Delete this draft?""Your draft will be deleted. Any unsaved changes will be lost.""Delete draft”
High (permanent, shared impact)“Delete ‘Acme Campaign’?""This will permanently delete the campaign and remove access for all 8 team members. This cannot be undone.""Permanently delete”
Critical (billing/account)“Cancel your subscription?""Your account will revert to the free tier on June 30. You’ll lose access to exports, custom domains, and team features.""Cancel subscription”

Notice that the primary CTA label escalates in weight and specificity. “Remove” is lighter than “Delete draft,” which is lighter than “Permanently delete.” The verb choice signals consequence.

The button label problem

“OK” and “Confirm” are the two most common confirmation button labels and the two worst. They are generic, interchangeable across any dialog, and tell the user nothing about what will happen when they click.

The rule: the primary button label should complete the sentence “I want to ___.” If the title is “Delete project?” the button should read “Delete project” — not “OK,” not “Yes,” not “Confirm.”

Destructive Action Patterns

Destructive actions — permanently deleting data, revoking access, canceling services, transferring ownership — need extra care. The goal is not to make users second-guess every action. The goal is to make sure that when they act, they act with full knowledge.

Use explicit consequence language

Vague: “This will affect your account.”

Specific: “This will revoke API access for all integrations connected to this account.”

The specific version lets users quickly assess whether the consequence applies to them. Vague language forces users to stop and wonder, which creates anxiety without adding protection.

Call out irreversibility once, clearly

“This cannot be undone” is the right phrase for permanent actions. Use it once, in the body copy, not in the title. Do not repeat it three times — repetition reads as alarm-ringing, which trains users to dismiss it, which defeats the purpose.

Consider a friction-based confirmation for critical actions

For high-stakes actions — deleting an organization, canceling a paid subscription with active team members — a type-to-confirm pattern adds genuine friction: “Type the project name to confirm.” Use this pattern when accidental confirmation would be catastrophic. The mechanism itself signals severity, so you do not need alarming copy on top of it.

Do

Name the specific thing being affected in both the title and body (“Delete ‘Q3 Report’?”). Use the action verb as the primary button label (“Delete report”). State consequences with specific numbers where relevant (“removes access for 8 members”). Offer a clear cancel path with a neutral label.

Don't

Use “Are you sure?” as a dialog title. Label primary buttons “OK,” “Confirm,” or “Yes.” Use consequence language designed to manipulate rather than inform (“You’ll lose everything!”). Add a guilt-trip cancel option (“No, keep my account” vs. “Lose all my data forever”).

Avoiding Confirmshaming and Manipulative Patterns

Confirmshaming means writing the cancel or decline option to make users feel guilty for not proceeding. It became widespread in email signup modals around 2014–2018 and remains common in subscription cancellation flows. Examples:

  • “No thanks, I don’t want to save money”
  • “Keep my current terrible plan”
  • “No, I’ll stay stressed”

As of 2026, confirmshaming and related deceptive patterns — roach-motel cancellation flows, fake scarcity timers, pre-checked consent — are explicitly targeted by the EU’s Digital Services Act and various national consumer protection regulations. Beyond the legal risk, they damage user trust, generate negative word of mouth, and do not produce durable conversions.

The ethical standard for cancel and decline copy is a neutral, informative label that accurately describes what happens when the user clicks: “Keep my current plan,” “Skip for now,” “Cancel.” These labels respect user autonomy and survive legal scrutiny.

Localization Considerations for Onboarding and Dialogs

Onboarding and confirmation dialog copy creates specific localization challenges that affect both UX and engineering.

Button label length expansion. English button labels are typically 1–3 words. German, Finnish, and other compound-word languages can expand them by 40–100%. A button sized for “Delete project” will overflow with the German equivalent. Design buttons to fit 2x the character count of the English string.

Irreversibility phrasing varies by culture. “This cannot be undone” is natural in English. In many languages, a literal translation sounds stilted or overly alarming. Work with localization partners to find culturally equivalent phrasing that carries the same weight without distorting the tone.

Dialog naming across locales. The word “dialog” translates literally in most European languages but may need alternative framing in right-to-left languages and some East Asian locales. Use a content token approach — store strings as semantic keys tied to context, not to the UI element type — so translators have the surrounding context to make the right choice.

Dynamic values in body copy. “You’ll lose access on June 30” is a localized date reference. Confirmation dialogs that contain dates, prices, or team-member counts should pass these as variables rather than hardcoded strings. That way they localize correctly without requiring a separate copy review for each locale.

Checklist Before Shipping

Run through this list before any onboarding screen or confirmation dialog ships:

  • No screen opens with “Welcome to [Product Name]!” as the primary heading
  • Every CTA names the specific action (“Add your first project,” not “Get started”)
  • Every confirmation dialog title names the thing being acted on (“Delete ‘Q3 Budget’?”)
  • Primary confirmation buttons use the action verb, not “OK” or “Confirm”
  • Destructive dialogs state the specific consequence, including irreversibility once if permanent
  • Cancel/decline options use neutral language — no confirmshaming
  • Permission priming copy names the specific use and a user benefit
  • Copy has been reviewed for deceptive pattern compliance (pre-checked boxes, guilt-trip framing)
  • Button labels have been tested at 2x character count for localization headroom
  • Onboarding copy has been tested with real new users to verify comprehension and confidence