Exit-Intent Triggers

Catch visitors right before they bounce. Set the trigger on any popup, modal, contact form, or survey to Exit Intent and FloatMessage shows it the moment a visitor looks like they're about to leave - no manual scroll thresholds, no time delays to tune.

How Detection Works

The embed runs entirely client-side. Two different signals depending on the visitor's device:

Desktop - Mouse-Leave

The script listens for mouseout events at the top of the document. When the cursor crosses the top edge of the viewport (heading toward the address bar, the back button, or a tab) the trigger fires. This is the strongest predictor of intent-to-leave on desktop and produces almost no false positives.

Mobile - Scroll-Up + Idle

Touch devices have no mouseleave at the viewport edge, so we fall back to a heuristic. The trigger fires when the visitor:

  1. Has scrolled past 50% of the page (we know they engaged), AND
  2. Has been scrolling up for 300+ pixels in the last few seconds (they're looking for a way out), AND
  3. Has been idle for at least 1.5 seconds (the scroll has settled).

This pattern catches the "I'm done, swipe back to the home screen" behavior without firing on every page-up scroll. False-positive rate is low compared to time-based triggers.

Configuring Exit Intent

On any message, open the Display Settings tab and set the trigger to EXIT_INTENT. No additional thresholds to configure.

{
  "trigger": "EXIT_INTENT",
  "dismissBehavior": "DURATION",
  "dismissDuration": 24,
  "targetUrls": ["/checkout/*", "/cart/*"],
  "geoCountries": ["US", "CA", "GB"]
}

See Scheduling & Triggers for the full trigger list (page-load, delay, scroll, exit-intent).

Smart Dismiss Memory

Annoying visitors with the same exit popup on every page wastes the offer. Pair exit-intent with the dismiss behaviors documented at Dismiss Behavior:

  • SESSION - never re-triggers in the current tab session.
  • DURATION with 24h or 7d - re-triggers after the time window so you can re-pitch a returning visitor.
  • PERMANENT - one-shot per device. Strongest dismiss; best for hard offers like 10% off your first order.

What You Can Trigger on Exit

Exit-intent isn't a template - it's a trigger you set on any message type. Common patterns:

GoalTemplate + targeting
Cart abandonment recoverycenter-modal with a discount code, scoped to /checkout/* + /cart/*
Newsletter capturenewsletter or contact-form with a one-line lead-magnet pitch
Last-minute survey1-question NPS or short-text survey asking why they're leaving
Live chat handoffchat-cta that opens the chat panel pre-seeded with their last action
Booking offerbook-appointment for free 15-min consult

Stack with Other Targeting Rules

Exit-intent is one of six rule layers and stacks with all of them. Every rule must pass for the message to render:

  • URL targeting / blocking - only on /checkout, never on /admin
  • Geo targeting - only US / CA visitors
  • Device targeting - only desktop, only mobile, etc.
  • Schedule windows - only weekdays 9-17 in the visitor's local time
  • Visit count - only on the visitor's 2nd+ session
  • Exit intent - the trigger covered here

A common surgical setup: mobile + United States + on /checkout/* + 6pm-11pm + first-time visitor + exit intent. One config, no scripting.

Browser Support

Mouse-leave detection works on every desktop browser shipping mouseout: Chrome, Edge, Firefox, Safari, Opera. The mobile heuristic uses scroll events plus touchstart/touchend, which work in iOS Safari, Android Chrome, Samsung Internet, Firefox Mobile, etc.

Pure-keyboard tab-switch (Cmd-Tab / Alt-Tab without the mouse) is intentionally NOT a trigger - it would fire too aggressively on multi-tab researchers.

Related