Skip to main content

User sequences

A user sequence is one sequence given to one participant: what puts an item on their home screen. It carries its own schedule, its surface and how it behaves, and the responses submitted against it.

Where one comes from​

  1. A journey, from a createUserSequence action. Almost all content arrives this way.
  2. A member of staff, assigning a sequence to the participant; the user sequence records who (coachId), which gives it its own surface and credit.
  3. The participant, starting a sequence from Explore: one with explore: shown, or one belonging to a journey they are enrolled in.

There is no setting that puts something on everyone's home screen: to give a group the same item, put it in a journey they are all on. Only a published sequence can be assigned (sequence_not_published).

Behaviour​

Each flag is taken from the assignment, else the sequence's default, else the platform's:

FlagGovernsPlatform default
persistentA submitted item stays with a tick, or leavesfalse
revisableA submitted response can be changedtrue
closableThe participant can back out without submitting. false is a blocking screen, such as consenttrue
dismissableThe participant can hide the item (a long press)false
unscheduledSubmissionExtra responses outside the schedulefalse
autoOpenOpens by itself when the app is next opened; it still sits on the home screenfalse

Every flag works per occurrence. A submission seals its own occurrence and touches no other; dismissing hides one occurrence, not the next. The flags can be changed on a live user sequence, and the responses stay. A one-off is a matter of the schedule (once, or end.maxResponses: 1), never of the flags: a recurring schedule always comes back.

Why an item isn't there​

An item shows while one of its occurrences is due and the user sequence is active. It leaves when:

  • today isn't one of its days (the schedule), or its start hasn't come;
  • it was submitted and isn't persistent (it returns at its next occurrence);
  • it was dismissed (dismissal wins over persistent);
  • its schedule ended, by date or by maxResponses;
  • it is paused: nothing is due and no reminder goes out until it is active again, and its History skips the pause;
  • its status is completed or archived, which ends every future occurrence too.

A schedule set explicitly to null means one occurrence, due until submitted or dismissed; leaving the key out takes the sequence's default. An item whose sequence hasn't reached the phone yet draws a disabled "unavailable" row until it syncs.

Responses​

A response is filed against the occurrence it belongs to, and the time it was given is kept separately, so a Tuesday check-in answered on Friday sits on Tuesday. Anything unresponded can be answered late from the History screen, and a journey moves when the late response arrives. Submitting is idempotent by the response's id, and responses are added, never overwritten. Each records the sequence version that scored it. Dismissing is not responding: a dismissed occurrence still counts as unresponded.