Docs · 🧭 Journeys

How a journey runs

Who is acting, what the assistant is allowed to see, and what happens when a step cannot run.

When a visitor asks for something a journey covers, the assistant starts it and then steps back. From that moment the steps are carried out by an engine running on your own page, with no model in the loop. The assistant narrates; it does not drive.

What the assistant is given#

The assistant receives two things about a journey: its name and its trigger sentence. The steps, and the elements those steps point at, are never sent to it — not before, not during, not after.

Rule: This is why *"it never takes a step nobody wrote down"* is a fact rather than an intention. An element name that reaches the model is an element name the model could produce a variant of. It never reaches the model, so there is no variant to produce.

What the visitor sees#

  • A small card in the chat showing which step is running out of how many.
  • On a guide step, an instruction to do that one themselves, with the right thing on the page pointed out.
  • On a hold step, a Continue button — nothing moves until they press it.
  • A way to stop the whole thing, at any step, without leaving the chat.

When a step cannot run#

Before every action the engine checks the element it is about to touch: is it actually on the page, is it visible, is it interactive, and does it resolve back to the same element it was told about. If any of that fails the step is dropped — not attempted. A step the engine is unsure about is a step it does not perform.

If the same step is dropped three times in a row the journey stops and says why. The assistant then picks the conversation back up normally. A page that changed under a journey ends it politely; it does not leave the visitor watching something retry itself.

How it ends#

The assistant is told the result once per journey, not step by step, and only when it is over — finished or stopped. Until that message arrives it does not claim anything is done, because it genuinely does not know.

Where it runs#

The chat panel sits in a separate frame on our domain; the engine runs on your page. Only four things cross that boundary: the plan to run, *continue*, *stop*, and which step is where. Who the visitor is, their session and the conversation text stay on our side and never enter your page.

Tip: On a project without journeys the engine is never even downloaded — no extra request, nothing added to your page.

The journey never starts.
Either the feature is not active for the project — check the Journeys page for a requirement that has lapsed — or the trigger sentence does not resemble what the visitor typed. Triggers are compared against real sentences, not menu labels.
It stops in the middle.
A step could not find what it was told to click, three times over. That usually means the page changed: an element was renamed, moved, or now appears only after something else. Open the journey, fix that step, publish again.
It is waiting and nothing happens.
It is on a hold or guide step, which is exactly where it is supposed to wait for the visitor. Those steps end when the visitor acts or presses Continue — never on their own.