> ## Documentation Index
> Fetch the complete documentation index at: https://help.doozy.live/llms.txt
> Use this file to discover all available pages before exploring further.

# Cohort Programs

> Create a cohort program and manage it: membership, schedule, channel, tracks, people, pausing, and archiving.

A **cohort program** describes how your cohorts form and what they get: who
joins each cohort, whether each cohort gets a Slack channel, who facilitates,
and which tracks run. You create it once, and Doozy creates the cohorts.

## Create a program

Open **Cohorts** in [doozy.live/app](https://doozy.live/app), click **New cohort
program**, and fill in four sections: **Name**, **Members**, **Start time**, and
**Slack channel**.

<Note>
  Workspace admins and managers can create a cohort program. As its creator, you
  become the program's admin. Who else can see and manage it is decided per
  program, on its [People list](#people).
</Note>

### Name

Name the program after what it runs, like "Engineering onboarding". Cohorts
inside it are named for their start date, so the hierarchy reads: Cohorts →
Engineering onboarding → Jul 14, 2026.

### Members

* **By start date**: Doozy creates cohorts on a schedule and fills each one with
  the people whose start date falls in its range. You set the rhythm as a
  sentence: "Create a new cohort every *day / week / 2 weeks / 4 weeks*,
  starting *Monday*". The day you pick is each cohort's first day.
* **Add manually**: you create each cohort yourself, setting its start date and
  when **Intake ends**, and add its members.

Start dates come from your connected HRIS, or from Slack join dates when no HRIS
is connected. Both work, but an [HRIS
connection](/integrations/how-to-connect-my-hris) makes the grouping match real
start dates instead of Slack activity.

**Edit cohort program** can switch between the two later. Going manual stops
cohorts filling from start dates and keeps everyone already placed; going back
resumes filling on your original cadence. Neither churns a started cohort.

### Start time

Pick the time and timezone each cohort starts (9:00 AM by default). This is the
cohort's one clock: on the first day of its dates, at this time, the channel
opens, the cohort track runs, and each person's per-person tracks begin. It
applies even to a program with no channel.

### Slack channel

| Option                                 | What happens                                                                                                                                                                                                                                               |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **No channel**                         | No channel at all. Cohort tracks still run, and per-person tracks DM each person.                                                                                                                                                                          |
| **Create automatically** (recommended) | Doozy creates a fresh channel for each cohort when it opens, from a name template seeded from the program's name (`engineering-onboarding-{date}`) and previewed live. Tokens, in the program's timezone: `{date}`, `{month}`, and `{name}` or `{cohort}`. |
| **Link existing**                      | Each cohort's members and facilitators are invited into a channel you pick, which Doozy never archives. @Doozy must already be in it; the dialog checks and prompts you if not.                                                                            |

<Info>
  The two channel options need Slack channel-management permissions. Without them
  both are disabled, with a prompt to [update
  Slack](https://doozy.live/app/update-slack). Everything else works with **No
  channel** in the meantime.
</Info>

## Draft and activate

A new program starts as a **Draft**: no cohorts are created and nothing is
posted. On a **By start date** program the draft's [schedule](#the-schedule) is
already laid out on your chosen rhythm, so you can reshape the dates first.

A program admin then clicks **Activate**, and Doozy starts forming cohorts.
Activating is one-way: to take a live program offline later,
[pause](#pause-resume-and-archive) it rather than returning it to draft.

## The program page

Each program's page is headed by a strip showing the cohort that matters right
now: the active one ("Now") or the next one forming ("Next"), with its start
date, people count, channel, and opening time.

### Tracks

Tracks are listed in two groups, **Cohort track** and **Per-person track**, with
drafts and paused tracks showing their state inline. This is the only way to
make a cohort track (see [Cohort](/tracks/triggers/cohort)), and each group
offers two ways to add one:

* **Create a cohort track** / **Create a per-person track** opens the track
  editor with a blank track, already wired to the program and run mode.
* **Import an existing track** copies one of your existing, non-archived,
  non-cohort tracks into a new draft attached to this program and run mode,
  and opens the copy in the builder. The original track is never changed.
  Steps that don't fit the run mode, such as Introductions or Tasks in a
  once-per-cohort track, are kept but flagged as invalid until you fix or
  remove them (see [Cohort](/tracks/triggers/cohort)). Import is unavailable on the Cohort
  track card once the program already has one.

Editor access on the program covers managing its tracks, but activating one
still needs a workspace admin or manager.

### The schedule

On a **By start date** program the schedule table is the plan itself: one row
per cohort, soonest first, each owning a range of start dates.

| Column      | What it shows                                                                                                                                                                   |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Cohort**  | Named for its start date, the day it starts at the [start time](#start-time)                                                                                                    |
| **Dates**   | The cohort's own range. It starts on the first day, and intake closes at the end. After a removed week, it also takes the joiners from that gap, which the gap band spells out. |
| **People**  | A count with a preview of faces. A cohort that exists shows its real roster; before that, the row predicts from known start dates.                                              |
| **Status**  | **Scheduled** until it starts, **Active** while it runs, **Done** once finished or its dates have passed                                                                        |
| **Channel** | The cohort's Slack channel, grayed out before it opens to show the name it will take                                                                                            |

Doozy lays the schedule out about two years ahead on the program's rhythm, so
you can see and reshape far-future dates, and creates the actual cohorts only as
they approach. Dates here, and everywhere else in cohorts, are shown in the
program's timezone. An **Add manually** program has no generated schedule; the
table lists the cohorts you created.

#### Who lands where

A person joins the cohort whose dates cover their start date, including someone
who arrives later, such as a new hire synced from your HRIS or a start-date
correction. If that cohort is **Active** they join late and catch up. If it is
already **Done** they fall forward to the next cohort: they join it right away
if it is already running, and otherwise are in no cohort until its start day
arrives and it forms.

A cohort with nobody in it never opens: no channel, no cohort track, and it is
archived once its dates pass. On a weekly rhythm with sparse hiring, expect
quiet weeks to pass without a channel.

### People

The **People** list controls who can see and manage the program. Access is per
program: apart from workspace admins, who see everything, a person sees only the
programs they've been added to.

| Role       | What they can do                                                                                       |
| ---------- | ------------------------------------------------------------------------------------------------------ |
| **Viewer** | See the program, its cohorts, each roster, and each person's progress                                  |
| **Editor** | Plus edit settings and the schedule, manage members, pause and resume, and manage the program's tracks |
| **Admin**  | Plus **Activate** the program, create cohorts, manage the People list, and archive the program         |

A program always keeps at least one admin, so you can't remove or demote the
last one. When the program has a channel, each row also has an **In channel**
toggle that adds that person to each cohort's Slack channel as a
[facilitator](/cohorts/facilitators). The people picker defaults a new person to
a viewer who's in the channel.

## Edit the schedule

Editors reshape a **By start date** schedule in the table. Click a cohort's
**Dates** cell to open a calendar popover, pick its first and last day, and
save.

Cohorts can never overlap. Extending a cohort *into* a neighbor trims that
neighbor so the two abut, and a neighbor the new dates cover completely is
folded in. Shrinking a cohort *away* from its neighbor leaves a gap instead, and
start dates in a gap fall forward into the next cohort, so nobody is left
without one. Moving a cohort's **first day** moves its whole clock, so its
channel opens and its tracks start on the new day.

Changing a boundary re-homes the people whose start dates cross it: they join
the cohort that now covers their date, and their per-person onboarding restarts
on that cohort's clock. If Doozy opened a channel for the cohort they left, they
are removed from it; a channel you linked yourself is never touched. The popover
states who the new dates cover and names any cohort they would fold in.

| Action            | What it does                                                                                                                                                                                                                                                                                                                                                                     |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Remove cohort** | Takes that cohort out, a holiday week for example, so no channel opens and no cohort track runs for it. Its start dates, and anyone already on it, fall forward into the next cohort. A gap band takes its place, naming the dates it covers and the cohort those joiners will go to. Not offered on the last cohort in the schedule, which has no successor to hand joiners to. |
| **Add cohort**    | On a gap band, puts back the span that band covers. Two removed weeks side by side share one band, so adding it back makes a single cohort spanning both, and a band straddling today starts from today.                                                                                                                                                                         |

**Add a cohort**, on the Cohorts card above the schedule, creates a one-off
cohort with its own start date and **Intake ends**. It needs program admin
access, and its picker disables every day an existing cohort already owns, so on
a **By start date** program there is only room inside a gap. It defaults to the
first free day from today with a seven-day intake, shortened if the next cohort
starts sooner.

<Note>
  People you added by hand stay put whatever the dates do around them. The one
  exception is removing the cohort they're on: they move forward to the cohort
  taking over those dates, and restoring the week does not bring them back. People
  matched by start date are reclaimed by a restored week, since they're matched on
  date rather than pinned to a cohort.
</Note>

### What can't change

A cohort that has already started, running or done, can't have its dates changed
and can't be removed. If you catch a cohort in the minute it is opening, the
edit is refused rather than half-applied. Try again shortly.

### Changing the rhythm

Changing the **cadence or start day** re-lays the upcoming schedule, and Doozy
warns you first. Cohorts that have already started, and weeks already past, keep
their dates; edits you had made to upcoming cohorts, including removed weeks,
are re-laid onto the new rhythm. The channel choice can also be edited, and
applies to cohorts that haven't opened yet.

## Pause, resume, and archive

Editors can **Pause** a program from its page. While paused:

* No new cohorts are created, and any cohort that hasn't opened yet waits
* Cohorts already running are **not** held. Their channels stay open and their
  content keeps delivering.
* People whose start date falls during the pause aren't added to a cohort.
  Resume before their start date, or add them to a cohort manually.

**Resume** picks the schedule back up from now, without creating cohorts for
periods that fully passed. To cancel one specific upcoming week, [remove it from
the schedule](#edit-the-schedule) instead.

A program admin can **Archive** a program that's done for good. Archiving is a
permanent pause: no new cohorts are created and upcoming ones won't open, but
cohorts already running keep delivering. The program leaves the **Programs**
list, though its page stays reachable from its running cohorts. Archiving isn't
deletion: open the page and **Restore** it.

## When something goes wrong

| What happened                                                                                                      | What you see                                                                                                                                            | What to do                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| A cohort couldn't open, or opened but couldn't start its cohort track                                              | A **Needs attention** chip in the cohort lists, and an error banner with the reason on the cohort's page                                                | Fix the cause, for example by [updating Slack](https://doozy.live/app/update-slack), then click **Retry** on the cohort's page. Needs editor access. |
| A person's enrollment couldn't start, because they never connected to Slack in time or enrolling them kept failing | A warning on their roster row explaining why                                                                                                            | Remove and re-add them to retry                                                                                                                      |
| One person couldn't be invited to the channel, such as a deactivated account or a restricted guest                 | A note on their roster row                                                                                                                              | Nothing. They aren't dropped, and their tracks still run.                                                                                            |
| Nobody can be invited, because @Doozy was removed from the channel or the channel was archived or deleted          | A note on the roster rows of people joining an already-open cohort. If it happens at opening time the cohort simply fails to open, as in the first row. | Re-invite @Doozy, unarchive the channel, or relink the program                                                                                       |

Every row except the per-person invite refusal also DMs the program's admins and
facilitators. Workspace admins who aren't on the program's People list aren't
alerted.
