Launchpad user-invite email validation (1 email = 1 CID)
Jira: BIF-8826, BIF-8585 · Epic: BIF-8695
Overview
Enforce the 1 email = 1 CID rule at Launchpad user registration/invite by validating the email against Chat and CRM data, not only the Launchpad/Officeless scope. Today the check (BIF-5169) only looks within Launchpad/Officeless, so an email that exists only in the Chat DB or CRM DB slips through — e.g. an email already registered on a non-Qontak One CID can still be re-registered into a Qontak One CID. Several real cases have occurred.
This PRD consolidates two overlapping Jira stories: BIF-8585 (the original "Validate Launchpad User Invite" report) and its fuller specification BIF-8826. Original case: BIF-8559.
The same 1 email = 1 CID rule must also hold at the other entry point where an account is provisioned: the Moderator Panel create-account flow. Before an account is created, the Owner email must be validated against the CRM, Chat, and Launchpad user tables; if the Owner email is already registered to another CID, the create-account process fails.
Related: BIF-5169 (current Officeless email check), BIF-7124 (error message when email used in another CID), BIF-7712 / BIF-6272 (get-email-by-CID endpoints), BIF-3368 (prior real case).
Scope Changes
- Backend — validate the invited email against Launchpad, Chat DB, and CRM DB (not only Officeless scope) at registration; and validate the Owner email against the same three sources in the Moderator Panel create-account flow before the account is created.
- Frontend — surface a clear "email already used on another CID" error on the invite/registration flow and on the Moderator Panel create-account flow.
8. User Stories + Acceptance Criteria
| User Story | Importance | Mockup / Technical Notes | Acceptance Criteria |
|---|---|---|---|
| [LPEMAIL-S01] — Validate invite email across Chat & CRM (1 email = 1 CID) As an admin registering a user in Launchpad, I want the email validated against Chat and CRM data (not only Launchpad/Officeless), so that an email already used on another CID cannot be registered again — enforcing the 1 email = 1 CID rule. | Must Have | Extends the existing Officeless check (BIF-5169). Covers BIF-8585 + BIF-8826. Align error copy with BIF-7124. | — Happy Path — • AC-1: Given an admin registers a user in Launchpad, when the email is validated, then it is checked against Launchpad, Chat DB, and CRM DB (not only the Officeless scope). • AC-2: Given the email does not exist in any source, when the admin submits the registration, then registration succeeds as it does today. — Error / Unhappy Path — • ERR-1: Given the email is already registered on another CID (in Launchpad, Chat, or CRM) — including an email registered on a non-Qontak One CID being added to a Qontak One CID — when the admin submits, then registration fails with a clear message that the email is already used on another CID. — Guard-rail — • NEG-1: Given existing valid registration flows, when users are registered, then behaviour is unchanged except for the added Chat/CRM check (no regression). |
| [LPEMAIL-S02] — Validate Owner email on Moderator Panel create account (1 email = 1 CID) As a moderator creating a new account in the Moderator Panel, I want the Owner email validated against CRM, Chat, and Launchpad before the account is created, so that an Owner email already registered on another CID cannot provision a new account — enforcing the 1 email = 1 CID rule at the create-account entry point. | Must Have | Same 1 email = 1 CID rule as S01, applied at the Moderator Panel create-account flow (Owner email). Covers BIF-8585. Align error copy with BIF-7124. | — Happy Path — • AC-1: Given a moderator creates a new account in the Moderator Panel, when the process starts, then the Owner email is validated against CRM, Chat, and Launchpad user tables before the account is created. • AC-2: Given the Owner email is not registered to any other CID in any source, when the moderator submits, then the create-account process proceeds as it does today. — Error / Unhappy Path — • ERR-1: Given the Owner email is already registered to another CID (in CRM, Chat, or Launchpad), when the moderator submits, then the create-account process fails with a clear message that the Owner email is already registered to another CID. — Guard-rail — • NEG-1: Given existing valid create-account flows, when a new account is created, then behaviour is unchanged except for the added Owner-email cross-CID check (no regression). |
Open questions
- Lookup mechanism for Chat/CRM — dedicated endpoint or direct DB check? (confirm with Chat & CRM squads)
- Should existing duplicated cases already in production be detected/backfilled under this ticket, or split into a separate one?
- Exact error copy to show on failure (align with BIF-7124).