Cakemail
Audience

Creating a Confirmation Campaign

What this is

A confirmation campaign sends an email with a pre-filled link that lets a subscriber confirm, in a single click, that their address is still active. The link opens a public form that is already filled in and submits it automatically, so the subscriber has nothing to complete.

Why this matters

Confirmation campaigns are one of the best ways to keep a healthy, engaged list. By asking inactive or unconfirmed contacts to re-confirm, you clean out addresses that no longer respond, protect your sender reputation, and keep your engagement metrics honest, all without adding friction for the subscriber.

How it works

Two custom fields track the confirmation on each contact in your list:

FieldTypeRole
confirmationNumberA 0/1 flag showing whether the person confirmed. Set to 1 directly through the email link.
confirmation_dateDateThe exact date of the confirmation. Pre-filled automatically by the email link and submitted with the current date.

The link in the email carries merge tags that fill confirmation_date with today's date and set confirmation to 1 the moment the link is clicked. Everything happens in the URL, no separate automation is required.

Before you start

Keep these two field names exactly as written, lowercase, with the underscore, everywhere you reuse them (confirmation and confirmation_date). The names in the URL must match the names on your list and your form, or the values won't be recorded.

Step-by-step instructions

Create the two custom fields

In the contact list you'll use for the campaign:

  1. Open the contact list you want to use.

  2. Click the gear icon (⚙) next to the + button, at the top right of the table.

  3. Go to the Attributes section.

  4. Add an attribute named confirmation. Type: Number. Set it to not displayed. Save.

  5. Add an attribute named confirmation_date. Type: Date. Set it to not displayed. Save.

Create the confirmation form

  1. In the Forms section, create a new form.

  2. Name it clearly so you can find it later, such as Subscription confirmation.

  3. Assign it to the correct list if you have more than one.

  4. The Email field and the Submit button are generated by default. Click Edit form on the right.

  5. Add the confirmation field (type Number) with the small +.

  6. Add the confirmation_date field (type Date) with the small +. You can rename each field's label to something friendlier, such as Confirmation and Confirmation date.

  7. Give the form a clear title. You can also turn on Smart form mode to apply your branding, you'll need to add your logo separately, it isn't included by default.

  8. Scroll the right-hand menu down to Manage a field to reorder the fields as you want them. You can also replace the Submit button with Auto-submit, since that's what this flow relies on.

  9. Save.

Turn off the form's confirmation email

In the right-hand menu, disable the confirmation email for this form. If it stays on, the automated flow can't work.

Once the form is ready, Publish it, then copy the self-hosted link from the left-hand menu and keep it somewhere handy, you'll need it in the next step.

Most subscribers never see the form

Because the submission is automated, most recipients won't see this form at all. Still, give it a clean design and allow a few seconds for display, in case a slow connection means a subscriber does see it briefly.

Build the campaign email

The full link you put on the button is assembled like this:

SegmentRole
<public-link>The self-hosted link from your form. The token is unique to this form.
?Starts the parameters.
email=[email]Merge tag replaced with the recipient's real address at send time.
confirmation=1Sets the list's confirmation field to 1 when the email is confirmed, so you can search the list easily.
confirmation_date=[DATE|0|Y-m-d]Pre-fills the date field with today's date (offset 0, year-month-day format).
auto_submit=trueSubmits the form automatically on open, with no extra click.

Final assembled link:

Code
<public-link>?email=[email]&confirmation=1&confirmation_date=[DATE|0|Y-m-d]&auto_submit=true

Then build the email itself:

  1. Write a warm email asking your subscribers to re-confirm their subscription.

  2. In the email designer, select the call-to-action button.

  3. In its link, replace <public-link> with the real URL you copied from your form.

  4. Recommended: add the same link in plain text below the button, for people who can't click it (notably on Outlook).

  5. Assign your campaign to the correct list.

Choose your recipients

Decide which part of the list should receive the request:

  • Target everyone who hasn't opened or clicked an email in a while, for example, over the past year, using segmenting by engagement.
  • Target a part of your list that has never been confirmed and that you only have a business relationship with.
  • We recommend sending a second confirmation email about a week later, re-selecting only the people who didn't respond to the first one.

Test with a real send

Don't use “Test send” for this

A test send doesn't process merge tags like [email] or [DATE|0|Y-m-d] the same way a real send does, so the link won't fill in correctly. You have to send the real campaign to a real recipient to validate the whole flow.

  1. In your chosen list, create a segment containing a single address (yours and/or a colleague's).

  2. In the campaign, select that segment as the recipient and send the real campaign (not test mode).

  3. Open the email you receive and click the button (or the fallback link).

  4. Check that the form page submitted automatically and that you see the form's submission confirmation page.

  5. Go back to the contact list and check the tested contact's record: confirmation_date should show today's date, and confirmation should be 1.

If either field didn't update, re-check: the exact field names in the URL, that confirmation and confirmation_date were added to the form, and that the full link (including confirmation=1) was actually pasted into the email.

Troubleshooting

The fields don't update after a click

  • Confirm the field names in the URL match your list and form exactly: confirmation and confirmation_date (lowercase, with the underscore).
  • Make sure both fields were added to the form, not just to the list.
  • Verify the full link, including confirmation=1 and auto_submit=true, was pasted into the button.

The subscriber sees the form instead of an instant confirmation

  • This is expected on slow connections. As long as auto_submit=true is in the link, the form submits on its own after loading.

The confirmation email keeps going out from the form

  • Disable the form's confirmation email in the form's right-hand settings menu.

The link doesn't fill in when I test it

  • You're likely using a test send. Merge tags only resolve on a real send, send the campaign to a one-address segment instead.
Last modified on