Double opt-in in Adapty Mail

With double opt-in on, Adapty Mail holds marketing emails back from every new profile until the person confirms that the address is theirs. Adapty Mail sends a confirmation email, waits for the click, and only then lets the profile enter a marketing flow. Use it if you send to markets that require opt-in consent, such as the EU or Canada. It also keeps mistyped and fake addresses out of your marketing sends. The setting needs no code changes in your app.

Double opt-in confirms that the address is real and that the person wants your emails. It doesn’t replace the consent you collect when you ask for the address in the first place. See what Adapty Mail handles for compliance.

The setting applies to profiles created after you turn it on, from both entry points. Profiles that already existed keep receiving campaigns as before. To cover your whole audience, turn double opt-in on before you start sending.

How it works

Adapty Mail creates a profile the moment it receives an email address for a user, whether from the Adapty SDK or from the Adapty Mail API. With double opt-in on, that moment starts a confirmation sequence of two plain-text emails:

  1. The first email goes out one minute after the profile is created and asks the person to confirm the address.
  2. If they don’t confirm, a last reminder goes out 72 hours later. After that, Adapty Mail stops asking.
The first confirmation email: a short explanation of why the person received it and a Confirm My Email button

Until the person confirms, no marketing flow starts for the profile. While the setting is on, a profile that never confirms never receives marketing emails.

The confirmation button opens a page in your brand’s colors that shows the masked address and asks for a click. Opening the link alone confirms nothing, so mailbox scanners that follow links can’t confirm an address on the person’s behalf. If the person has bought nothing yet, the button reads Confirm and open my offer and the page redirects to your web paywall right after the click.

Confirming an address has three effects:

  • The reminder is cancelled: Any confirmation email still scheduled for the profile is dropped.
  • Marketing starts: Adapty Mail evaluates your marketing flows for the profile right away, the same way it does on any other event. A profile that qualifies for a flow enters it now.
  • The profile is never asked again: The confirmation is stored once. Turning the setting off and on later doesn’t trigger a new request.

In the profile’s journey, the confirmation emails appear as email events, and the click shows as a Confirmation link click.

Turn on double opt-in

Before you turn it on, make sure the project has at least one web paywall. Adapty Mail writes the confirmation campaign with AI and needs a paywall to send confirmed users to. Without one, the switch fails with the “Failed to update double opt-in” message.

To turn on double opt-in, in Adapty Mail, go to Settings → Project and, in the Double opt-in section, turn on the switch. The switch can take a minute to respond, because Adapty Mail writes the confirmation emails before it saves the setting.

The Double opt-in section on the Settings → Project tab, with the switch set to Enabled

Turning the switch on creates a campaign and a flow, and you can open both:

  • Campaign: A transactional campaign named Double opt-in. To find it, go to Campaigns and open the Transactional tab.
  • Flow: A flow on the Profile created trigger with one All Users row that sends the campaign. To find it, go to Flows, open the Transactional tab, and select Profile created.
The Transactional tab of the Flows page, with the Profile created trigger and one All Users row sending the Double opt-in campaign

The flow behaves like any other flow. You can add rows with narrower segments above the All Users row, or replace the campaign with an A/B test of two confirmation wordings. Don’t remove every row while the setting is on: new profiles then wait for a confirmation nobody requests and receive nothing at all.

Test double opt-in

To see the whole sequence once before real users enter it, run one test profile through it:

  1. In your app, sign up with an email address that has no profile in the project yet. On the API entry point, post a profile with a new address instead.
  2. In Adapty Mail, go to Profiles, open the new profile, and wait for the Double opt-in email to appear in its journey. Delivery takes a few minutes after the one-minute delay.
  3. In the email, click the confirmation button and confirm on the page that opens.
  4. Back in the journey, the click should appear as a Confirmation link click. If a marketing flow matches the profile, its first email should be scheduled right after.

For the marketing part of the chain, follow Test your Adapty Mail flow.

Edit the confirmation email

A confirmation email follows stricter rules than a marketing email:

  • The confirm button is a placeholder: The button link must be {{ confirm_url }}. Adapty Mail replaces it with a per-recipient confirmation link at send time.
  • No selling: The copy can’t mention prices, discounts, trials, or deadlines. The generator rejects copy that does.
  • No other links: The email has no link other than the confirm button, and no footer unsubscribe link. Adapty Mail also omits the List-Unsubscribe header, so mail clients don’t show an unsubscribe button for a confirmation request.

To regenerate the emails, open the campaign from Campaigns → Transactional and click Generate emails. The dialog offers a Purpose dropdown, which is set to Double opt-in, and a Custom prompt field. The sequence length, delays, and layout are fixed by the purpose, so the tone, image, and email-count options of a marketing campaign don’t appear.

Turn off double opt-in

To turn off double opt-in, in Settings → Project, in the Double opt-in section, turn off the switch. Adapty Mail stops the Profile created flow but keeps the Double opt-in campaign, so turning the setting back on reuses the emails instead of writing them again.

After you turn it off:

  • New profiles enter marketing flows without confirming.
  • Profiles that were waiting for a confirmation stay where they are. Adapty Mail doesn’t start the marketing sequences it held back.
  • If you turn the setting on again, profiles created while it was off count as existing and aren’t asked to confirm.

Limitations

  • Confirmation emails count in Campaign analytics: The Double opt-in campaign appears as a campaign of its own on the Analytics page, and its sends, opens, and clicks are part of the totals. To read your marketing numbers alone, group by Campaigns and leave that row out.
  • No confirmation status in Profiles: The Profiles list and the profile page don’t show whether an address is confirmed or pending. The journey is the only place where the confirmation appears.
  • No per-country rules: The setting applies to every new profile in the project, whatever its country. Neither the Adapty SDK nor the Adapty Mail API has a field to mark a profile as already consented.
  • Existing profiles are exempt: Profiles created before you turned the setting on are never asked to confirm. To collect confirmations from them, you have to ask outside Adapty Mail.