Skip to main content

Double Opt-In

Double opt-in asks new subscribers to confirm their email address before they become active. Use it when you want cleaner lists, stronger consent records, and fewer fake or mistyped signups.

How It Works

  1. A visitor submits a signup form, or an API call creates a subscriber with double opt-in enabled.
  2. Sequenzy stores the subscriber as unsubscribed while confirmation is pending.
  3. Sequenzy sends your confirmation email with a signed confirmation link.
  4. After the subscriber clicks the link, Sequenzy changes the subscriber to active.
  5. Sequenzy adds the subscriber to the target lists, applies signup tags, and triggers matching automations.
Pending subscribers do not receive campaigns or sequences. They can still receive the confirmation email because it is sent as a transactional confirmation message.

Requirements

Before enabling double opt-in, set a default sender profile for the workspace. Sequenzy uses that sender for the confirmation email. When you enable double opt-in for the first time, Sequenzy creates a confirmation email template for you. You can edit it like any other email, but it must include the {{DOUBLE_OPT_IN_URL}} variable somewhere in the content. Sequenzy replaces that variable with the subscriber’s confirmation link at send time.

Enable Double Opt-In

  1. Go to Settings → Email Tracking.
  2. Find Double Opt-In.
  3. Turn on Enable double opt-in.
  4. Click Edit confirmation email if you want to customize the subject, copy, design, or button text.
  5. Save your settings.
If the workspace does not have a default sender profile, Sequenzy will ask you to set one before enabling the setting.

Signup Forms

Embedded signup forms follow the workspace double opt-in setting. When double opt-in is enabled:
  • Form submissions create pending subscribers with status: "unsubscribed"
  • Selected list IDs and tags are held until confirmation
  • The confirmation email is sent automatically
  • The success message or redirect still runs after the form submission succeeds
When the subscriber confirms, Sequenzy activates the subscriber, adds the selected lists and tags, and starts any matching automations.

Signup Form Widget

Learn how embedded signup forms work with double opt-in.

Events, Webhooks, and Tags

Contacts are not only created by signup forms. Events from external apps (Tally, Cal.com, Typeform, and other webhook triggers), the events API, and tag operations can also create brand-new contacts. These paths follow the workspace double opt-in setting too. When double opt-in is enabled and an event or tag creates a new contact:
  • The contact is stored as unsubscribed while confirmation is pending, and the confirmation email is sent automatically
  • The event is still recorded and tags are still applied, so your data stays complete
  • List membership is held until confirmation
  • Sequences triggered by the event or tag enroll the contact immediately, but the enrollment is parked at the trigger step - no emails send yet
When the contact confirms, parked sequences resume from the trigger and the first email sends. If the contact never confirms within the confirmation window, the parked enrollment is cancelled automatically. Contacts that already exist are not affected: active contacts run sequences normally, and contacts who unsubscribed earlier are never re-enrolled. A contact with a pending confirmation can keep triggering events - each matching sequence parks once and resumes after the single confirmation.

API Behavior

The subscriber API accepts an optInMode field:
ValueBehavior
defaultFollow the workspace double opt-in setting for new active subscribers. This is the API default.
confirmedCreate or keep the subscriber active immediately when you have verified consent.
double_opt_inForce a confirmation email for this request. The subscriber stays unsubscribed until they confirm.
Use confirmed for server-side flows where your app already verified consent, such as paid customer syncs or explicit in-product opt-ins. Omit optInMode or use default when you want the workspace setting to decide for new subscribers. Use double_opt_in when this one request must require confirmation regardless of the workspace setting. default does not send confirmation email to an existing unsubscribed contact.
curl -X POST "https://api.sequenzy.com/api/v1/subscribers" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "new-reader@example.com",
    "tags": ["newsletter"],
    "lists": ["list_abc123"],
    "enrollInSequences": true,
    "optInMode": "double_opt_in"
  }'
If confirmation is required, the response includes an optIn object:
{
  "success": true,
  "subscriber": {
    "id": "sub_abc123",
    "email": "new-reader@example.com",
    "status": "unsubscribed",
    "tags": []
  },
  "optIn": {
    "required": true,
    "emailQueued": true
  }
}

Create Subscriber API

See the full subscriber create request and response reference.
Confirmation links expire automatically. If a subscriber clicks an expired or replaced link, they see an error state and can submit the form again to receive a fresh confirmation email. If a subscriber is already active when they click a valid confirmation link, Sequenzy treats it as already confirmed instead of creating duplicate list memberships or automation entries.