Invite User to Tenant
MVP2 Constraints
Section titled “MVP2 Constraints”- Any user of a tenant can send an invitation.
- The system does not send the email automatically; it provides a sample message with an invitation link that the user sends manually.
Requirements
Section titled “Requirements”For any tenant user
Section titled “For any tenant user”- Create an invitation to a user (identified by email) to join the tenant.
- View all invitations sorted by creation date (descending), filterable by status (PENDING, ACCEPTED, EXPIRED, REJECTED, ARCHIVED) with pagination.
- Cancel an invitation in
PENDINGstatus. - Reopen an invitation in
CANCELLEDorREJECTEDstatus, returning it toPENDING. - Archive an invitation from any status, moving it to
ARCHIVED. - Refresh an invitation in
PENDINGstatus, updating itsinvitationDateto the current date and time and itsexpirationDateto the current date and time plus the configured expiration interval.
For the invitee
Section titled “For the invitee”- Accept the invitation (joining the tenant).
- Reject the invitation.
For the system
Section titled “For the system”- Provide the invitation as a link encoding the invitation identifier and (for convenience) the invitee’s email.
- Validate the invitation:
- Exists
- Is in
PENDINGstatus - Is addressed to the logged-in user
Invitation Entity
Section titled “Invitation Entity”| Field | Type | Default | Editable | Description |
|---|---|---|---|---|
invitationDate | Date | Created at | No | Date invitation was created |
expirationDate | Date | invitationDate + configurable interval | No | Expiry date |
status | Enum | PENDING | No | Current lifecycle status (PENDING, CANCELLED, REJECTED, ACCEPTED, ARCHIVED) |
invitee | String | Blank | Yes | Email of invited user |
inviterId | UUID | Current user id | No | ID of inviting user |
tenantId | UUID | Current tenant id | No | Tenant being invited to |
Invitation Lifecycle
Section titled “Invitation Lifecycle”Sequence Overview
Section titled “Sequence Overview”- Inviter creates invitation via the Organization Page.
- System registers a
PENDINGinvitation and returns an invitation URL. - Inviter shares the URL (email, message, QR code).
- Invitee opens the URL, signs in or creates an account if needed.
- System validates the invitation.
- On accept: a new
AgentForis created linking the invitee’s UserAccount to the tenant; invitation transitions toACCEPTED. - On reject: invitation transitions to
REJECTED.
Copyright: © Arda Systems 2025-2026, All rights reserved