# How to create a double opt-in email campaign

To keep your email audience high-quality and [comply with legal and deliverability standards](/product/messaging-channels/emails/email-deliverability/), don’t add users to your mailing list right after they enter their email, such as during registration or via a form. Instead, use a double opt-in process to confirm their subscription.

#### What is double opt-in?

**Double opt-in** is a two-step subscription method where users must confirm their intent to receive emails. After submitting their email address, they receive a confirmation email with a verification link. Only once they click this link are they added to your mailing list. This extra step verifies consent and helps ensure your list consists of genuinely interested recipients.

Using double opt-in is important because it:

* Confirms user intent, ensuring you email only those who want to hear from you  
* Improves deliverability by increasing engagement and reducing bounce rates  
* Minimizes spam complaints and protects your sender reputation  
* Helps meet legal and compliance obligations regarding user consent


### Send a double opt-in email using Customer Journey

To automate the double opt-in process after a user registers using [Customer Journey](/product/customer-journey/pushwoosh-journey-overview/), follow these steps:

#### Create a triggered email campaign

Go to **Customer Journey Builder → Create campaign → Email** and select **Triggered Campaign**.

![Customer Journey Builder interface showing Create campaign button with Email channel and Triggered Campaign option](/lifecycle-marketing-campaigns-how-to-create-double-opt-in-campaigns-1.webp)

#### Configure the Entry element 

In the [Trigger-based entry element](/product/customer-journey/journey-elements/#trigger-based-entry), select the default [PW\_DeviceRegistered event](/product/audience-data-and-segmentation/events/default-events/#pw_deviceregistered) under **Event**. This event is triggered whenever a new device (including email addresses) is registered in your Pushwoosh project.

Below the event, define a condition to ensure the Journey starts only for email registrations:

* **Field**: PW\_platform\_id

* **Operator**: is

* **Value**: Email

![Trigger-based entry element configured with PW_DeviceRegistered event and condition for email platform registration](/lifecycle-marketing-campaigns-how-to-create-double-opt-in-campaigns-2.webp)

This condition filters the trigger so that only devices registered via email will start the Journey.

Click **Save** to apply your changes.

#### Add and configure the confirmation email content

Drag an [Email element](/product/customer-journey/journey-elements/#email) onto the canvas and configure it.

In the Content section, select [a preset](/product/content/email-content/) designed for double opt-in. The preset should include a confirmation link and a message asking users to verify their subscription.

<Aside type="note" title="Example email content">

***Subject:** Please Confirm Your Subscription*

***Body:***  
 *Thank you for signing up\!*  
 *To start receiving our emails, please confirm your subscription by clicking the link below:*

*👉 \[Yes, I Confirm My Subscription\]*

*If you didn’t sign up, no action is needed — you won’t receive any emails from us.*

*We’re excited to have you on board\!*  
 *— The \[Your Company\] Team*

</Aside> 

Once you’ve set the subject line, added the content, and finished configuring the email element, click **Save**.

![Email element on canvas with Content section showing preset for double opt-in confirmation email template](/lifecycle-marketing-campaigns-how-to-create-double-opt-in-campaigns-3.webp)

#### Monitor user confirmation

Add a [Wait for Trigger element](/product/customer-journey/journey-elements/#wait-for-trigger) to monitor whether the user clicks the confirmation link. Configure the element:

1. First, set the wait duration (e.g., 4 days).

![Set the Wait for Trigger element](/lifecycle-marketing-campaigns-how-to-create-double-opt-in-campaigns-4.webp)

2. Next, create a branch for users who confirmed the subscription. Name the branch, for example, **Confirmed** and select the [default event PW\_EmailLinkClicked.](/product/audience-data-and-segmentation/events/default-events/#pw_emaillinkclicked) This event will track whether the user clicks the confirmation link in the email.   
  A fallback branch (Not Triggered) is created automatically for users who do not confirm.

 ![Set the Wait for Trigger element](/lifecycle-marketing-campaigns-how-to-create-double-opt-in-campaigns-5.webp)

3. Click **Save** to apply the configuration and continue building your journey.

After sending the confirmation email, the Journey waits up to 4 days for the user to confirm. 
#### Tag users who didn’t confirm as unsubscribed 

If a user doesn’t click the confirmation link in your double opt-in email, you can mark them as unsubscribed to avoid sending them future emails. 

For this: 

1. Add the [Update User Profile](/product/customer-journey/journey-elements/#update-user-profile) element to your Journey.

2. Connect it to the **Not Triggered** branch of the **Wait for Trigger** element.

3. In the Manual Tag Value section choose the **`Unsubscribed Emails`** tag and set the value to **`true`**.

![Tag users as unsubscribed ](/lifecycle-marketing-campaigns-how-to-create-double-opt-in-campaigns-6.webp)

This way, only users who confirm their email will stay subscribed and continue receiving your emails.

#### Finalize the Journey

* Connect the **Confirmed branch** to the Exit element.

* Connect the **Not Triggered** branch to the Exit element.

![ Finalize the Journey](/lifecycle-marketing-campaigns-how-to-create-double-opt-in-campaigns-7.webp)

#### Activate the Journey

Click **Launch campaign** to launch the journey.