Exit-intent triggers
OConvert ships a configurable exit-intent layer that supports multiple trigger types with frequency caps. Configuration lives in the oconvert_exit_intent option.
Trigger types
The runtime supports four signals (combine any subset):
mouseleave_top- the pointer leaves the viewport at the top edge (classic desktop exit)scroll_pct- the user scrolls pastmin_scroll_pcttime_on_page- the user has been on the page longer thanmin_dwell_mstab_blur- the user switches tabs or apps
The min_dwell_ms setting (default 4000ms) is a global floor: no trigger fires before this many milliseconds.
Frequency caps
cooldown_days(default 7) - how many days between exit-intent shows per visitormax_per_session(default 1) - cap shows within a single session
Payload
payload_html is a chunk of HTML rendered inside the modal. The runtime drops it into the overlay container as-is, so author it like any banner. The admin Exit Intent page has a sanitized editor.
Filter override
phpadd_filter( 'oconvert_exit_intent_config', function ( array $cfg ): array {
$cfg['min_dwell_ms'] = 6000;
$cfg['cooldown_days'] = 14;
return $cfg;
} );Disabling
phpadd_filter( 'oconvert_exit_intent_enabled', '__return_false' );Telemetry
Every shown exit-intent fires an exit event with { dwell_ms, action }. The event flows through OConvert_Events::record() and is bridged onto the canonical cross-plugin bus as oconvert:exit_intent so OMailer or other Orravo plugins can react without polling.

