Skip to content

Appointment Lifecycle

Models the lifecycle of a customer Appointment — a scheduled interaction between a customer and a store associate or specialist (personal shopping, stylist session, product consultation, repair drop-off). Part of the Clienteling domain.

Object: appointment · States: 6 · Transitions: 7


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 ───────────────────────────────────────────────
    requested(["Requested"])
    confirmed["Confirmed"]
    in_progress["In Progress"]
    completed[["Completed"]]
    no_show[["No Show"]]
    cancelled[["Cancelled"]]

    %% ── transitions ─────────────────────────────────
    requested -->|"clienteling-session-created"| confirmed
    requested -->|"clienteling-session-created"| cancelled
    confirmed -->|"clienteling-interaction-recorded"| in_progress
    in_progress -->|"clienteling-interaction-recorded"| completed
    confirmed -->|"clienteling-interaction-recorded"| no_show
    confirmed -->|"clienteling-session-created"| cancelled
    confirmed -->|"clienteling-session-created"| cancelled

    %% ── class assignments ───────────────────────────
    class requested stInit
    class confirmed,in_progress stNorm
    class completed stOk
    class no_show,cancelled stFail

States

State Label Description Initial Terminal
requested Requested Customer requested an appointment. Slot not yet confirmed by store.
confirmed Confirmed Store confirmed the appointment. Associate assigned. Reminder sent.
in-progress In Progress Customer checked in. Associate-led session underway.
completed Completed Session concluded successfully. Interaction notes recorded. Follow-up optional.
no-show No Show Customer did not attend. Slot released. Possible follow-up outreach.
cancelled Cancelled Appointment cancelled by customer or store before the scheduled time.

Transitions

From To Trigger Guards
requested confirmed clienteling-session-created Slot available; Associate available; Customer identity verified
requested cancelled clienteling-session-created No suitable slot available; Store rejects request
confirmed in-progress clienteling-interaction-recorded Customer checked in at store; Associate starts session
in-progress completed clienteling-interaction-recorded Session concluded; Interaction notes saved; Any basket or order created linked to session
confirmed no-show clienteling-interaction-recorded Appointment time passed without customer check-in
confirmed cancelled clienteling-session-created Cancellation within allowed window
confirmed cancelled clienteling-session-created Store cancels (associate unavailable, store closure)