Skip to main content
Campaigns let your chatbot start the conversation instead of waiting for a visitor to click the widget. A campaign shows a message bubble next to the launcher when a visitor matches your targeting rules — based on their behavior, the page they’re on, or who they are.
Proactive Campaigns require the Pro plan or higher.

How campaigns work

A campaign has a message, a set of behavioral triggers, an optional audience, a re-display frequency, and an optional schedule window. When a visitor’s browser matches an active campaign’s triggers, the widget shows the message as a dismissible bubble next to the launcher. Opening the bubble starts a conversation seeded with that message; the bubble auto-dismisses after 10 seconds if ignored. Only one proactive bubble can show per page load, even if several campaigns are eligible. When multiple campaigns match, priority decides which one registers its triggers first (lower numbers win ties).

Creating a campaign

  1. Go to Dashboard > Campaigns
  2. Click New campaign
  3. Enter a name (internal only) and the message visitors will see
  4. Set at least one trigger under Targeting
  5. Choose an audience (optional)
  6. Choose a frequency for how often it can re-show
  7. Optionally set a schedule window and priority
  8. Click Create campaign
New campaigns are created as drafts and don’t show to visitors until activated.

Triggers

At least one trigger is required — a campaign with none can never fire, and the dashboard blocks saving it:
  • Time on page — fires after the visitor has been on the page for N seconds
  • Scroll depth — fires once the visitor scrolls past a percentage of the page
  • Exit intent — fires when the visitor’s cursor moves toward closing the tab (desktop only)
Two additional filters narrow who can trigger the campaign, on top of the triggers above:
  • Returning visitors only — only fires for visitors who have been to the site before (tracked via a local storage marker)
  • Identified visitors only — only fires once the visitor has been verified via user verification; if they aren’t yet identified when a trigger would otherwise fire, the campaign waits and fires as soon as identify() runs

Page targeting

  • Only on pages containing — one URL fragment per line; the campaign only fires on matching pages
  • Except on pages containing — one URL fragment per line; the campaign never fires on matching pages

Audience

By default a campaign broadcasts to every visitor who matches its triggers. You can instead restrict it to a specific audience:
  • Everyone — no contact-level targeting (the default)
  • Saved segment — target an existing contact segment. Only rule-based segments can be selected; legacy search-based segments match nobody in a campaign and are excluded from the picker
  • Custom rules — build a one-off rule set with the same rule builder used for segments, without saving it as a reusable segment
Audience targeting is resolved against the contact tied to the visitor’s identity or conversation. Contact-level fields (identity verified, status, spam score, custom attributes, etc.) only apply once a visitor is matched to a contact; anonymous visitors can still match rules based on country code. If you enable identity-based targeting, verify user verification is set up first — otherwise logged-in visitors won’t be matched to their contact until they start a conversation.
Broadcast campaigns (audience = Everyone) ride the widget’s 5-minute config cache. Audience-targeted campaigns are evaluated per-visitor on every page load and are never cached, so targeting always reflects live contact data.

Frequency

Frequency controls how often the same browser can see a campaign across separate visits (separate from the triggers, which control when it fires within a single page load):

Schedule & priority

  • Starts / Ends (optional) — a date-time window during which the campaign is eligible. Outside the window it behaves as inactive, without needing a status change
  • Priority — lower numbers are evaluated first and win ties when multiple campaigns match the same visitor at once

Statuses

Toggle Active/Paused directly from the campaign card. Use the card’s menu to Edit, Archive, or (once archived) Delete a campaign.

Tracking

Each campaign card shows four live counters:
  • Impressions — times the bubble was shown
  • Clicks — times a visitor opened the bubble
  • CTR — clicks divided by impressions
  • Conversations — conversations started from this campaign’s bubble

Plan limits

Free-plan workspaces can’t create campaigns. On Pro, you can create as many draft campaigns as you like, but only 5 can be Active at once — activating a 6th is blocked until you pause or archive another. See Billing & Plans for full plan details.

Tips

  • Start with one trigger, not several. A campaign needs only one of time-on-page, scroll depth, or exit intent to fire — combining page-targeting filters with a single clear trigger reads better than stacking triggers.
  • Use priority to layer campaigns. Put your most specific, highest-value campaign (e.g., a pricing-page nudge) at a lower priority number than a general site-wide one.
  • Prefer “Once ever” or a cooldown for anything time-sensitive, like a limited offer — “Every session” can otherwise re-show the same message on every visit.
  • Build the audience as a saved segment if you’ll reuse it across campaigns; use custom rules for a one-off targeting need.
  • Watch CTR, not just impressions. A high-impression, low-CTR campaign usually means the trigger fires too early or the message isn’t relevant to that page.