Proactive Triggers

Proactive triggers let your chatbot automatically start conversations based on visitor behavior. Instead of waiting for visitors to click the chat button, the bot can proactively reach out when certain conditions are met — increasing engagement and conversion rates.

Available from the Standard plan. Free plan users see an upgrade notice.

Getting Started

  1. Navigate to Dashboard → Chatbot → Widget Customization → Triggers tab
  2. Enable "Proactive Triggers"
  3. Add a trigger type and configure the message
  4. Save and rebuild the widget

Trigger Types

Nine trigger types are available. Each type fires under different visitor behavior conditions.

Trigger TypeDescriptionParametersExample Use Case
Time on PageFires after a visitor spends X seconds on a page.Delay (seconds): 5–300, default 30"You've been on our pricing page for a while — can I help you choose?"
Exit IntentFires when a visitor is about to leave. Desktop: mouse moves to top of viewport. Mobile: tab switch or browser minimization.None"Before you go — can I answer any questions?"
Scroll DepthFires when a visitor scrolls past X% of the page.Scroll depth (%): 10–100, default 50"You've read quite far — do you have any questions?"
InactivityFires after X seconds without mouse, keyboard, or scroll activity.Inactivity (seconds): 10–300, default 60"It looks like you might have questions — can I help?"
URL MatchFires when a visitor lands on specific pages matching glob patterns. Fires with a 2-second minimum delay.URL patterns: glob patterns, one per line"Welcome to our pricing page! Can I help you choose a plan?"
Section VisibilityFires when a specific DOM element is visible in the viewport for X seconds (using IntersectionObserver).CSS selector (e.g. #pricing), Visibility duration (sec.): 5–120, default 8"I see you're looking at our pricing — can I help?"
Returning VisitorFires when a visitor returns to the site for the Nth time (tracked via localStorage).Minimum visits: 1–100, default 2"Welcome back! Can I help you today?"
Pages VisitedFires after a visitor has viewed X pages in the current session (tracked via sessionStorage).Minimum pages: 2–50, default 3"You've explored quite a bit — do you have questions?"
Rage ClickFires when a visitor rapidly clicks the same element multiple times (frustration detection).Click count: 3–10, default 4. Time window (ms): 500–3000, default 1500"Something seems to not be working — can I help?"

Global Settings

These settings apply to all proactive triggers globally.

FieldDescriptionDefault
Enable Proactive TriggersMaster switch to enable/disable all proactive triggers.Off
Max. triggers per sessionMaximum number of proactive messages a visitor receives per browser tab session. After reaching this limit, no more triggers fire.1
Max. triggers per dayMaximum proactive messages per visitor within 24 hours (stored in browser localStorage). Prevents over-messaging returning visitors.3
Cooldown typePer session: Cooldown resets when the tab is closed. Persistent: Cooldown is stored in the browser across visits.Per session
Cooldown (minutes/hours)Wait time after a trigger fires before the next trigger is allowed. Minutes for session scope, hours for persistent scope.60 min / 24 hours
Respect permanent dismissIf a visitor closes the proactive message, they will never be messaged again (until they clear browser data).On
Show as speech bubbleDisplays the proactive message as a speech bubble next to the chat button when the chat is closed. If disabled, the chat opens directly.On
Bubble auto-hide (sec.)Time in seconds before the speech bubble automatically hides. Set to 0 to keep it visible until the visitor interacts.15

Response Modes

Each trigger can use one of three response modes to control how the proactive message is generated and delivered.

ModeDescriptionCostPlan Required
Static messageDisplays the configured message exactly as written. No API call.FreeStandard+
AI context on replyShows the static message first. When the visitor replies, the bot receives page context (page title, meta description, or element text) for a context-aware response.Only on replyStandard+
AI-generated messageThe bot generates the proactive greeting itself based on page content. Makes an API call when the trigger fires. Rate-limited to 50/hour, cached for 1 hour. 3-second timeout with fallback to static message.Per triggerPremium/Enterprise

Conditions & Scheduling

Each trigger supports optional conditions and scheduling to fine-tune when and where it fires.

Conditions

Conditions are AND-combined with the trigger.

FieldDescription
URL filter (glob)Trigger only fires on pages matching this pattern. Empty = all pages. Example: /pricing/*
DeviceRestrict the trigger to: All devices, Desktop only, or Mobile only.

Schedule

FieldDescription
Enable scheduleToggle time-based scheduling for this trigger.
Start timeThe trigger becomes active at this time (HH:MM format).
End timeThe trigger stops firing after this time.
TimezoneIANA timezone (e.g., Europe/Berlin, America/New_York).

Trigger Combinations (AND Logic)

You can require that other triggers have also been satisfied before this trigger fires. For example, combine "Scroll Depth 70%" AND "Time on Page 45s" so the message only appears when both conditions are met.

Anti-Annoyance Protection

Proactive triggers include multiple layers of protection to avoid annoying visitors:

  1. Session limit — Max triggers per browser tab session (default: 1)
  2. Daily limit — Max triggers per 24 hours across sessions (default: 3, stored in localStorage)
  3. Cooldown — Wait time between triggers (session or persistent)
  4. Permanent dismiss — Visitor who closes a message is never messaged again
  5. No re-trigger — Each specific trigger fires only once per session
  6. Chat open guard — No trigger fires when the chat is already open
  7. User message guard — No trigger fires after the visitor has already sent a message
  8. Bubble auto-hide — Speech bubble disappears automatically after configured time

Templates

Three pre-built template bundles are available to get started quickly. Loading a template replaces existing triggers (with confirmation).

TemplateIncludesBest For
E-Commerce BundleExit Intent + Inactivity (60s) + Section Visibility (#cart)Online shops, reducing cart abandonment
Lead Generation BundleTime on Page (30s) + Scroll Depth (70%) + Returning Visitor (2)SaaS, B2B lead capture
Support BundleRage Click + Inactivity (45s)Help desks, documentation sites

Analytics

The Triggers tab shows a performance overview table when data is available.

ColumnDescription
TriggerFirst 40 characters of the trigger message
TypeTrigger type (e.g., Time on Page, Exit Intent)
FiredTotal number of times the trigger was activated
Response ratePercentage of fired triggers where the visitor sent a reply
Dismiss ratePercentage of fired triggers where the visitor closed the message

Use this data to optimize your trigger messages and settings. Low response rates may indicate the message is not relevant or the trigger fires too early.

Privacy / GDPR

Proactive triggers store the following data in the visitor's browser:

StorageDataPurpose
localStorageVisit count, daily trigger count, permanent dismiss flag, persistent cooldown timestampsCross-session tracking
sessionStorageFired trigger IDs, session trigger count, pages visited, session dismiss flagCurrent session state

Important:

  • No cookies are set by proactive triggers
  • No personal data is collected or transmitted
  • Page context (for AI context on reply / AI-generated modes) is extracted from visible text only — no form data, no data-* attributes
  • Context text is used for the current API call only and is not stored in the database
  • Mention localStorage usage in your privacy policy

Best Practices

  • Start simple — Begin with 1-2 triggers and measure performance before adding more
  • Keep messages short — 1-2 sentences maximum; be helpful, not pushy
  • Set appropriate delays — Time on Page: at least 15-30 seconds. Don't trigger immediately
  • Use conditions — Target specific pages rather than firing everywhere
  • Monitor analytics — Check response and dismiss rates regularly; adjust or disable low-performing triggers
  • Respect visitors — Keep session limits low (1-2), enable permanent dismiss
  • Test on mobile — Verify exit intent via tab switch works as expected
  • Use templates — Start with a bundle and customize from there
  • Combine triggers — Use AND logic for precise targeting (e.g., scroll + time)
  • Add a privacy notice — Update your privacy policy to mention localStorage usage