---
title: Lab 2 - Journeys and Content
slug: hol-vna-ajo-at/lab-2-journeys-and-content
docTags: 
createdAt: 2025-06-18T06:09:40.299Z
---

# Learning Objectives&#x20;

In this exercise you will:&#x20;

1. Understand journey triggers & events
2. Design a multi-step journey
3. Generate brand aligned content using AI&#x20;

# Scenario

We're going to build a journey to **remind Pay Later customers to come back and pay** for their booking. We will send a Push reminder 30 minutes after they book, and then again 3 hours later if they still haven't paid.

If they pay, they are immediately removed (or "exit") the journey.

# 2.1  Navigation Overview&#x20;

Let's take a quick look through the menu options on the left hand side.   &#x20;

**Journey Management** is where you will find your Campaigns, Journeys and global Reporting.  Campaigns are single channel bulk or recurring messages, while journeys are multi-step and multi-channel.  &#x20;

**Use Case Playbooks&#x20;**&#x70;rovide a catalog of use cases to get you started faster.

**Decisioning** is where you'll find the next best offer catalog and strategies. &#x20;

**Content Management&#x20;**&#x69;s where you'll manage all of your content, including your Asset Repository powered by Adobe Experience Manager **Assets**, re-usable multi-channel **Content Templates**, HTML and Expression **Fragments, Landing pages&#x20;**&#x61;nd **Translations&#x20;**&#x66;or multi-lingual support.  You'll also find your **Brand&#x20;**&#x67;uidelines here used to ensure all content is brand aligned (BETA feature).

**Data Management, Connections&#x20;**&#x61;nd **Customer&#x20;**&#x69;s where you can access the same shared components as RT-CDP. The Unified Profile and Audience definitions are part of the core Adobe Experience Platform and are shared by both solutions which helps to reduce duplication and create consistent experiences across channels.

**Administration&#x20;**&#x69;s where you will find configuration items for journey triggers, custom actions, channels and business rules to control channel based frequency capping.&#x20;

# 2.2 Create Journey&#x20;

Navigate to **Journey Management -> Journeys&#x20;**&#x61;nd click on **Create Journey.**

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

Give your journey a name such as **\<YOUR NAME> - Pay Later Reminder**. The journey properties are also where you can set up the re-entrance criteria, re-entry wait period etc. But we will leave the default settings. Click **Save**.

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

Journeys can be triggered from individual events or when a customer enters or exits a segment. You can see the events that are configured as journey triggers in the left panel - this list is configurable and will depend on your implementation. As this is a test environment you will see a lot, but in your implementation you may see less.

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

We will be using event triggers throughout this journey. The events Airline\_flightBooking and Airline\_flightPayment have been pre-configured in a one-time set up. We did this so you don't have to set them up during this lab.

:::hint{type="warning"}
**Hot Tip:&#x20;**&#x49;n production, if you **configure the Airline\_flightBooking to only trigger when the user selects Pay Later**, you can reduce the number of profiles that enters the journey.

AJO is licensed on Engageable Profiles. i.e. the number of profiles that enter any journey within a 12 month period. Therefore, the more targeted your events and audiences the better.
:::

Drag-and-drop **Airline\_flightBooking** into the panel as our entry event.

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

Next, drag-and-drop the **Airline\_flightPayment** event to the end of the journey.

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

Check the box **Define the event timeout** and set the **Wait** to **30 Minutes**.

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

Click on **Actions** in the left rail and drag-and-drop **Push** to the end of the bottom node.

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

Set the **Label** to **1st Push** and change the **Push configuration** to **push-dxdemoApp**. Again, the Push Configuration is a one-time set up that we have already done for you for this lab.

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

Go back to **Events** and drag-and-drop **Airline\_flightPayment** to after the Push action.

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

Once again, set **Define the event timeout** but this time to **3 hours** and click **Save.**

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

Drag-and-drop another **Push** action to the end of the timeout node.

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

Give it a **Label** of **2nd Push** and click **Save**.

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

Let's add an overall **exit criteria** to the journey. We want the journey to be over as soon as someone pays for their flight booking.

Click on the **Profile** icon on the right. Set the **Label** to **Payment Recieved**. Click the **pencil icon** to the right of Event.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/5o2fy-Dohlb0Dzrtvrdbb_image.png)

Select **Airline\_flightPayment** then click **Save**.

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

Click **Save** to close the Exit criteria panel.

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

Well done! Your journey is complete! It should look something like this:

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

Now all you have to do is add content. We will make this easy by using a Template for the first message and then using Generative AI to create the second message.

# 2.3 Add Push Content

Click on **1st Push** then **Edit content**.

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

This is the content editor. To make life easier, we will start with a template that has been pre-made for you. At the top right click **Content template** > **Apply content template**.

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

:::hint{type="warning"}
**Tip:** If you can't see the phone any of the options in this section or if there is not enough room on screen, can zoom out in Chrome.

Use **Ctrl -** and **Ctrl +** (**Command -** and **Command +** on Mac) to **zoom** the UI out or in. This is particularly handy when working on small screens such as laptops.
:::

Select **Airline Payment Reminder Push** and click **Confirm**.

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

Notice the template contains a personalization field in the body (First Name). Also notice an image has been included. If you press the Expand view button under the phone you will see a preview of what the expanded message looks like (when someone taps and holds on iOS). There is also option to preview and customize the content for Android.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/IpB-6m-WEfIk_xuDUcHoG_image.png)

Click the **\<** **back** arrow to return to the journey.

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

# 2.4 AI Assistant and Brand alignment

This time we'll make life even easier by using generative AI to completely make all our content. Click on **2nd Push** then **Edit content**

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

Click on the **AI Assistant icon** on the right then enter a **prompt** such a&#x73;**&#x20;Remind the customer to pay for their flight booking**. Tick all the fields (**Title** + **Message** + **Image**) then click on **Text settings**.

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

:::hint{type="warning"}
**Note:** You might see an Agreement popup when you first click the AI Assistant icon. If you do, scroll to the bottom and click **Agree**.

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

Change the **Communication strategy** to **Urgent**, the **Tone** to **Friendly** and then click **back**.

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/uZ-bnmGPJEdA9SkXPGD5W_image.png" size="50" width="831" height="823" position="center" showCaption="false"}

Click **←back** and from the content editor screen click **Generate**.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/3nZF-9VNgqD0nxRSXdrLM_image.png)

You will see several variations to choose from. Notice that each is given a **Brand Alignment Score**. We have uploaded some imaginary brand guidelines for VNA and the AI is checking how well this content meets the brand guidelines. Click on **Preview** next to the variation you like.

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

:::hint{type="success"}
**Differentiator:** Adobe takes content even further by adding AI-assisted brand alignment checking, making it faster for your teams to approve content and ensure content is compliant and high standard.
:::

Click on **Brand alignment** then **Writing style** or Visual content, whichever is *not* 100%. Don't worry if your Brand Alignment Score isn't 100%. For this lab we intentionally don't want it at 100% so you can see how AI can help you scale your content.

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

The reason why the score was low is shown. This is taken directly from brand guidelines which we earlier uploaded as a PDF into AJO. You can find more details about [AJO Brands here](https://experienceleague.adobe.com/en/docs/journey-optimizer/using/content-management/ai-assistant/brands/brands-landing-page) after the lab.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/A-LlUfVdkCy-J_t8FArjK_image.png)

Go to **AI Assistant&#x20;**&#x61;nd change the **Repository** to **Demo APAC Assets Essentials prod.&#x20;**&#x54;his tells AJO where to put the generated content. As you have AEM you will be able to select that in your production environment to centralize all your content there. Click **Select** at the top right.

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

Normally you wouldn't have to do this step in your production environment, but as we are running on a demo instance with several users there is some environment testing of different repositories here.

:::hint{type="success"}
**Differentiator:** Only Adobe can combine data, journeys and CONTENT seamlessly in one tool.
:::

:::hint{type="warning"}
**Note:** You may see a message saying *"Error converting image to base64"&#x20;*&#x6F;r another type of error when saving/uploading - you can close and ignore this as it's just part of our shared demo environment testing. It should still be saved fine.
:::

Back on the preview screen, you can once again click the **Expand view** button to see the full content. Also note there is a **little expand icon** on each image on the right that can be used to enlarge each image.

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

Click the **\< back** arrow at the top right to go back to the journey.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/7SMlrpUaban-5nMJeF-9N_image.png)

Click **Save** and then the **\< back** arrow and you're done!

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

You should see your journey in the list of journeys.

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

Note, we didn't Publish this journey but could have easily done so in the previous screen. It is also possible to set up maker/checker approval workflows in AJO. For more details see the [AJO Test & Approve](https://experienceleague.adobe.com/en/docs/journey-optimizer/using/test/test-landing-page) help section.

# Summary

Congratulations! 🎉 You've successfully created a multi-step journey to encourage Pay Later customers to pay for their flight bookings! **This is a great use case because it is directly tied to revenue!**

You've used templates and AI Assistant to quickly generate variations without compromising on brand integrity.

The next and final section is [Lab 3 - Adobe Target](docId\:BR1o8dVtFQHkFgDQHnDUI)&#x20;



