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
status | Means |
|---|---|
invited | Sent. The link works for 14 days. |
accepted | The 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. |
claimed | Their first sign-in made the membership, with the role named, and started a participant on the default journeys. The link is spent. |
revoked | Cancelled by an admin. The row stays as the record. |
expired | Worked 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.