The behavior engine

How Yokaify decides when to step in — the signals it reads and the intent patterns it recognizes.

The signals

The widget reads lightweight, anonymous behavioral cues, including:

  • Scrolling — speed, depth, and rapid back-and-forth.
  • Dwell — how long a visitor lingers on a section like pricing or reviews.
  • Cursor movement — including a fast bolt toward the top of the window (reaching for search or the back button) and exit-intent toward the address bar.
  • Text selection — what a visitor highlights, mapped to a concern such as returns, shipping, sizing, or price.
  • Form friction — repeatedly re-focusing the same field, or hunting for a coupon code.
  • Cart state — whether there are items in the cart.
  • Mobile gestures — touch dwell, rage taps, pinch-zoom, and scroll pauses.

The intent patterns

Those signals roll up into a few recognizable patterns:

  • Can't find — the visitor is searching or lost (rapid scrolling, cursor slamming to the top).
  • Objection — a concern is holding them back (dwelling on price, returns, or shipping; highlighting policy text).
  • Something's broken — friction or frustration (form struggles, rage taps, validation errors).
  • Comparing — decision paralysis (revisiting pricing, jumping between tabs).
  • Wrong page — they've landed somewhere that doesn't match their intent.

Each pattern gives the AI context, so the mascot opens with something relevant instead of a generic greeting.

Guardrails

The engine is tuned to respect the visitor:

  • Per-visitor cooldowns and a daily cap.
  • A bot pre-filter that ignores automated traffic.
  • A holdout group that is measured but never shown the mascot (see Measuring impact).
  • Dismiss / quit signals that silence the mascot for the rest of the session, synced across tabs.