Sessions (Library)¶
A session is a single guided activity in the Library tab. It can be a narrated audio track, a breathing exercise, or one of several short interactive exercises. Sessions are also what most Coach cards launch.
See The authoring model for the universal rules (parent + translations, status, slugs, validation, assets). This page covers what's specific to sessions.

Parent fields (language-independent)¶
You set these once on the session, regardless of language:
| Field | What it means |
|---|---|
| Slug | Stable id, e.g. body-scan-standard. Permanent once published. |
| Template type | What kind of session this is — see the table below. Determines the content form and the player. |
| Category | One of: sleep, focus, thoughts, social, understanding, relaxation. Used for grouping/filtering. |
| Program week | 1, 2, or 3 — which week of the program this belongs to. |
| Segment affinity | acute, habituation, or both — which user journey this suits. |
| Pain points | One or more of sleep, concentration, emotional, social — what it helps with. |
| Tier | free or premium. Premium sessions are gated behind the subscription. |
| Image | The session's artwork (an image asset). Shown on the Library card and player. |
Translation fields (per language)¶
| Field | What it means |
|---|---|
| Title | The session name shown on the card and player. |
| Content | The structured body — its shape depends on the template type (the form adapts). See below. |
| Why this works | 2–3 short heading + body pairs explaining the evidence/rationale. Shown in the session detail. |
| Citation | Optional source reference. |
| Audio | The voice/audio track (an audio asset), for templates that have audio. |
| Transcript | The timed caption track for narrated audio — a list of {timestamp, text} lines. Powers the captions toggle in the audio player. Only audioGuided sessions show a transcript (the breathing screen is a pacer, not a caption view). |
| Duration | Filled from the audio length where there's audio; otherwise estimated from the content. |
Template types¶
The template type decides the player and the shape of the content form.
| Template | What the user does | Audio? | Notes |
|---|---|---|---|
| audioGuided | Listens to a narrated practice (e.g. body scan, PMR). | Voice track | Has a transcript (captions). Content is short copy (description + image alt text). |
| breathing | Follows a visual pacer ring + spoken cues for a breathing pattern. | Intro + loop + outro | Content holds the pattern (phases × seconds) and default round count. See "Breathing" below. |
| chipExercise | Taps through prompt "chips" — a quick guided micro-exercise. | No | Content holds the prompts/steps. |
| valuesSort | Sorts values cards to clarify what matters. | No | An ACT-style exercise. |
| experiment | Runs a short behavioural experiment over a set time. | No | Content holds the setup + a duration. |
| insight | Reads a short psychoeducation insight. | No | Content is the insight body. |
| reframe | Reframes an unhelpful thought. | No | A CBT-style exercise. |
| sentenceCompletion | Completes guided sentence stems. | No | Reflective writing prompts. |
When you pick a template type, the content form changes to match it, and the
save-time check (session-content-validate) ensures the content fits that
template. If you change a session's template type, re-check the content matches
the new template — the form will tell you if it doesn't.
audioGuidedcontent is intentionally light (just description + image alt) — the real "content" is the audio + transcript. The other templates carry their structure in the content form.
Breathing sessions in particular¶
A breathing session's content holds a pattern — a list of phases, each with a number of seconds:
inhale— breathe inhold_full— hold with full lungsexhale— breathe outhold_empty— hold with empty lungs
…plus a default number of rounds. For example, the classic 4-7-8 is
inhale 4s → hold_full 7s → exhale 8s; box breathing is inhale 4 →
hold_full 4 → exhale 4 → hold_empty 4.
A breathing session has three audio pieces (produced by the audio tooling, not hand-recorded for the test content): a spoken intro before the rounds, a looping pacing cue track during the rounds ("inhale / hold / exhale", per-language), and a spoken outro after. As an editor you mainly set the pattern, the title, and the why this works.

What blocks a save / publish¶
- Content that doesn't match the template type.
- A missing image, or an audio/image asset that doesn't resolve (blocks publish).
- Renaming the slug while a translation is published.
Where it shows up¶
A card in the Library tab (artwork + title + duration), opening the matching
player: the audio player (with captions) for audioGuided, the breathing pacer for
breathing, or the interactive screen for the exercise templates. Coach
session_cards also launch sessions by slug — see
Coach Conversations.
See also¶
- Field-by-field reference: breathing in the content-block reference (and the other session templates: chipExercise, experiment, insight, reframe, sentenceCompletion, valuesSort)