Skip to main content

Invitations

An invitation offers one address a place in a tenant, with one role (and, for a participant, an optional cohort). It is emailed as a one-time link; a practice system can also have one texted.

Its life​

statusMeans
invitedSent. The link works for 14 days.
acceptedThe person opened it; their account is ready at the identity provider, and the same link picks up where they left off. They are not in the tenant yet.
claimedTheir first sign-in made the membership, with the role named, and started a participant on the default journeys. The link is spent.
revokedCancelled by an admin. The row stays as the record.
expiredWorked out from the date, never stored.

Resending issues a new link and kills the old one at once; it revives an expired or undelivered invitation. Neither resend nor revoke works on a claimed one. Delivery is tracked apart from the lifecycle, in deliveryStatus, from the email provider's reports.

Rules​

  • One invitation per address per tenant (invitation_email_taken), and inviting someone who is already a member is refused (already_a_member). An invitation never moves anyone's cohort or role.
  • Inviting is how someone who already has an account joins another tenant; a sign-up code is for new accounts only. Their invitation names the tenant their account was made through, whose sign-in page they will see.
  • Bulk invitations (createManyInvitations) are participants only, whatever the file says, so a spreadsheet can never create a staff sign-in. A row's cohort code that matches nothing is skipped, and the row still lands with no cohort. A row whose address is already invited is counted as skipped, which makes a retry safe.
  • A staff invitation's email names the role and what it can see, so someone not expecting one can query it before they claim it.