Customer Lifecycle¶
Models the lifecycle of a Customer from anonymous visitor through registration, active engagement, and potential churn and reactivation. Central to CLV (Customer Lifetime Value) tracking and personalisation strategy. Applies across all channels: e-commerce, store, app.
Object: customer ·
States: 8 ·
Transitions: 12
State Diagram¶
flowchart LR
%% ── classDef palette ─────────────────────────────────────
classDef stInit fill:#0d9488,stroke:#0f766e,color:#fff,font-weight:bold
classDef stNorm fill:#3b82f6,stroke:#2563eb,color:#fff
classDef stOk fill:#16a34a,stroke:#15803d,color:#fff,font-weight:bold
classDef stFail fill:#dc2626,stroke:#b91c1c,color:#fff,font-weight:bold
classDef stHold fill:#d97706,stroke:#b45309,color:#fff
%% ── nodes ───────────────────────────────────────────────
anonymous(["Anonymous"])
identified["Identified"]
registered["Registered"]
active["Active"]
at_risk["At Risk"]
churned["Churned"]
reactivated["Reactivated"]
blocked[["Blocked"]]
%% ── transitions ─────────────────────────────────
anonymous -->|"customer-identified"| identified
identified -->|"customer-registered"| registered
anonymous -->|"customer-registered"| registered
registered -->|"order-confirmed"| active
identified -->|"order-confirmed"| active
active -->|"customer-updated"| at_risk
at_risk -->|"order-confirmed"| active
at_risk -->|"customer-segment-assigned"| churned
churned -->|"order-confirmed"| reactivated
reactivated -->|"order-confirmed"| active
active -->|"customer-updated"| blocked
identified -->|"customer-merged"| registered
%% ── class assignments ───────────────────────────
class anonymous stInit
class identified,registered,active,at_risk,churned,reactivated stNorm
class blocked stOk
States¶
| State | Label | Description | Initial | Terminal |
|---|---|---|---|---|
anonymous |
Anonymous | Visitor not yet identified. Browsing or in-session without authentication. | ✓ | |
identified |
Identified | Customer identity resolved (loyalty card scan, login, cookie match). Profile linked but not fully registered. | ||
registered |
Registered | Customer has a verified account with contact details and consent preferences. | ||
active |
Active | Customer has transacted within the engagement window. Receives personalised communications. | ||
at-risk |
At Risk | Engagement declining. Last purchase beyond churn-risk threshold. Win-back campaigns triggered. | ||
churned |
Churned | No engagement beyond churn threshold. Customer considered lost. Suppressed from regular comms. | ||
reactivated |
Reactivated | Previously churned customer has re-engaged (purchase, login, or campaign response). | ||
blocked |
Blocked | Account suspended due to fraud, abuse, or GDPR erasure request. | ✓ |
Transitions¶
| From | To | Trigger | Guards |
|---|---|---|---|
anonymous |
identified |
customer-identified |
Identity resolved via loyalty card, login, or device fingerprint |
identified |
registered |
customer-registered |
Email verified; Required consent captured |
anonymous |
registered |
customer-registered |
Customer completes registration directly (no prior identification) |
registered |
active |
order-confirmed |
First order placed and confirmed |
identified |
active |
order-confirmed |
Guest checkout converted to identified customer with transaction |
active |
at-risk |
customer-updated |
Days since last purchase exceeds at-risk threshold (configurable per segment) |
at-risk |
active |
order-confirmed |
Customer transacts in response to win-back campaign or organic return |
at-risk |
churned |
customer-segment-assigned |
Days since last purchase exceeds churn threshold |
churned |
reactivated |
order-confirmed |
Purchase or meaningful engagement after churn period |
reactivated |
active |
order-confirmed |
Second transaction within engagement window |
active |
blocked |
customer-updated |
Fraud confirmed OR GDPR erasure request submitted |
identified |
registered |
customer-merged |
Duplicate profile merged into master record |