---
title: Double Optin Journey
slug: swisscom-b2b-lab/double-optin-journey
docTags: 
createdAt: 2026-04-03T13:49:12.221Z
---

This section describes how to design a process that manages the subscription of a profile to a newsletter. This process triggers as soon as an event is collected in Adobe Real Time CDP.

### Generation of a Newsletter Subscription Event

- Go to the home page of the [demo web site](https://dsn.adobe.com/web/swisscom-b2b/home)
- Fill in the Newsletter Subscription form with an email address and click on the **Sign Up** button

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/SdlSo6jHe26qQ8Kt9M6d0_image.png)

- Expand the Adobe **Real Time Customer Profile** applet
- Go to the **Events&#x20;**&#x74;ab
- Check that an event named **NEWSLETTER SUBCRIPTION** has been collected

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/R11VCSg_kCVX9gfYyurfS_image.png)

### Orchestration of the profile journey to collect the double opt in

The goal is to design a process that:

1. Triggers as soon as a newsletter subscription event is collected
2. Sends an email to notify the subscription and ask a second time for the consent
3. Wait for the 2nd consent event to send a welcome message and update the field in RealTime-CDP
4. Wait until a timeout period to trigger a reminder process, in case the recipient doesn't confirm the consent

The diagram below shows one possible structure of the flow:



![Double Opt In journey](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/6L31YoSaQ0TCNHIMLIiq6_image.png "Double Opt In journey")

Follow these steps to build this flow:

- In Adobe Experience Platform, launch the [Adobe Journey Optimizer B2B Edition ](https://experience.adobe.com/#/@demopotemea/sname\:ajo-b2b-02/journey-optimizer-b2b/home)application&#x20;
- Go to the menu **Journey Management** > **Person journeys (beta)**
- Click on the **Create Journey&#x20;**&#x62;utton
  - Set the name **Newsletter Subscription  - \<your initials>**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/BDBvtbTTWhFtGsEM6yQHc_image.png)

- Click on the **Person audience** card
  - Select **Event audience**
  - Click on **Add event criteria** button
  - Drag & Drop the **Newsletter Subscription** event and set a constraint `brandName is not empty.`

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/Vd9XDoAFqghSAbPeCuskH_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
Click on&#x20;**&#x20;Save**
:::

- Add an action after the **Person audience** activity
  - Click on the **+** button
  - Select the command **Take an action**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/pIWxIUr39jUQdP1PZPA_Y_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
Select the action **Send email**
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
Click on **Create email** button
:::

:::Paragraph{listStyleType="disc" listStart="3" indent="2"}
Select **New email**
:::

:::Paragraph{listStyleType="disc" indent="3"}
Set the name to **Newsletter Subscription Notification - \<your initials>**
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="3"}
Set the Subject line to "Please confirm the subscription"
:::

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/IMDU2qqJqVuJwQYwatXPR_image.png" size="60" width="519" height="428" position="center" showCaption="false"}

:::Paragraph{listStyleType="disc" indent="2"}
Click on **Create**
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
Click on **Edit email content&#x20;**
:::

:::Paragraph{listStyleType="disc" listStart="3" indent="2"}
Select the **Bodea - Newsletter** template
:::

:::Paragraph{listStyleType="disc" listStart="4" indent="2"}
Click on **Use this template**
:::

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/27RI4LRyJjdrbeWTZDqoa_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
Drag & Drop a **Text&#x20;**&#x63;omponent&#x20;
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
Click on this Text component in the template
:::

:::Paragraph{listStyleType="disc" listStart="3" indent="2"}
From the right hand menu, select the **AI Assistant** icon (3rd down)
:::

:::Paragraph{listStyleType="disc" listStart="4" indent="2"}
In the Prompt, request the AI to&#x20;
:::

:::Paragraph{listStyleType="disc" indent="3"}
"Generate text to collect marketing consent"
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="3"}
In **Text Settings**,&#x20;
:::

:::Paragraph{listStyleType="disc" indent="4"}
Set **Buying group&#x20;**&#x74;o **Influencer&#x20;**&#x73;tyle,
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="4"}
Set Communication strategy set to **informative**
:::

:::Paragraph{listStyleType="disc" listStart="5" indent="2"}
Select one of the best proposition generated by the AI
:::

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/muN-8IdwCGqeUMHurwJnE_image.png)

Now we will personalize the email text with the contacts first name, to do this

- Click on the first text box, ensure your cursor is positioned before "Bodea is"
- Click the **Add personalization&#x20;**&#x69;con from the text menu

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/iHyhBhJ9McJ_8BqZ5rYrH_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
This will open the **Expression editor**.&#x20;
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
Filter the fields to find the **First name**
:::

:::Paragraph{listStyleType="disc" listStart="3" indent="2"}
Click **+** to add this token to the expression.
:::

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/lAa9nB25OFP6a5DgbrwUz_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
Click on **Save**
:::

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/hATOWYBjHB65gv_mIjTDJ_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
Click on the **Button** component below the text you added.
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
Rename the button to **I consent&#x20;**
:::

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/uI2aWllIyZsh_yO7-4-2P_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
In the right hand component settings, set the link in such a way that the URL contains the word **consent**
:::

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/oAg9rSbqYzq9J7sI10hsc_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
Click on **Save & close**
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
Go back to the process flow by clicking the arrow in the top left.
:::

- Add an action after the Send email
  - Select the command **Listen for an event**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/CRWKxx2NsFNFvdbicwI5g_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
Select **Direct Marketing Email Clicked**
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
Click on **Edit event&#x20;**
:::

:::Paragraph{listStyleType="disc" listStart="3" indent="2"}
Add the constraint: `Link URL contains consent`
:::

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/1XpOsot7niQKIByPTy21c_image.png)

:::Paragraph{listStyleType="disc" indent="2"}
Click on **Done**
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
Enable the **Timeout&#x20;**&#x72;adio button. Leave the default setting of "Timeout after 5 days"
:::

![Timeout usage](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/wrrGzE4pheeoTbS_gPqGg_image.png "Timeout usage")

- Continue the **Listened to event** path by adding&#x20;
  - a **Send Email**&#x20;
    - Click on **Create Email**
    - Select **Duplicate existing email**
    - Select the email created at the beginning of the flow
    - Set the name to `Newsletter Subscription Confirmation - < your initials>`
    - Set the Subject line to `Thank you!`
    - Click on **Create&#x20;**

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/gLjlD1ZhAV4QiZeWRtjZB_image.png" size="50" width="507" height="502" position="center" showCaption="false"}

:::hint{type="info"}
We're not going to change the content of this email, since we learned how to do this in the previous email creation exercise. Instead, click out of the email designer via the top left arrow to return to the Journey canvas.
:::

:::Paragraph{listStyleType="disc" indent="2"}
After the "send email" node you just added. Add a new action
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
Click **Take an action** and select **Update person profile&#x20;**
:::

:::Paragraph{listStyleType="disc" indent="3"}
Select the *Email Marketing Consent* attribute from the drop down.&#x20;
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="3"}
Set the value to "Yes"
:::

:::Paragraph{listStyleType="disc" listStart="3" indent="2"}
This will update the **Email Marketing Consent** to "Yes"
:::

![Update person profile with email marketing consent](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/5aGHeY5K6A5PzfT2ZSE6h_image.png "Update person profile with email marketing consent")

- Continue the **Timeout after 5 days** path by adding a **Send Email** in order to deliver a reminder and follow the same procedure to duplicate a previous email and customize a new one

The end of the flow will look like this diagram:

![End of the double optin journey](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/33eJ4_GljDR6Q-xkeXKTz_image.png "End of the double optin journey")

