Skip to main content

Create/Edit Batch

This page documents the Manage batch screen in the platform (ManageBatch): create or open a batch under a program configuration, adjust batch-level settings and session dates, configure surveys (when enabled at program level), and publish or unpublish (Team Learning).


Access and routing​

  • The page requires authentication (requireAuth).
  • Only Team Sales or Team Learning users may use it; others are redirected to the dashboard.
  • If the program configuration context is missing (configurationId empty), the user is redirected to the module catalogue step.
  • On load, the app loads the program configuration for configurationId and the batch for batchId when the configuration is available.

Header and navigation​

ElementBehaviour
BackResets in-memory batch state and navigates to /growthkit/configurations/:configurationId.
TitleShows the batch title when set; otherwise falls back to the program configuration title.
Updated atDisplays the batch updatedAt timestamp (localized).
PublishedWhen publishedAt is set, a green check and “published” label appear.

Actions by role​

Team Learning​

ActionNotes
Manage participantsNavigates to /growthkit/configurations/:configurationId/batches/:batchId/participants. Disabled when there is no batch or batch id is new. Detailed page: Manage Participants.
Publish batchOpens a confirmation modal. Disabled while an operation is in progress, when the configuration is not confirmed (programConfiguration.json.confirmed), or when the batch is still new. Tooltip explains when publish is blocked due to unconfirmed configuration.
Unpublish batchShown when the batch is published; confirmation modal; disabled while an operation is in progress.

Team Sales and Team Learning​

ActionNotes
Save draftShown when the batch is not yet persisted (!batch?.id). If the program configuration has a HubSpot deal (hubspotDealId), a modal offers add to configuration vs create new deal before creating the batch; otherwise the batch is created directly.

Program information​

Read-only and editable fields are mixed in one block.

Field / controlEditableNotes
Number of participantsNoDisplays count from participant data when loaded; shows zero / “not assigned yet” when empty.
Batch sizeNoTaken from program configuration batchSize.
Participants per group (groupSize)Yes, unless batch is publishedSee Participants per group and peer practices.
SSO (isSSO)Yes, unless publishedToggle with enabled/disabled label; persists when batch exists. Unrelated to group sizing.

Individual coaching budget is shown read-only from the program configuration (individualCoachingBudget).


Participants per group and peer practices​

Participants per group (batch field groupSize, label Participants per group in Batch settings) defines how many learners belong to one learning group within the batch. Together with the program’s planned batch size, it determines how many groups exist (typically named Group A, Group B, Group C, … on the participants screen) and—when the program includes peer practices—how many Peer Practice sessions are created per module on this batch.

Fields on the screen​

FieldEditableRole in group sizing
Number of participantsNoCount of learners already assigned to this batch. Informational; does not drive peer-practice recalculation.
Batch sizeNoPlanned capacity from the program configuration (batchSize). Used as the divisor basis for group count and peer-practice session count.
Participants per groupYes (until published)Maximum learners per learning group (groupSize). Changing it recalculates peer practices immediately in the UI and saves when the batch already has an id.

If participants per group is empty on a new batch, the UI defaults to ceil(batch size ÷ 2) until you set an explicit value.

How many groups?​

The platform derives the number of learning groups as:

number of groups = ceil(batch size ÷ participants per group)

Each group is used for peer-practice scheduling and participant assignment (Group A, B, C, …). The smallest allowed participants per group is 1.

Example (batch size 12):

Participants per groupGroupsGroup labels
62A, B
53A, B, C
43A, B, C

Effect on peer practice sessions​

Recalculation runs only when:

  • The program configuration has a batch size, and
  • The batch has participants per group set, and
  • At least one batch module already contains Peer Practice sessions (copied from the program).

For each module that has peer practices, the platform sets the batch’s peer-practice count to:

peer practice sessions in module =
(peer practice sessions defined for that module in the program)
× number of groups

So each learning group gets one peer-practice slot per peer-practice type configured on the program. Adding or removing groups by changing participants per group adds or removes Peer Practice rows on the batch (via setupBatchPeerPractices in the platform) before the batch is saved.

Example (batch size 12, one Peer Practice per module in the program):

Participants per groupGroupsPeer Practice sessions per module
62 (A, B)2
53 (A, B, C)3

If a module defines two Peer Practice session types at program level, the same batch with 12 participants per group 6 would get 4 peer-practice sessions in that module (2 types × 2 groups).

When recalculation runs​

TriggerBehaviour
Change participants per groupRecalculates peer practices in memory, then persists the batch if it already has an id.
Change module session dates on the schedulePeer practices recomputed and batch saved (see Program schedule).
Save draft (create batch)Initial batch is created with peer practices aligned to configuration.

Constraints​

  • Published batches: Participants per group and SSO are disabled; values cannot be changed after publish. See Batch UI locking.
  • Programs without peer practices: Changing group size still updates groupSize on the batch; modules without Peer Practice types are unchanged.

Program time period​

ControlBehaviour
Start dateDate picker bound to batch startDate. When the batch is persisted, changes are saved immediately. Disabled when the batch is published.

Survey configuration (batch level)​

Survey configuration is documented as a standalone feature:

In this page, this section is intentionally kept short and serves only as the integration point within the broader Create/Edit Batch flow.


General information​

If the program configuration defines generalInfo, a read-only card shows that text (whitespace preserved).


Program schedule​

ElementBehaviour
ShareOpens the public batch sessions/info URL in a new tab (/growthkit/configuration/:batchId/info), when the share URL is set and configurationId is a valid UUID.
KickoffIf the batch has a kickoffSession, GrowthKitKickoffCard is shown: overall card is not “content editable”, but session date can be updated; comment editing is off. Updates go through batch update.
ModulesFor each batch module, GrowthKitModuleCard lists sessions. Module reorder/delete and many session-type controls are off; session dates can be edited. After session changes, peer practices are recomputed and the batch is saved.
Request datesOpens GrowthKit request dates modal. Enabled only when there is at least one coach appointment with status planned; otherwise the button is disabled. Full flow: Coach Appointment Date Requests.

Modals​

ModalTriggerPurpose
PublishPublish batchConfirms publish; calls publish batch action.
UnpublishUnpublish batchConfirms unpublish; calls unpublish batch action.
Save batch draftSave draft when HubSpot deal existsChoose adding to configuration vs creating a new deal, then create batch.
Request datesRequest dates buttonCoach date request flow; closes on success or abort. Full flow: Coach Appointment Date Requests.

Loading state​

While batch operations run, operationInProgress is true and a loader is shown (fixed position).



TopicStatus
Dedicated process docs (draft save, survey autosave, unpublish, coach date request)Processes hub — program configuration & batches; PLACEHOLDER — planned. First-class YAML pages for each subflow when manifests exist.