> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bubblav.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Smart Triggers: Let Your Chatbot Start the Conversation

> Proactively message visitors at the right moment — after time on a page or on exit intent — with an AI-personalized opener, URL targeting, cooldowns, and visitor-friendly suppression.

Most chatbots wait for the visitor to speak first. With **Smart Triggers**, your BubblaV chatbot
opens the conversation itself — at the moment a visitor is most likely to engage: after they've
spent two minutes on your pricing page, or right as they're about to leave.

You define *when* the chatbot reaches out and *what it says*. The AI personalizes the opener for
each visitor from your message template, and an optional **conversation goal** steers the replies
that follow.

<Note>
  Smart Triggers require a **Pro plan**. Delivered trigger messages do **not** count
  toward your monthly message quota — like cart recovery, they're free to send.
</Note>

## How Smart Triggers work

1. A visitor lands on a page that matches your trigger's URL rules.
2. The behavior condition is met — the time-on-page delay elapses, or exit intent is detected
   (the mouse moves toward the top of the window on desktop, or the visitor switches tabs on mobile).
3. The chatbot opens the conversation in the widget with your message, personalized by the AI
   from your template. If the AI is unavailable, your template is sent exactly as written.
4. If the visitor replies, the conversation continues like any other chat — same knowledge base,
   tools, and handoff rules — steered by your conversation goal.

## Trigger types

<CardGroup cols={2}>
  <Card title="Time on page" icon="clock">
    Fires after a visitor has spent a set amount of time (5–3,600 seconds) on a matching page —
    for example, 2 minutes on `/pricing`.
  </Card>

  <Card title="Exit intent" icon="mouse-pointer">
    Fires when a visitor is about to leave: the mouse moves toward the top of the window
    (desktop) or they switch to another tab (mobile). Detection arms after 10 seconds on the
    page, so instant bounces never trigger it.
  </Card>
</CardGroup>

## Create a trigger

<Steps>
  <Step title="Open Smart Triggers">
    In the dashboard, open your website and go to **Chatbot → Smart Triggers**, then click
    **New Trigger**.
  </Step>

  <Step title="Describe the trigger">
    Give it a name (e.g. "Pricing page — offer plan help"), pick a trigger type, and for
    time-on-page triggers set the delay in seconds.
  </Step>

  <Step title="Target the pages">
    Choose how the URL is matched — **contains**, **is exactly**, or **starts with** — and add up
    to 10 patterns like `/pricing`. Leave the patterns empty to trigger on all pages.
  </Step>

  <Step title="Write the message">
    This is your message template (up to 500 characters). The AI personalizes it for each visitor
    using the page context; if the AI is unavailable, it's sent as-is.
  </Step>

  <Step title="Set a conversation goal (optional)">
    Describe how the AI should steer the conversation after the visitor replies — e.g. "Help the
    visitor compare plans and offer a demo if they hesitate." (Up to 1,000 characters.)
  </Step>

  <Step title="Pick the re-show cooldown">
    How long to wait before the same visitor can see this trigger again: 1 hour, 24 hours, 7 days,
    or 30 days.
  </Step>
</Steps>

<Note>
  New triggers are saved as **drafts** — they don't fire until you switch them on. Test the
  message first, then activate.
</Note>

## Test before activating

Every trigger has a **Test this trigger** panel with two ways to preview it safely:

* **Preview message** — generates a sample opener with the exact same AI path a real visitor fire
  uses. No visitor is contacted, and each preview shows a fresh variation.
* **Open in Test page** — opens the chatbot [Test page](/user-guide/testing) with the trigger
  simulated, so you can chat as a visitor and check that the conversation goal steers the replies
  the way you want.

Once you're happy, flip the trigger's switch to active.

<Tip>
  From **Knowledge → Pages**, use the quick-create action on any page to start a trigger with its
  URL and name already filled in.
</Tip>

## When a trigger stays silent

Smart Triggers are deliberately conservative, so visitors never feel spammed. A trigger is held
back when:

* **It's still on cooldown** — the visitor saw this trigger recently (per the re-show setting).
* **The visitor already replied** — a visitor who replies to a trigger is never shown that same
  trigger again.
* **Another trigger just fired** — each visitor gets at most one proactive message per 5-minute
  window, across all triggers on your website.
* **Live support is involved** — if the visitor has a recent conversation with a human teammate,
  triggers stay quiet.
* **The trigger is a draft** — inactive triggers never fire.

## Language of the opener

The AI writes the personalized opener in the language of the page content that was crawled for
the matching page (English if unknown) — not necessarily the visitor's browser language. If your
site is in German, the opener is in German.

## Best practices

* **Lead with value, not "Can I help?"** — reference what the visitor is looking at: "Still
  comparing plans? Tell me what you're building and I'll narrow it down."
* **Set a real conversation goal** — the opener gets the reply; the goal converts it.
* **Start narrow** — target one high-intent page (pricing, checkout, docs) rather than every page,
  with a 24-hour or longer cooldown.
* **Use exit intent for hesitation, not goodbye** — a discount or a "wait, one question" message
  works better than a generic farewell.

## Plans & limits

| Plan   | Smart Triggers per website |
| ------ | -------------------------- |
| Free   | —                          |
| Pro    | 5                          |
| Custom | 25                         |

Delivered trigger messages don't count toward your plan's message quota. See
[Billing & Plans](/user-guide/billing) for details.

## Related

<CardGroup cols={2}>
  <Card title="Testing your chatbot" icon="flask" href="/user-guide/testing">
    The Test page where trigger simulations run.
  </Card>

  <Card title="Human handoff" icon="headset" href="/user-guide/human-handoff">
    Escalate a triggered conversation to a live teammate when it needs a human.
  </Card>

  <Card title="Cart Recovery" icon="shopping-cart" href="/user-guide/integrations/shopify">
    More proactive outreach: bring back abandoned Shopify carts the same way.
  </Card>

  <Card title="Widget design" icon="palette" href="/user-guide/widget-design">
    How the chat widget looks when it opens with your message.
  </Card>
</CardGroup>
