Abstract

The User Journey Graph (UJG) specification family defines a vocabulary and data model for describing user journeys as automata-like graphs: a set of states (moments in the journey) connected by transitions (ways to move between moments), triggered by events (user actions or system signals). The family separates design-time journey definitions from runtime journey executions and observations to support both experience design and measurement.

What this is

UJG standardizes the structure of journeys so teams can:

UJG is about the model, not about a specific visualization.

Quick mental model (plain English)

Why "automata"

Most journeys behave like a finite-state machine:

If you need memory (cart size, login state), UJG supports guards (conditions) and can be used as an "extended" state machine.

Design-time vs runtime (core distinction)

Design-time Journey Definition

  • normative ("this is the intended model")

  • stable identifiers

  • used by design, engineering, QA, docs

Runtime Journey Execution

  • descriptive ("this is what happened")

  • timestamped events/traces

  • used for metrics, debugging, analysis

UJG makes both first-class so teams don't mix "what we planned" with "what we observed".

Reading guidance