---
title: POC-MK2 - Journey Orchestration
slug: cebu/poc-mk2-journey-orchestration
docTags: 
createdAt: 2026-06-26T05:10:06.097Z
---

This tutorial is designed to teach you how to create a journey triggered from inbound customer events.&#x20;

It is designed for a non-technical audience (Marketers and Marketing Operations).

:::hint{type="info"}
The Real-Time CDP Profile Orchestration add-on provides access to the Journeys canvas only within Adobe Journey Optimizer. It explicitly excludes Messages, Business Events, and Read Segment activities. &#x20;

Integration with Salesforce Marketing Cloud for delivery of messaging was not enabled during the POC, so we will use Adobe's native messaging for the exercise but this will not be available post POC under the currently bill of materials.&#x20;
:::

## Learning Objectives

- Learn how to create a real-time journey&#x20;

## Create a Journey&#x20;

In this exercise we will recreate the journey triggered when customers lock their price on the mock website.&#x20;

Journeys are accessible through the Adobe Journey Optimizer UI.  Use the solution switcher to change to Journey Optimizer.  &#x20;

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/RBI353MOP7a96tNULyPzl_image.png" size="70" isUploading="false" width="546" height="765" darkWidth="546" darkHeight="765" position="flex-end" showCaption="false"}

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

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

There are two options for creating a journey, manually through the UI or using AI.   For this exercise we will create the journey manually.   Select to **Create from scratch&#x20;**&#x61;nd click to **Confirm.&#x20;**

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/mQ5nJMmdzChNCs4OAR0GV_image.png" size="60" isUploading="false" width="492" height="479" darkWidth="492" darkHeight="479" showCaption="false"}

Give your journey a **name&#x20;**- add your first name or something unique so you can find it again and click to **save.&#x20;**

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

In the left panel you can see the Events that have been defined as journey triggers.   Any inbound event can trigger a journey as long as it streamed to the platform.   Drag the **Price Lock&#x20;**&#x6A;ourney into the canvas.&#x20;

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

We want to send an email confirmation immediately after the event is received.   Open the Actions panel and drag an **Action&#x20;**&#x61;ctivity into the canvas and attach it to your price lock event.   Select **Email** when you are prompted for which action type you would like to add.

:::hint{type="info"}
Post POC with SFMC sending messages, you will use a custom action defined to call the SFMC API.&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/6rbyhk5f-hRjuzwtFQUEV_image.png" size="40" isUploading="false" width="250" height="248" darkWidth="250" darkHeight="248" position="flex-start" showCaption="false"}
:::

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

In the email activity properties, click to **Configure** **action.**

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

Select **email-marketing** for the channel configuration and click to **Edit content.**

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

From the top right, select to **Apply content template.**

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

Select the **Cebu - Price Lock Email Template** and click to **Confirm.**

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

Adobe has a rich and marketer friendly email editor but this won't be applicable with messages delivered through Salesforce so we will skip it for today.    One thing to note is the personalisation added to this message comes from both the target profile and the triggering event itself.  &#x20;

These same contextual personalisation fields will be available to pass to Salesforce for personalisation.&#x20;

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

Once the email is sent we want the journey to wait and send a reminder before the lock expires.   From the **Orchestration** panel, add a **Wait&#x20;**&#x61;ctivity to your journey.   Set the duration to **22 hours**.   Click to **Save.&#x20;**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/xE497Fud9reJJ4L-714jC_image.png)

Lastly we'll send the reminder as either an Email or a Push notification depending on whether or not the customer has the app and is opted in for push.   Rather than building the logic each time, we can re-use journey fragments which have been predefined for you. &#x20;

Drag the Journey fragments activity into the canvas and attach it to your wait. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/6MVF9mMKWYNqYP7T-swgT_image.png)

Select the **mobile communication&#x20;**&#x66;ragment and click **Select**

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

Your journey now has 3 new activities, it will send a push notification to customers with the mobile app and alternatively send an email reminder to those who don't.&#x20;

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

Lastly we don't want to send the reminder if they have already actioned the lock and made a booking.   So we'll add som&#x65;**&#x20;exit criteria&#x20;**&#x74;o ensure that the customer is removed from the journey if a booking event is received. &#x20;

Click to **show exit criteria** using the profile icon in the right rail.

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

Click to **Add exit criteria**

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

You can use events or audiences as exit criteria, in this case we'll use the booking event.   Give your criteria a **label** - Booking Received.   Then click into the **Event** box to select an event type. &#x20;

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

Select the **Flight Booking&#x20;**&#x65;vent and click to **Save.**

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

Click to **Save&#x20;**&#x74;he exit criteria.

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

:::hint{type="success"}
**Congratulations!**

Your journey logic is now complete!   You've created an event triggered journey to send an email then follow up with either a push or another email after 22 hours.   Exit criteria ensuring that customers who complete their booking are removed.  &#x20;
:::

## Test your journey&#x20;

Testing journey logic and ensuring all paths and personalisation is accurate often takes a lot longer than building the journey itself.    Adobe makes this process easy through our AI simulation.  &#x20;

Click the **Simulate&#x20;**&#x62;utton in your journey.&#x20;

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

Select **Simulation&#x20;**&#x61;nd click **Confirm.**

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/IDXg7oYV8XxaA7l24wD55_image.png" size="60" isUploading="false" width="497" height="496" darkWidth="497" darkHeight="496" showCaption="false"}

It will take around 30 seconds to activate simulation mode.   Once activated, you can choose Quick simulation or Manual simulation.  Quick simulation is the fastest way to test as this will take your user email address and contact details and use those for the simulation.   We'll use Manual simulation mode instead so you can add your own email address instead. &#x20;

Click on **Manual Simulation.**

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/_-6gjPT5Di8f3QT-jgniD_image.png" size="70" isUploading="false" width="503" height="462" darkWidth="503" darkHeight="462" position="flex-start" showCaption="false"}

First we need to set up the test profiles.  Click to **Generate with AI.&#x20;**

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/KUE0aDs3J1iqxA-UUriZW_image.png" size="70" isUploading="false" width="487" height="638" darkWidth="487" darkHeight="638" position="flex-start" showCaption="false"}

You'll be prompted to input an email address and push token for the messaging.  This allows you to route all of the test communications to yourself or someone else for review!

Add your email address and click to **Generate.**    &#x20;

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/_mXlVmHuMbd2gTlnAqm-c_image.png" size="60" isUploading="false" width="497" height="499" darkWidth="497" darkHeight="499" showCaption="false"}

It will take a minute or so to generate the test profiles.&#x20;

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/Lyxdb5vzDLCKRIU4TySOm_image.png" size="60" isUploading="false" width="495" height="663" darkWidth="495" darkHeight="663" showCaption="false"}

Once complete we can see that two users have been generated, one for each of the paths in our journey.  Next we need to configure the test events to trigger the journey.   Click on **Manage events** and select as well to **Generate with AI.**

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/7TZ-SZcATTKjEE13dZE4W_image.png" size="70" isUploading="false" width="503" height="835" darkWidth="503" darkHeight="835" position="flex-start" showCaption="false"}

Once the test events are **Ready&#x20;**&#x63;lick to **Send all.  &#x20;**

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/FA0RHpLEe4h5ZXCSAt5xz_image.png" size="70" isUploading="false" width="458" height="822" darkWidth="458" darkHeight="822" position="flex-start" showCaption="false"}

The simulation will now run using your generated users and test events!    Click on the **Results&#x20;**&#x74;ab to see what happened.   We can see that 2 paths were tested with a 100% success rate!   The journey is ready to publish.  You should have also received the emails for both users.   *You might need to check your spam folder since this is just a POC server and deliverability is not maintained. &#x20;*

::Image[]{src="https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/MjCLlXGMC9u4lN59OJ-8g_image.png" size="70" isUploading="false" width="482" height="684" darkWidth="482" darkHeight="684" position="flex-start" showCaption="false"}

You can even look at the path each profile took through the journey by selecting them in the drop down.&#x20;

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

:::hint{type="success"}
**Congratulations!**

You've successfully tested your journey.  Leveraging generative AI to accelerate this process is a game changer for marketing teams. &#x20;
:::

## Additional Resources

- **[Get Started with Journey Activities](https://experienceleague.adobe.com/en/docs/journey-optimizer/using/orchestrate-journeys/about-journey-building/about-journey-activities)** - covers events, orchestration (conditions, wait, audience split), and actions (update profile, custom actions) with no dependency on message channels
- **[Custom Actions (Third-Party API Calls)](https://experienceleague.adobe.com/en/docs/journey-optimizer/using/orchestrate-journeys/about-journey-building/using-custom-actions)** - custom actions enable connection to a third-party systems to send messages or API calls; an action can be configured with any service from any provider that can be called through a REST API with a JSON-formatted payload. Under the Profile Orchestration SKU this is the primary outbound delivery mechanism in lieu of native AJO channels.
- [Salesforce Rest API for Data Extension Rows](https://developer.salesforce.com/docs/marketing/marketing-cloud/references/mc-data_extension_rows_async?meta=Summary) - custom actions can leverage the Salesforce Rest APIs to pass profiles to Salesforce at the appropriate times during a journey.  &#x20;
