Proactive entry — greeting + mortgage card
primary
Reach: Dashboard pill "There are 3 growth opportunities ready for you" → chat opens
TRUE default. AI greeting + ONE full mortgage card + a collapsed "2 more opportunities" row. Nothing pre-expanded, nothing dismissed.
More opportunities expanded (preview chips)
secondary
Reach: Tap the "2 more opportunities when you're ready" row
The roll-up row expands to two compact preview chips (KiwiSaver, idle cash).
KiwiSaver dismissed (acknowledged row)
state
Reach: Expand a chip → Not now
The KiwiSaver card (expanded from its chip) dismissed to its quiet acknowledged row (30-day silence).
Referral form open (inline conversational step)
primary
Reach: Mortgage card → Talk to an adviser
Exact AdvisorReferralModal fields inline (Message optional, Name, Email, Phone prefilled), trust box, Match Me. Scroll anchors to the form title on open.
Submitting (button disabled, spinner)
state
Reach: Referral form → Match Me (in flight)
"Match Me" disabled with a spinner and "Matching you..." — double-submit guard while the request is in flight.
Submission failed (inline error + retry)
state
Reach: ?screen=error (a failed submit)
Form stays open, typed details preserved, red inline banner above the button. Match Me is the retry. No AI failure message.
Referred + confirmation bubble
primary
Reach: Referral form → Match Me (success)
SortMe AI posts the confirmation (phone + 24-hour expectation); the mortgage card flips to the quiet "Matched to Adviser" badge with no duplicate footer text. Chat input visible below.
Mid-conversation nudge (Layer 3)
primary
Reach: User asked "should I do anything about my mortgage?" → helpful answer + ONE nudge card
A normal chat where the AI answers helpfully, then gently brings in the outstanding recommendation as the same single card. One nudge only — no "more opportunities" row. Form + referred flow are live (interactive), not separate ?screen states.