# Customer Journey in AI Copilot

The first Copilot tab is Customer Journey. The previous promotional banner is removed.

## Customer flow

1. Get started: register/sign in, complete basic contact profile, save a Wealth Planning goal.
2. Learn and explore: relevant how-to lessons, multiple webinars, further Learning Hub lessons, Analyze Property, AI chatbot questions.
3. Build the relationship: phone, two-way WhatsApp, personal Zoom; showroom visits are optional.
4. Prepare the decision: IC + consent + eligibility screening, needs, decision participants, financial route and cash allocation.
5. Book the property: active/completed booking evidence, with earlier gaps still visible.

Seventeen core steps plus one optional showroom step. This is a flexible checklist, not a gate blocking existing bookings. A contact or learning step may be marked not needed with a reason. Eligibility may also be adapted for an agreed cash purchase; financial route and cash confirmation cannot be waived. The initial webinar target is two distinct webinars. Reconnection segments count once.

## Evidence and limitations

- Full available history, not the action queue's 90-day window.
- Account existence alone does not establish a login: customer-authored signed-in portal activity or a team confirmation is needed. There is no durable login history adapter yet.
- Basic profile means name, email and phone present; imported placeholder emails do not qualify. It does not require IC, finance data or a selected property.
- A saved goal needs target age plus the relevant financial target. It is independent of loan and property fields. A saved plan is not evidence that the customer accepted a financing route.
- How-to progress currently lives in browser localStorage. The checklist explicitly requests confirmation; it does not pretend that server tracking exists.
- Other Learning Hub completion reads persisted lesson progress. One completed lesson establishes participation; continued learning remains an ongoing next step.
- Analysis requires a successful customer-created record. AI chatbot participation requires a customer-role message.
- Linked sales/service recordings indicate a conversation to confirm, not automatic proof of a useful consultation or trust. Webinar recordings are excluded from personal Zoom consultations.
- WhatsApp needs inbound and successful outbound messages in the same eligible direct thread. Groups, CEO channels, sandbox, blocked contacts and imported messages are excluded. No message bodies are returned by this adapter.
- Eligibility shows document presence, signed consent and completed screening separately. Screening is not a loan approval. IC numbers, images and report contents are not included.
- Needs, decision alignment, accepted financing route and cash allocation require explicit evidence recorded by staff. No new external model calls occur.
- Customer journey progress is separate from readiness. No checkbox changes the historical CRS or awards points. The prior readiness-assessment prototype remains outside this release.

## Team workflow

Needs attention retains urgent open tasks and potential unanswered requests. Find any customer searches all non-staff customers visible to the viewer, including customers without alerts; at most 25 matches are returned, with a prompt to narrow the search.

Expanding a step shows evidence, date, its relationship to readiness, and a useful next action. Staff with manage-leads permission can record a confirmation, in-progress state, correction, or allowed exception. Every write requires an observation date and explanation, records the current user, and appends rather than overwrites. A stale save returns 409; future observations are rejected. The latest five confirmations are shown; the full ledger remains in the database. Lead merge and privacy purge include these records through IdentityChildMap.

Checklist reads and writes enforce lead scope. Channel-restricted steps remain inaccessible even if a different staff member recorded a confirmation. The new routes do not invoke AI, create tasks, send messages or book property.

## Implementation

- CustomerJourney service: evidence adapters and ordered milestone definitions.
- CustomerJourneyController: bounded customer lookup, scoped reads and confirmation writes.
- JourneyUpdateRequest + LeadJourneyUpdateRepository: validated append-only writes with a locked stale-save check.
- lead_journey_updates: separate observation history; existing LeadActionItems remain the task system.
- CustomerJourney.vue: lazy per-customer read, collapsible steps, dated confirmations and history.

## Verification

Regression coverage includes goals without loan/property data, customer-vs-staff attribution, webinar reconnections, eligibility prerequisites, cancelled bookings, preserved post-booking gaps, append-only corrections, stale writes, required evidence, forbidden gate waivers, lead scope and write permissions. Browser checks use fictional data to verify confirmation saves, quiet-customer search, suite-aware links, banner removal, and desktop/mobile layout.
