One shape
Every journey has the same shape:
When an event happens, but another event does not happen within a window, emit a new event.
That covers cart abandonment (added, never bought), checkout drop-off (started, never paid), forms started and never submitted, quotes without orders, and trials without activation. The Journeys page offers templates for the first three; Blank lets you define any other.
| Part | What it is | Cart example |
|---|---|---|
| Entry event | The thing that happened. It opens a journey for that visitor | add_to_cart |
| Exit events | The things that should have followed. Any one of them closes the journey with no signal | purchase |
| Window | How long Lapse waits for an exit event | 35 minutes of inactivity |
| Emitted event | The event Lapse sends when the window runs out first | cart_abandoned |
How events reach Lapse, and where the signal goes
Lapse sits between two Echo destinations:
- Inbound: an Echo destination of type Lapse forwards the property's events to Lapse. Without it, no journey ever runs.
- Outbound: the emitted event (for example
cart_abandoned) enters Echo as an ordinary event. Every Echo destination whose event filter includes that name, or that forwards everything, receives it: a CRM through a Custom destination, an ad platform, or Lens. Observer monitors and Activate audiences can use it like any other event.
Both links fail silently if they are missing, so the dashboard, the Journeys list and the editor all check them and show a red warning when:
- the property has no enabled Lapse destination;
- the Lapse destination's event filter leaves out an event an active journey needs (its entry, exit and refresh events, plus
session_start); - no destination is listening for a journey's emitted event.
Lapse never re-enters its own output: an event that Lapse emitted cannot open or extend a journey. Bot filtering is set on the Lapse destination in Echo (Exclude bot traffic), not on each journey; when it is on, bot events never reach Lapse.
Windows
| Mode | The clock | Use it for |
|---|---|---|
| Inactivity (sliding) | Restarts on every event Echo forwards to Lapse for that visitor, and runs out when they go quiet | Carts and checkouts, where a shopper who keeps browsing has not abandoned yet |
| Fixed (from entry) | Starts at the entry event and never restarts | Deadlines, such as "no activation within 7 days of signing up" |
The window can be 1 minute to 43,200 minutes (30 days).
An inactivity window can only see the events Lapse receives. If the Lapse destination forwards only cart events, someone browsing with a full cart looks idle. Forward page_view too, or forward everything.
Visitor sessions end after 30 minutes without activity. An inactivity window shorter than that can call a journey abandoned while the visitor is still in the same session and might come back. That is right for a form (10 minutes of silence on a half-filled form means they left) and usually wrong for a cart, where 35 minutes or more is the norm. The editor explains this when you pick a short window.
Identity
Track By decides whose journey it is:
| Option | Watches | Consequence |
|---|---|---|
| Session (sid) | One session | A cart abandoned on Monday and bought on Wednesday still counts as abandoned on Monday |
| Device (cid) | One browser or device | Coming back later on the same browser closes the journey. Nothing carries across from phone to laptop |
| User (uid) | One logged-in user across devices | Only events that carry a user ID count. Anonymous visitors never enter the journey |
Resolved early
When a visitor starts a new session, their previous session is over. Lapse uses that: instead of waiting out the rest of the timer, it emits the signal straight away. The dashboard counts these as Resolved Early. This needs session_start forwarded to Lapse; without it, only the timer ever fires.
The snapshot
Echo handles each event once, so Lapse keeps a copy of the entry event while the journey is open: its value, currency, items, campaign and identifiers. The emitted event is that copy with a new name. Whatever the snapshot holds is all the signal will ever carry.
- Refresh The Snapshot On replaces the copy with a newer event, such as a later
add_to_cartorview_cart. Without it, a cart entered at $40 and abandoned at $260 is reported at $40. - Accumulators go further and build values across all of the journey's events, such as the full list of items in the cart or a running cart total. See Journey Settings.
The emitted event also gets:
| Added | What it holds |
|---|---|
| A new event ID | So downstream platforms do not treat the signal as a duplicate of the entry event |
| Timestamp | The moment Lapse decided the journey lapsed |
| Extra Static Attributes | Your constants, as ep.<key> |
| Accumulator results | Each as ep.<name> |
_lapse | The journey ID, the original entry event time, how it resolved (timer or new_session), and when it was emitted |
Consent
A journey can check the visitor's consent before it signals. At emit (the default) checks consent at the moment the signal would fire, which can be well after the visitor left. At entry uses consent as it was at the entry event, so a visitor who withdraws consent during the window is still signaled. Not checked applies no check in Lapse; destinations may still apply their own. A journey that lapses without the required consent sends nothing and is counted as Suppressed For Consent on the dashboard.
Status
| Status | Runs |
|---|---|
| Draft - not running | No |
| Active - running | Yes |
| Paused - stopped, keeps config | No |
Only Active journeys run, and only on the property they were created in.
Plan limits
Your plan sets how many journeys the company can define. A new journey over that limit cannot be saved; editing an existing journey is never blocked, even if the company is over its limit. Signals emitted are counted per calendar month as plan usage. Lapse does not stop emitting signals when a count is reached.
Terms
| Term | Meaning |
|---|---|
| Journey | A rule watching for an entry event that is not followed by an exit event in time |
| Signal | The event a journey emits when it lapses |
| Lapsed | The window ran out before an exit event arrived |
| Completed | An exit event arrived in time, so no signal was sent |
TagPipes monitors, configures and reports. It does not determine legal compliance and does not provide legal advice. Output is informational and reflects observed state at the time of observation. Confirm any regulatory interpretation with your counsel.