|
/ Documentation /General/ SureContact Double Opt-In Guide

SureContact Double Opt-In Guide

SureContact’s Double Opt-In (DOI) feature adds a mandatory email confirmation step to your contact subscription flow. When enabled, contacts are placed in Pending status and only become Active and eligible to receive campaigns after clicking a confirmation link in a verification email.

This guide covers how to enable and configure Double Opt-In, how the confirmation flow works end-to-end, how to use automation triggers and reminder actions, and how to manage contacts who have not yet confirmed.

Prerequisites

Before enabling Double Opt-In, please ensure the following:

1. SMTP Must Be Configured

The Double Opt-In toggle requires a working SMTP connection before it can be enabled. Set up your SMTP provider under Settings → Email before proceeding.

2. A Confirmation Email Template Must Exist

You need at least one email template that includes the {{email_optin_url}} variable. Only templates containing this variable will appear in the Confirmation Email Template dropdown. Create the template first under Library → Templates.

How to Enable Double Opt-In

Follow these steps to configure Double Opt-In for your workspace.

1. Navigate to Settings

  • From the left sidebar, click Settings.
  • Scroll down the Settings page until you reach the Double Opt-In section.
surecontact settings page interface

2. Enable the Double Opt-In Toggle

  • Click the toggle next to Enable Double Opt-In to turn it on.
surecontact settings interface overview
  • Once enabled, all new contacts from the configured sources will be placed in Pending status until they confirm.

3. Select a Confirmation Email Template

  • Under Confirmation Email Template, choose the template that contains {{email_optin_url}}.
  • Only templates containing that variable are listed. If the dropdown is empty, create a template first.
  • The template is sent automatically whenever a contact triggers the DOI flow.

4. Configure Contact Sources

Choose which contact sources require Double Opt-In confirmation:

surecontact settings page overview
  • API – Contacts created via the SureContact REST API.
  • WP Users & Forms – Contacts from WordPress user sync or WPForms submissions.
  • Automation Webhook – Contacts created through webhook-triggered automations.
  • Manual Entry – Contacts added manually in the workspace.

5. (Optional) Filter by Lists

  • Toggle on Filter by lists to restrict DOI to specific contact lists.
  • Include mode: Only contacts added to the selected lists trigger DOI.
  • Exclude mode: Contacts added to the selected lists skip DOI; all others trigger it.

6. (Optional) Set a Redirect URL

  • Enter a URL in the Redirect URL field to send contacts to a custom page after confirming.
  • Leave blank to show the default SureContact confirmation page.

7. Save Changes

  • Click Save Changes. Double Opt-In is now active for all configured sources.

The Double Opt-In Flow

When DOI is enabled, every new contact from a configured source goes through the following steps:

Step 1 – Contact is Created

  • SureContact checks: Is DOI enabled? Is the contact’s source configured? Does it pass the list filter?
  • If all checks pass, the contact’s status is set to Pending and the confirmation email is sent immediately.

Step 2 – Confirmation Email is Sent

  • The email uses your chosen template. The {{email_optin_url}} variable is replaced with the contact’s unique confirmation link.
  • The link is valid for the configured Token Expiry period (default: 72 hours).

Step 3 – Contact Clicks the Link

  • The contact is taken to a branded confirmation page reflecting your workspace colors, logo, and fonts.
  • The page is publicly accessible – no login required.

Step 4 – Contact Confirms

SureContact validates the token: it must exist, not be expired, not already be used, and the contact must still be Pending. On success:

  • Contact status changes to Active.
  • The opted_in_at timestamp is recorded on the contact record.
  • Any automations using the Opt-In Confirmed trigger are fired.
  • The contact is redirected to your configured Redirect URL (if set).

Token Expiry & Resending

Token Expiry

The default confirmation link expiry is 72 hours. You can change this in Settings → Double Opt-In.

If a contact clicks an expired link:

  • They see an Expired message on the confirmation page.
  • Resend the confirmation email to generate a fresh token.

If a contact clicks an already-confirmed link:

  • They see an Already Confirmed message. No further action is needed.

Resending the Confirmation Email

There are two ways to resend the confirmation email:

1. Manually from the Contact Profile

  • Navigate to the contact’s profile page.
  • The Resend Confirmation Email option appears only if the contact is in Pending status.
  • Resending generates a fresh token and resets the expiry timer.

2. Via Automation – Send Opt-In Reminder Action

  • Add a Send Opt-In Reminder action to an automation workflow.
  • The action only executes if the contact is still in Pending status; it is safe to use in timed sequences.
  • Common use: send a reminder 24 hours after the original email if the contact has not confirmed.

Automation Integration

SureContact provides a dedicated trigger and action for building DOI-aware automations.

Trigger: Opt-In Confirmed

zight 2026 5 27 at 7.42.56 pm

The Opt-In Confirmed trigger fires whenever a contact successfully completes the double opt-in confirmation. You can optionally filter by contact source (API, Form, Webhook, or any).

Available trigger variables:

  • trigger.source – The source that originally created the contact.
  • trigger.confirmed_at – Timestamp when the contact clicked Confirm.
  • trigger.opted_in_at – Alias for confirmed_at; recorded on the contact profile.

Common Use Cases for Opt-In Confirmed Trigger:

  • Start a welcome email sequence immediately after confirmation.
  • Add the contact to a specific list based on their source.
  • Apply tags to segment confirmed vs. unconfirmed contacts.

Action: Send Opt-In Reminder

The Send Opt-In Reminder action resends the confirmation email. It silently skips contacts who are no longer in Pending status, making it safe to include in any automation sequence.

Recommended Pattern – 24-Hour Reminder:

  • Trigger: Contact Created (any source).
  • Wait: 24 hours.
  • Action: Send Opt-In Reminder (executes only if still Pending).
  • Wait: 48 hours.
  • Condition: If contact is still Pending → apply “Unconfirmed” tag or remove from list.

Email Template Variables

Use these variables when building your confirmation email template:

Required

  • {{email_optin_url}} – The confirmation link. Must be present or the template will not be selectable.

Optional – Contact Data

  • {{contact.first_name}} – Contact’s first name.
  • {{contact.full_name}} – Contact’s full name.
  • {{contact.email}} – Contact’s email address.

Optional – Workspace & Expiry

  • {{workspace.name}} – Your workspace name.
  • {{expires_in}} – Human-readable expiry, e.g. “72 hours”.
  • {{expiry_hours}} – Expiry as a number, e.g. “72”.

Contact Sources – DOI Behaviour Reference

Sources that trigger DOI (when configured):

  • Form submission – triggers DOI if enabled globally or at form level.
  • API-created contact – triggers DOI if API is a selected source.
  • Automation Webhook – triggers DOI if webhook is a selected source.
  • WordPress users/sync – triggers DOI if WP Users & Forms is a selected source.

Sources that always bypass DOI:

  • Manual entry – hand-entered contacts bypass DOI regardless of settings.
  • CSV / bulk import – always bypasses DOI. This is by design and cannot be overridden.

Form-Level DOI Override:

Individual forms can have their own DOI setting, independent of the global workspace setting. If a form has DOI enabled, it applies to all submissions from that form, even if the global setting is off. Configure this under Forms → [Form Name] → Settings → Double Opt-In.

Need Help?

If you need any assistance, please email [email protected], and our support team will be happy to help you.

Was this doc helpful?
What went wrong?

We don't respond to the article feedback, we use it to improve our support content.

Need help? Contact Support
Scroll to Top