---
title: Live Activities
slug: docs/6kqf-live-activities
docTags: 
createdAt: 2026-05-05T05:35:32.965Z
---

## Overview

Live Activities enable real-time updates on a user’s device (e.g., order tracking, delivery status).
&#x20;In this implementation, Live Activities are triggered via **Adobe Journey Optimizer campaigns**, and each step in a configured flow updates the activity dynamically on the device.

## Prerequisites

Before starting, ensure the following:

1. Create a project using quick-setup: [https://dsn.adobe.com/quick-setup](https://dsn.adobe.com/quick-setup). Use advance preset for the same, either Luma - Advanced or Halliby - Advanced.

:::Paragraph{indent="1"}
Example: Use Luma - Advanced Preset.
:::

:::Paragraph{indent="1"}
This will create a web, mobile, cx, and event trigger project.
:::

::Image[]{src="https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/j66Tt1gPiG0j8UQu0UzaH_image.png" size="38" width="510" height="254" darkWidth="510" darkHeight="254" position="center" showCaption="false" indent="2"}

::Image[]{src="https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/QlslAlJ9hh8SfetDEDtOl_image.png" size="36" width="1064" height="384" darkWidth="1064" darkHeight="384" position="center" showCaption="false"}

2. Install the app:
   &#x20;[Live Demos Mobile](https://dsn.adobe.com/install)(iOS version)&#x20;
3. Open the app and:&#x20;
   - Go to the **Settings tab** (bottom navigation)&#x20;
   - Select the tab **“Custom project”**&#x20;
   - Use the mobile project created above.
   - Create an account :&#x20;
   - Click on the **login icon**&#x20;
4. Create API triggered transactional campaign based on email namespace. [https://experienceleague.adobe.com/en/docs/journey-optimizer/using/campaigns/api-triggered-campaigns/api-triggered-campaign-properties](https://experienceleague.adobe.com/en/docs/journey-optimizer/using/campaigns/api-triggered-campaigns/api-triggered-campaign-properties)



## Step 1: Configure Live Activities

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Edit the Event Trigger project created above and open the Live Activities module:

**Configure the following fields:**

**Module**: Live Activities&#x20;

- **Campaign**: Select the campaign to trigger. This is the api triggered campaign and provide the campaign ID. Use a campaign based on the email namespace.
- **Vertical**: Retail&#x20;
- **Restaurant Name**: Luma&#x20;
- **Steps**
- ***Order Status** (e.g., Order Placed, On the way to store)&#x20;*
- Extra message: This will be shown on live activity
- ***Current State***&#x20;

*These values are passed in the payload and are used to update the Live Activity UI in real time.*

**Note**: For Luma (public project), this is already configured; the steps are provided for a custom implementation.
:::

:::VerticalSplitItem




![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/z8E_8r90T4VVla5P6wm4q_image.png)
:::
::::

## Step 2: Configure Steps

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
- Click on **Open Editor** under Steps&#x20;
- Define multiple **steps&#x20;**&#x20;of the Live Activity&#x20;
- Each step represents a status update (e.g., Order Placed → *On the way to store* → Order arrived at store)&#x20;
- These steps will:&#x20;
  - Appear in the flow UI&#x20;
  - Trigger events when executed


:::

:::VerticalSplitItem


![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/ClJtJl-s3rQ4aMuJkn70q_image.png)
:::
::::





## Step 3: Run the Experience

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Navigate to the Journey Trigger project created above.

and select **Email** from the dropdown.

Provide a valid Email. It will load the profile and the live activities module.


:::

:::VerticalSplitItem


![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/D6lwA6-taBoaLdRklm8eu_image.png)
:::
::::

## Step 4: Trigger Live Activity Events

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Execute the steps sequentially in the flow, where each step triggers an event that invokes the campaign, which in turn sends a Live Activity update to the device using fields such as Order Status, Extra Message and Current State.
:::

:::VerticalSplitItem


![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/AD4FVBn4tbnHEuQYeEPoV_image.png)

![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/6ANphzMY_CTlk6B5clXnr_image.png)
:::
::::

## Step 5: Real-Time Device Updates

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Once the Live Activity is triggered on the device, each subsequent step continues to send updates, which are reflected in real time on the device by updating the Order Status, Extra message, and Current State.
:::

:::VerticalSplitItem






![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/qA4TMygDz8fonkW5_KzEJ_image.png)



![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/W-t5kfn55jPaT2UR2F3RR_image.png)



![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/bQCbvjZXdOKbYeAuKN3R-_image.png)



![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/_orAqaVYzoM9gs9bn8Lsb_image.png)

![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/yA9pVrj38f2RLR9TC7QNF_image.png)
:::
::::



### Alternative: Trigger Using Postman

If you do not want to use the **Journey Trigger**, you can trigger Live Activity updates using the attached Postman collection.

::File{src="https://api.archbee.com/api/presign/bAgVaanSi1tFmfc8PghaH/6pyFIZNXRcD-A-1zqOYfI_live-activitiespostman-collection.json" label="live-activitiespostman-collection.json"}

**Steps:**

1. Import the provided Postman collection&#x20;
2. Open the Live Activity request&#x20;
3. Update the required fields (explained below)&#x20;
4. Send the request to trigger the campaign&#x20;

### 🔧 Required Fields Explanation

- **campaignId**
  &#x20;→ AJO Campaign ID used to trigger the Live Activity&#x20;
- **timestamp**
  &#x20;→ Dynamic **epoch timestamp (in seconds)** representing when the event is triggered&#x20;
- **userId (Email)**
  &#x20;→ Email of the target device/user where the Live Activity should appear&#x20;
- **event**
  &#x20;→ Defines the Live Activity lifecycle:&#x20;
  - start → Starts the activity&#x20;
  - update → Updates the activity&#x20;
  - end → Ends the activity&#x20;
- **liveActivityID**
  &#x20;→ Unique identifier for a Live Activity instance
  &#x20;→ Must remain the same across updates&#x20;

### Live Activity Update Fields

- **orderStatus** → Current order status&#x20;
- **statusDetail** → Extra message&#x20;
- **currentStage** → Current stage/progress of the activity(0,1,2,3,4)



## Vertical - Generic

The generic template provides a flexible foundation for Live Activities with varied UI designs, while supporting rich images to make the experience more engaging and visually appealing. If no image is available, it gracefully falls back to a built-in status card.

## Step 1: Configure Live Activities

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Edit the Event Trigger project created above and open the Live Activities module:

**Configure the following fields:**

**Module**: Live Activities&#x20;

- **Campaign**: Select the campaign to trigger. This is the api triggered campaign and provide the campaign ID. Use a campaign based on the email namespace.
- **Vertical**: Generic&#x20;
- **Steps**
- ***Order Status** (e.g., Order Placed, On the way to store)&#x20;*
- Extra message: This will be shown on live activity
- ***Current State***&#x20;
- ***Image***

These are optional parameters which will be  used when image is not fetched from the server. If image is provided and is available, then full image would be displayed.

In case, still wants to display these on image use switch -"Show all details".

*These values are passed in the payload and are used to update the Live Activity UI in real time.*

****
:::

:::VerticalSplitItem




![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/eOFMcb0UmbgX9MjTchfu6_image.png)

![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/DrB6iaYKdTUaZECmMl8CD_image.png)
:::
::::

## Step 2: Configure Steps

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
- Click on **Open Editor** under Steps&#x20;
- Define multiple **steps&#x20;**&#x20;of the Live Activity&#x20;
- Each step represents a status update (e.g., Order Placed → *On the way to store* → Order arrived at store)&#x20;
- These steps will:&#x20;
  - Appear in the flow UI&#x20;
  - Trigger events when executed


:::

:::VerticalSplitItem


![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/xijF35jc57YJ4D9KSVaQM_image.png)
:::
::::





## Step 3: Run the Experience

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Navigate to the Journey Trigger project created above.

and select **Email** from the dropdown.

Provide a valid Email. It will load the profile and the live activities module.


:::

:::VerticalSplitItem


![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/D6lwA6-taBoaLdRklm8eu_image.png)
:::
::::

## Step 4: Trigger Live Activity Events

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Execute the steps sequentially in the flow, where each step triggers an event that invokes the campaign, which in turn sends a Live Activity update to the device using fields.

If image cannot be fetched, it falls back to native card.
:::

:::VerticalSplitItem


![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/AD4FVBn4tbnHEuQYeEPoV_image.png)



![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/MEQLL_YCs2xFvbC7GFJXp_image.png)



![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/88-hGVuDiyq0Xqx_kbbR2_image.png)
:::
::::

## Step 5: Real-Time Device Updates

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Once the Live Activity is triggered on the device, each subsequent step continues to send updates, which are reflected in real time on the device by updating the image.
:::

:::VerticalSplitItem






![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/qA4TMygDz8fonkW5_KzEJ_image.png)



![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/W-t5kfn55jPaT2UR2F3RR_image.png)



![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/bQCbvjZXdOKbYeAuKN3R-_image.png)



![](https://api.archbee.com/api/optimize/bAgVaanSi1tFmfc8PghaH/_orAqaVYzoM9gs9bn8Lsb_image.png)
:::
::::

Postman Collection -&#x20;

::File{src="https://api.archbee.com/api/presign/bAgVaanSi1tFmfc8PghaH/q1twuaz2QmiD4mmyscQbZ_live-activitiespostman-collection.json" label="Live-Activities.postman_collection.json" isUploading="false"}

