Skip to main content

How the platform fits together

Every domain on the platform, in the areas this site and the API reference share. The name is the one the API uses; the sentence is the one its section in the reference opens with. A name links to its page here where it has more to say than the reference does.

The shape of it​

tenant ─── cohorts, configurations, roles
│
content │ a participant
─────── │ ─────────────
atoms ──┐ │ user ─── tags, groups, extras, relationships
▼ │ │
sequences ───────┼────────► user sequences ──► responses (scores, bands)
▲ │ ▲
journeys ────────┼────────► user journeys (the server runs them)
│ │ │
surfaces ◄───────┼──── where a user sequence shows on the home screen
│ │
│ biomarkers, chats, tasks (staff work)

Content is authored once per tenant: atoms are put on the pages of sequences, and journeys decide who is given which sequence and when. Giving a sequence to one participant makes a user sequence, placed on a surface of their home screen; what they submit against it is a response. Enrolling a participant in a journey makes a user journey, which the server runs on every input that concerns them (an answer, a change to their tags, groups, cohort or extras, a reading, a wait coming due) and which the apps predict offline. Journeys read a participant's attributes and responses through conditions, and act on them: assigning sequences, setting attributes, raising tasks for staff, sending messages.

Everything lives inside one tenant. A person is one identity across every tenant they belong to, and a user in each, with a role that decides what their session may do.

Content​

DomainWhat it is
atomsThe smallest piece of content: one question, one page of text, one picture or one exercise. Its type decides what a participant sees and what is stored when they respond.
sequencesAn ordered set of pages of atoms that a participant works through in one sitting, with optional scores that turn the responses into numbers and bands.
journeysA graph of nodes and transitions that decides what a participant is given next from what they did. The server runs every journey; the apps predict it.
surfacesA named, styled part of the participant's home screen. It decides where and how the user sequences placed on it appear, never what they are.
assetsA file (image, video, audio or document) that content, tenants and users reference by id. The bytes go straight to object storage; the API holds the record.
exploreThe Explore tab: the content a participant can browse and start themselves, in the tabs the tenant has laid out.
referencesWhat a condition or a {{ }} text can name in each place content is written: a participant's answers, scores, extras, signals and standing, with codes.
exportA portable file of chosen content and everything it depends on, with every reference written as a code rather than an id.
importReviews an exported content file against the active tenant, then applies it.

Participants​

DomainWhat it is
usersA person in a tenant, with a role: a participant using the app, a member of staff, or an API key's service account.
userSequencesA sequence assigned to one participant, with its schedule, surface and behaviour, and the responses submitted against it.
userJourneysA participant's enrolment in a journey: where they are in it, and the log of what it did.
userAtomsA single atom given to a participant on its own, outside a sequence, and the responses to it.
userBiomarkersReadings from the participant's phone health store, such as steps, heart rate and sleep, uploaded by sync.
chatsConversations between participants and staff.
devicesA participant's phone, registered so the platform can send it push notifications.
userCoachesThe staff who have assigned something to a participant.
userSmsMessagesThe text messages sent to a participant, and the participant's replies.
userEmailMessagesThe emails a journey sent a participant, or about them to staff.
userPushNotificationsThe push notifications a journey sent a participant.
userDataExportEverything the platform holds about one person, as one download.

Attributes​

DomainWhat it is
tagsLabels a tenant defines and puts on people. Journeys branch on them and add or remove them.
userTagsThe tags assigned to a person, assigned and unassigned one at a time. An outside system may assign them by its own id for each tag.
groupsSets of people a tenant defines. Journeys branch on membership, and some settings show an item only to members.
userGroupsThe groups assigned to a person, assigned and unassigned one at a time.
extrasCustom fields a tenant defines, each with a type, holding one value per person.
userExtrasOne person's values for the tenant's extras.
relationshipsKinds of relationship between a participant and the staff who look after them, each with default assignees. Journeys message and assign tasks by kind.
userRelationshipsA participant's assignee for a kind of relationship.

Staff work​

DomainWhat it is
tasksWork items for staff about one or more participants, with a status and an activity feed. Never seen by the participant.
userTasksThe tasks about one participant.
taskTypesA tenant's kinds of task, whose defaults fill a new task's empty fields.

Tenancy and configuration​

DomainWhat it is
tenantsOne organisation's own space on the platform: its people, content and settings, isolated from every other tenant's.
tenantTiersThe levels of the product a tenant can be on.
cohortsA named group of participants inside a tenant, with its own sign-up code. Journeys can branch on it.
invitationsAn offer to join a tenant with a role, sent to an address, which becomes a membership at the first sign-in.
configurationsPer-tenant settings, each a dotted code holding a JSON value, that switch features on and off or shape them.

Security and access​

DomainWhat it is
authSigning in through the identity provider, sessions, joining a tenant, and the second factors and sign-in methods a person holds.
identitiesOne person across every tenant they belong to. Their credentials live with the identity provider, never here.
rolesNamed sets of permissions, the same in every tenant. Each is a participant, staff or service role, and some require a second factor.
permissionsEvery permission code. A session's permissions are worked out from its role on every request.
apiKeysA credential for an outside system, which signs in as its own service account in the tenant.
userSessionsA person's sessions, for staff to see and end.
userSignInHow a person signs in, for staff to send them a way in or release a locked sign-in.

Integrate​

DomainWhat it is
webhooksSigned HTTPS requests the platform sends to an endpoint of yours when something you subscribed to happens.
bookingHands a participant to an outside booking service with a one-time token, which the service redeems. No clinical data is shared.
reportsReports embedded in the portal, one site per tenant and role, opened with a short-lived token.
userPracticeRecordsA participant's link to their record in their practice's management system.
userPracticeUploadsA participant's responses, filed to their practice's system as documents.
legalThe platform's privacy policy and terms of use.
systemWhether the API is up and can reach its database.