In a recent verification case, three support agents took turns guessing what state the user was in, because none of the verification state reaches them. The user themselves asked for a "session shadowing" feature. Right now the Crisp integration (src/hooks/useCrispUserData.ts) sends username, email, wallet, Bridge, and PostHog links, and nothing about where the user is actually stuck.
What would have unblocked the agents right away
- The current gate kind (
blocked-rejection, provide-email, waiting-on-provider, and so on) and which rail it's on.
- The
failureReason code and details (this user's was literally "No email captured...").
- Whether an email is on file, and whether identity is verified.
- The pending NextActions for the user.
Two ways to do it
- Short term: add the above to the Crisp session data / the contact-support prefill so agents see the state without asking.
- Longer term: a read-only shadow view that renders the user's current verification screen and state machine for support and admins.
While here
mantecaUserId is hardcoded to undefined in useCrispUserData.ts (around lines 47-53) because the read model dropped it, so the Manteca dashboard link never renders. Expose a provider account id from the BE and restore it.
In a recent verification case, three support agents took turns guessing what state the user was in, because none of the verification state reaches them. The user themselves asked for a "session shadowing" feature. Right now the Crisp integration (
src/hooks/useCrispUserData.ts) sends username, email, wallet, Bridge, and PostHog links, and nothing about where the user is actually stuck.What would have unblocked the agents right away
blocked-rejection,provide-email,waiting-on-provider, and so on) and which rail it's on.failureReasoncode and details (this user's was literally "No email captured...").Two ways to do it
While here
mantecaUserIdis hardcoded toundefinedinuseCrispUserData.ts(around lines 47-53) because the read model dropped it, so the Manteca dashboard link never renders. Expose a provider account id from the BE and restore it.