Docs

Targeting + Triggers

Documentation

Targeting + Triggers

Runtime targeting and trigger behavior that put the right message in front of the right visitor at the right moment.

Path targeting behavior

  • If targeting.paths is empty or missing, message matches all paths.
  • Path matching ignores query/hash segments (uses pathname only).
  • Trailing slash is normalized (/pricing/ equals /pricing).
  • Wildcard * patterns are supported.
  • Regex-like patterns are supported when pattern starts with ^ or ends with $.
Snippetjson
{
  "targeting": {
    "paths": ["/pricing", "/account/*", "^/docs/.*$"],
    "trigger": {
      "type": "SCROLL",
      "scrollPercent": 60
    }
  }
}

Audience filter behavior

  • devices: matches runtime device classification.
  • referrers: case-insensitive substring match against document referrer.
  • utm: exact case-insensitive match for source/medium/campaign values.
  • countries: uppercase code match; requires context country value.
  • firstVisit/returningVisitor: visitor-state match in persistent mode.

Trigger normalization

  • Unsupported or missing trigger type defaults to IMMEDIATE.
  • delayMs is clamped to a non-negative integer.
  • scrollPercent is clamped to 0..100 (default 50).
  • clickSelector is trimmed before use.

Trigger runtime semantics

  • IMMEDIATE: eligible on initial render cycle.
  • DELAY: fires once after normalized delayMs.
  • SCROLL: checks immediately, then on scroll/resize until threshold is met.
  • CLICK: requires non-empty selector; click is matched via target.closest(selector).
  • Invalid click selectors are ignored safely and message never becomes trigger-ready.
  • EXIT_INTENT: triggers on mouseout when cursor leaves at top edge (<= 12px from top) and no relatedTarget exists.