Inviting members
Branded ZeptoMail invite with single-use, time-limited token. Accept link mints membership; survives OAuth round-trip. Federated-Google email-mismatch handled.
On a Team plan, an admin can invite a new member by email.
Flow
- Admin enters an email in Manage team → Invite.
- ShellYard generates a single-use, time-limited invite token.
- ZeptoMail delivers a branded invite email with the accept link.
- Recipient clicks the link, lands on
/account?invite=<token>. - If signed in, the accept call fires immediately. If not, the invite token is pre-stashed in localStorage and survives the OAuth round-trip.
- Backend mints membership, sets
custom:org_idandcustom:org_role=memberon the recipient’s Cognito user.
Edge cases handled
- Email mismatch — the recipient signs in with a different email than the invite. Returns
email_mismatch; the UI explains. - Expired — invite tokens have a TTL. Expired returns
invite_expired; admin can re-issue. - Already a member — the API short-circuits.
Internal name is Org (post-rename); user-visible copy says Team.