---
title: "Activity Builder"
description: "Build the flow participants run in Coherence, such as an intro, guided breathing, a camera reading, questions and a results screen."
---

> eSSESSMENT docs. Web page: https://presagetech.com/docs/essessment/activity-builder
> Index of all pages: https://presagetech.com/docs/essessment/llms.txt

# Activity Builder

## Overview

An activity is your protocol: the steps a participant goes through in Coherence. The Activity Builder is where you design it step by step. You arrange steps, set each one up, and see a live phone preview of what participants will see. When everything checks out, you publish it to the program.

## Guide

<ol class="guide">
<li>

#### Open the builder

From a program page, click **Add activity**, or **Edit** on an existing activity.

</li>
<li>

#### Pick a starting point

Confirm the **Program** the activity belongs to. Then pick a template, **Start from scratch**, or **Import JSON** to bring in a flow definition, for example one from Presage support.

<figure class="shot">

![Create an activity with the program, templates, build your own options and the participant preview](https://presagetech.com/docs/essessment/assets/create-activity-v4.jpg)

<figcaption>Create an activity</figcaption>
</figure>

</li>
<li>

#### Read the builder guide

A short **Builder guide** with four tips opens the first time. Click **Next**, or **Skip tour**.

</li>
<li>

#### Fill in Basics

Set the **Name** and **Description** participants see, pick what happens **When it ends**, choose a **Button color**, and decide whether to ask for feedback.

<figure class="shot"><div class="mk-fit" data-w="1040"><div class="mk" role="img" aria-label="Basics with details, appearance and participant preview"><div class="mk-app wp"><div class="mk-side"><div class="mk-logo"><img src="https://presagetech.com/docs/essessment/assets/presage-logo.png" alt="Presage"></div><div class="mk-sh">Apps</div><div class="mk-nav"><svg class="mk-ic" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg>Portal</div><div class="mk-sh">Demo Organization</div><div class="mk-nav on"><svg class="mk-ic" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="7" height="7" rx="1"></rect><rect x="14" y="3" width="7" height="7" rx="1"></rect><rect x="14" y="14" width="7" height="7" rx="1"></rect><rect x="3" y="14" width="7" height="7" rx="1"></rect></svg>Programs</div><div class="mk-nav"><svg class="mk-ic" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>Members</div><div class="mk-nav"><svg class="mk-ic" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg>Org Settings</div><div class="mk-foot"><div><b>Demo Organization</b> ▾</div><div><b>Demo</b><br><span style="color:#64748b">demo@presagetech.com</span></div></div></div><div class="mk-main"><div class="mk-row"><div class="mk-tabs"><span class="on">Basics</span><span>Steps</span><span>Review</span></div><span style="color:#64748b;font-size:11px">Saving draft locally…</span></div><div class="mk-eb">Activity builder · Step 1 of 3</div><p class="mk-h">Basics</p><p class="mk-sub">Give participants the context they need before they begin. You can change these details later.</p><div class="mk-g2" style="grid-template-columns:1fr 1fr"><div class="mk-card"><h5 style="font-size:12.5px">Details</h5><div class="mk-lbl">Name</div><div class="mk-in val">Daily vitals check</div><div class="mk-lbl">Description</div><div class="mk-in ta val">A quick 60-second reading of your heart rate and breathing. Sit still in good light and look at the camera.</div><div class="mk-lbl">When it ends</div><div class="mk-in val">Return to the Home tab ▾</div></div><div style="display:grid;gap:12px"><div class="mk-card"><h5 style="font-size:12.5px">Appearance</h5><div class="mk-lbl">Button color</div><div class="mk-sw"><i style="background:#cbd5e1"></i><i style="background:#9ca3af"></i><i style="background:#e8a5a5"></i><i style="background:#3b82f6;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #3b82f6"></i><i style="background:#a7d7c5"></i><i style="background:#eedcc4"></i></div><div class="mk-in val" style="width:90px;margin-top:6px">#3B82F6</div></div><div class="mk-card"><h5 style="font-size:12.5px">Feedback</h5><p class="d" style="margin-bottom:6px">Choose whether participants can leave feedback after completing the activity.</p><div style="font-size:11.5px">☑ Ask for feedback at the end</div></div></div></div><div class="mk-bar" style="border-top:1px solid #e4e7ee"><span class="mk-btn" style="margin-right:auto">← Back</span><span class="mk-btn p">Continue to Steps →</span></div></div><div class="mk-pv"><div class="mk-eb">Builder preview</div><div class="t">Participant preview</div><div class="mk-phone lt" style="width:150px"><div class="mk-scr wh"><div class="mk-isl"></div><div style="margin-top:auto"><b style="font-size:12.5px">Daily vitals check</b><p style="font-size:9px;color:#64748b;margin:5px 0 0">A quick 60-second reading of your heart rate and breathing. Sit still in good light and look at the camera.</p></div><div class="mk-pbtn">Continue</div></div></div><div style="text-align:center;color:#64748b;font-size:10.5px;margin:8px 0">Step 1 of 1</div><div class="mk-nav on" style="font-size:11px"><span style="color:#64748b;width:12px">1</span>Daily vitals check</div></div></div></div></div><figcaption>Basics, with the participant preview on the right</figcaption></figure>

</li>
<li>

#### Add steps

Click **Continue to Steps**. Click a step in the **Step library** or drag it into the flow. Click a step to expand its settings, and drag the handle to reorder.

<figure class="shot">

![Steps with the Step library above a single column of expandable steps](https://presagetech.com/docs/essessment/assets/builder-steps-v4.jpg)

<figcaption>Steps: the Capture step expanded</figcaption>
</figure>

</li>
<li>

#### Review and publish

Click **Continue to Review**, fix anything under **Readiness**, then click **Publish activity**. Or click **Save as draft** to keep it hidden from participants.

<figure class="shot">

![Review and publish with participant flow and publish controls](https://presagetech.com/docs/essessment/assets/builder-review-v4.jpg)

<figcaption>Review &amp; publish</figcaption>
</figure>

</li>
<li>

#### Try it yourself

Run the activity in Coherence before you invite participants.

<figure class="shot phone">

![A scan in progress in Coherence with heart rate, breathing rate and waveforms](https://presagetech.com/docs/essessment/assets/scan-real.jpg)

<figcaption>A reading as participants see it (iPhone)</figcaption>
</figure>

</li>
</ol>

## Workflow

The builder has three stages, shown as tabs at the top: **Basics**, **Steps** and **Review**. Click a tab to jump to a stage, or use the buttons at the bottom: **Continue to Steps** and **Continue to Review** to move forward, **Back to Basics** to go back. The activity needs a name before you can leave Basics.

### Basics

What the activity is: **Details** (name, description, what happens at the end), **Appearance**, **Feedback**, and **Schedule and advanced settings**.

### Steps

The participant flow: the **Step library** on top, and your steps below in one column that expand in place.

### Review & publish

The participant flow, where the activity will appear, the readiness check, and the publish controls.

The top right shows whether your draft is saved, for example "Draft saved locally". The phone preview on the right follows you through every stage.

## Basics

The top of the page shows the activity's state, such as **Published · v0**, and its ID. "Published configuration · changes remain local until saved" means nothing changes for participants until you save.

<ul class="set"> <li><b>Preview:</b> open the participant preview.</li> <li><b>Duplicate:</b> copy this activity as a starting point for a new one.</li> <li><b>Save:</b> save changes to the published activity.</li> <li><b>Back:</b> return to the program.</li> <li><b>Section tabs:</b> jump to <b>Basics</b>, <b>Steps</b> or <b>Review</b>. Use <kbd>↑</kbd> <kbd>↓</kbd> to move between steps.</li> </ul>

### Details

<ul class="set"> <li><b>Name:</b> participants see this on their program page.</li> <li><b>Description:</b> a sentence or two on what the activity involves.</li> <li><b>When it ends:</b> <b>Return to the Home tab</b> in Coherence, <b>Start a new chat with results</b> (an AI chat in Coherence about the activity they just finished), or <b>Show the activity results</b>.</li> <li><b>Appearance › Button color:</b> colors the buttons and the breathing pacer.</li> <li><b>Feedback › Ask for feedback at the end:</b> participants rate the activity from 1 to 5 stars ("How was your experience?").</li> <li><b>Schedule and advanced settings:</b> scheduling, reminders, category and completion settings. See <a href="https://presagetech.com/docs/essessment/activity-builder#appearance-and-advanced-settings">Appearance and advanced settings</a> below.</li> </ul>

**How is it run?** and **Cloud recordings** are hidden for launch. Cloud recording shows only for activities with a Stream step.

### Participant preview

The phone on the right shows a simulation of the selected step, built from the same elements as the app, so you can check the flow before you publish. Use the arrows to move through steps, the play button to run through the flow, and **Hide** to make more room.

## Steps

The Steps stage shows the **Step library** at the top and your steps below it in a single column. Click a step to expand its settings in place, and click it again to collapse it. Results from readings flow automatically to the steps that follow them, so a Summary after a Capture shows that Capture's readings.

The status bar at the bottom shows **Everything looks good** when the flow is valid. See [Step types](https://presagetech.com/docs/essessment/step-types) and [Capture step](https://presagetech.com/docs/essessment/capture-step) for each step's settings.

## Review & publish

Review & publish shows, from top to bottom:

<ul class="set"> <li><b>Participant flow:</b> every step as a phone thumbnail, with an estimated length such as "about 4 minutes".</li> <li><b>Publish:</b> the activity's status (for example "Draft · not visible to participants yet"), where it will appear (its program, with <b>Change</b>), and its length.</li> <li><b>Readiness:</b> the checklist below. A failing item has a <b>Fix</b> button.</li> <li><b>Action bar:</b> <b>Publish activity</b>, <b>Save as draft</b> and <b>View JSON</b>. When you edit an activity that's already published, <b>Publish activity</b> reads <b>Save changes</b>.</li> </ul>

Once published, the activity is live for the program's participants, based on the program's visibility.

### Readiness checklist

"Ready to publish?" lists every check. A green tick passes, an empty circle doesn't apply to this activity, and a red mark blocks publishing.

<div class="tw">

| Check | Passes when |
| --- | --- |
| Name | The activity has a name. |
| Steps | The activity has at least one step. |
| Summary | Participants will see a summary at the end. |
| Summary reading | The summary has a reading before it. |
| Summary measures | The summary has measures to show. |
| HRV reading | Applies only when HRV is turned on for a reading. |
| Live stream | Applies only to activities with a Stream step. |
| Summary configuration | Summary sources and actions are valid. |
| Media analysis | Applies only when there is a Media review step. |
| Question steps | Applies only when there are standalone questions. |
| Capture Questions | Applies only when Capture Questions are on. |
| Imported activity validation | The activity's saved settings are valid, for example colors in hex format. |
| Program | The activity is attached to a program. |

</div>

<figure class="shot">

![Readiness checklist with a blocking item](https://presagetech.com/docs/essessment/assets/review-checklist-v3.jpg)

<figcaption>A blocking item stops Save changes. You can still save a draft.</figcaption>
</figure>

### Publish controls

<ul class="set"> <li><b>Publish activity:</b> makes it live for participants. Disabled while anything is blocking.</li> <li><b>Save as draft:</b> saves without showing it to participants.</li> <li><b>View JSON:</b> shows the full configuration. See <a href="https://presagetech.com/docs/essessment/activity-builder#import-and-export-json">Import and export</a> below.</li> </ul>

## Start from a template

Begin a new activity from a ready-made flow and adjust it.

When you add an activity, you can start from scratch or pick a template. Templates fill in the steps and settings for common activities.

<div class="tw">

| Template | Good for |
| --- | --- |
| Daily vitals check | A 60-second camera reading with results at the end. Welcome, Reading, Results. About 3 minutes. |
| Guided breathing | Box breathing with a calm animated pacer, then a heart-rate result. About 3 minutes. |
| Live session (operator-led) | A specialist joins it live from Liveline while the participant streams. About 4 minutes. |
| Check-in with questions | Short questions during the capture, scored in the summary. About 5 minutes. |
| Start from scratch | Add only the steps you need. |
| Import JSON | Bring in a flow definition to edit. |

</div>

Templates are editable. Add, remove or reorder steps next.

<figure class="shot">

![Create an activity with the program, templates, build your own options and the participant preview](https://presagetech.com/docs/essessment/assets/create-activity-v4.jpg)

<figcaption>Create an activity</figcaption>
</figure>

## Schedules and reminders

Set when participants are due to do an activity, and remind them when it's time.

### Where to find it

In the Activity Builder, open **Basics › Schedule and advanced settings** and go to **Schedule**. The top line summarizes the current setting, for example "Due every day, once any time of day."

<figure class="shot">

![Schedule settings](https://presagetech.com/docs/essessment/assets/builder-schedule-v3.jpg)

<figcaption>Basics › Schedule and advanced settings › Schedule</figcaption>
</figure>

### Settings

<ul class="set"> <li><b>How often:</b> <b>Daily</b>, <b>Some days</b>, or <b>On demand</b> (no due dates).</li> <li><b>When in the day:</b> <b>Times of day</b> or <b>Set times</b>. The times of day are Morning (6 am to 12 pm), Afternoon (12 pm to 6 pm), Evening (6 pm to 10 pm) and Anytime.</li> <li><b>Times per time of day:</b> how many runs are due in each chosen part of the day.</li> <li><b>Session length:</b> <b>Minimum collection</b> (seconds) and <b>Duration</b> (minutes). </li> </ul>

### Reminders

Turn on **Send reminders** to remind participants when the activity is due. Choose **Push** or **Email**, and set a **Reminder title** and **Reminder message**. Reminders are sent at the scheduled times.

The **Participants can change this schedule** option is marked **Coming soon**, so participants can't change their own schedule yet.

## Appearance and advanced settings

Button color, activity metadata, defaults, and what happens when the activity ends.

### Appearance

Choose a **Button color** from the swatches or enter your own. It colors buttons and the breathing pacer. The Coherence app keeps its own paper background.

<figure class="shot">

![Appearance](https://presagetech.com/docs/essessment/assets/builder-appearance-v3.jpg)

<figcaption>Appearance</figcaption>
</figure>

### Activity metadata

<ul class="set"> <li><b>Category label:</b> Wellness, Assessment, Stress, Fitness, Training or Analysis. Live and media steps set their own category when you save.</li> <li><b>Tags:</b> comma-separated, for example <code>breathing, stress, recovery</code>.</li> <li><b>Icon name</b> and <b>Icon library:</b> the activity's icon. </li> <li><b>Primary, Secondary and Background color:</b> hex values such as <code>#3B82F6</code>. Use 3, 4, 6 or 8 hex digits after <code>#</code>, or the activity won't pass validation.</li> </ul>

<figure class="shot">

![Activity metadata and defaults](https://presagetech.com/docs/essessment/assets/builder-metadata-v3.jpg)

<figcaption>Activity metadata and defaults</figcaption>
</figure>

### Activity defaults

<ul class="set"> <li><b>Measurement duration</b> and <b>Countdown:</b> in seconds.</li> <li><b>SDK mode:</b> CONTINUOUS, SINGLE or SPOT.</li> <li><b>Delivery mode:</b> On their own, or Run live by an operator.</li> </ul>

### Completion and access

<ul class="set"> <li><b>After this activity ends:</b> same options as <b>When it ends</b> in Basics.</li> <li><b>Show activity dashboard:</b> include this activity in the participant dashboard.</li> <li><b>Ask for feedback at the end:</b> participants rate the activity from 1 to 5 stars after they finish.</li> <li><b>Activity is active:</b> inactive activities stay saved but aren't offered to participants.</li> <li><b>Completion labels:</b> set the completion title and both subtitles together to replace the defaults. Saving needs all three or none.</li> </ul>

<figure class="shot">

![Completion and access](https://presagetech.com/docs/essessment/assets/builder-completion-v3.jpg)

<figcaption>Completion and access</figcaption>
</figure>

## Import and export (JSON)

Copy an activity's full configuration, or bring one in.

### Export

On the Review stage, click **View JSON** to see the activity's full configuration.

### Import

When you create an activity, choose **Import JSON** under **Build your own** to start from a flow definition, for example one Presage support sent you.

## FAQ

<details class="faq"><summary>Why is Publish activity greyed out?</summary><div>

Either there's a blocking item under Readiness, or nothing has changed since the last save. The bar at the bottom of every stage names what to fix, with a **Fix this** button.

</div></details>

<details class="faq"><summary>Do participants see my edits while I work?</summary><div>

No. Drafts stay private to your team until you publish.

</div></details>

<details class="faq"><summary>How long will my activity take?</summary><div>

Review shows an estimate at the top of the participant flow, for example "About 4 minutes".

</div></details>

<details class="faq"><summary>I see "Imported activity validation" errors. What do I fix?</summary><div>

A saved setting is in the wrong format. The most common cause is a color that isn't a hex value like `#3B82F6`. Check the colors in [Schedule and advanced settings › Activity metadata](https://presagetech.com/docs/essessment/activity-builder#activity-metadata).

</div></details>
