The shape
The knobs that matter
journey: the template the custom journey starts from (e.g.first-successful-charge). It selects the story; an unknown id falls back to the recommended journey.ocpiVersionandtargetIdare advisory in the file. On import the builder runs the journey against whichever target you have selected, so a sample from one target still runs against another, and you do not need a realtargetIdto share a file.clock.mode:acceleratedcompresses a session into seconds;realruns it at wall-clock cadence for long-session testing.session.cadenceSecondsandjitterSeconds: how often meter updates are pushed, and how irregular they are (jitterSecondsabove 0 means irregular).session.updates: which fields each update carries (kwh,total_cost,status,charging_periods).disturbances: faults injected mid-journey to prove the endpoint fails safely (e.g.skip_intermediate_update,duplicate_full_put,delay_cdr).coverageDepth:happy-path,edge-cases, oradversarial.seed: makes a run reproducible; keep it stable to replay the same story.
actions list carries those hand-authored actions
into the builder too, as the timeline the file wrote rather than the knob editor
above. The Configure step shows each action’s time, kind, and values, in the order
the file lists them. The run itself executes each action at its own time, not the
list order, so keep the list chronological if you want the two to match. Click any
value to change it in place: the builder shows what the value must be and, where an
OCPI version defines the field, the spec file it comes from. Timing comes straight
from the file; you can still change the endpoint, the clock, and the seed, and the
run streams and grades exactly like any other custom journey. To change an action’s
kind, its time, or the order of the list, edit the JSON and re-import.
A second exception: a file that names journey: 'custom' but lists no actions is
refused, with a message, rather than imported and silently emptied. That intent
(a custom journey) is not something the importer discards on your behalf.
Import, run, and save
- On Charging Journeys, choose Import scenario JSON and pick your file, or Download sample to start from a working one.
- The custom journey opens in the builder on the Configure step with your knobs applied. Adjust anything, then Preview to compile the plan.
- Start the run. It streams live and lands a graded report in Runs, stored on your account, replayable and runnable from CI with the same JSON.
// comments and trailing commas; the importer
strips them. The API and CI expect strict JSON.
See also Run a charging journey for the run, follow,
and recovery flow.