Skip to main content

Overview

The Triggers tab lets you create automated actions that fire based on visitor behavior. When a visitor meets specific conditions — time on page, scroll depth, UTM source, device type, and more — the trigger displays a modal popup, toast notification, or redirects to a URL. Triggers are a powerful way to engage visitors at the right moment without any coding.
Triggers tab

Triggers List

The triggers table shows all defined triggers with key metrics:
ColumnDescription
NameTrigger name
TypeAction type — Modal (centered popup), Toast (corner notification), or Redirect (URL navigation)
ConditionsSummary of firing conditions
FiresTotal number of activations
StatusActive or inactive
ActionsEdit or delete the trigger

Creating a Trigger

Click Create Trigger to open the trigger editor. The editor has two tabs: Content for visual content and Settings for behavior rules.
Create trigger editor

Content Tab

The Content tab is a visual block editor where you build the trigger’s content. Each trigger is composed of content blocks that you add, arrange, and style.

Adding Blocks

Click the + Add Block button to open the block picker. Available block types:
BlockDescription
ImageAdd an image — upload a file or paste a URL. Great for product photos, banners, or icons.
HeadingLarge text for titles and headlines. Supports text alignment (left or center).
TextBody text with rich formatting. Use for descriptions, offers, or instructions.
Feature ListA bulleted list with check icons — ideal for listing benefits, features, or included items.
Input FieldA single-line text input for collecting data (name, email, phone).
TextareaA multi-line text area for longer responses (messages, feedback).
ButtonA clickable button with customizable text, color, and action (link, close, or submit form data).
Promo CodeA styled promo code block with a copy button. Visitors click to copy the code to their clipboard.
QR CodeEmbeds a campaign QR code directly in the trigger. Visitors scan it on their phone to continue on mobile — with full campaign attribution. See Campaigns — QR Code for details.
DividerA horizontal line to visually separate sections.

Block Settings

Each block type has its own editable properties. Click a block to select it and configure: Image:
SettingDescription
URLImage source URL
Alt TextAlternative text for accessibility
Border RadiusCorner roundness in pixels (default: 0)
Heading:
SettingDescription
TextHeading content
AlignLeft (default) or Center
Text:
SettingDescription
HTML ContentRich text with formatting — supports <b>, <i>, <u>, <a>, lists, and <br>
Feature List:
SettingDescription
ItemsDynamic list of features. Each item has an icon (emoji), title, and description text. Click “Add Item” to add more.
Input Field:
SettingDescription
KeyForm field name (e.g., email, phone)
TypeText, Email, Phone, or Number
LabelField label shown above the input
PlaceholderHint text inside the field
RequiredWhether the field must be filled before submission
Textarea:
SettingDescription
KeyForm field name
RowsNumber of visible text rows (1–10, default: 3)
LabelField label
PlaceholderHint text
RequiredWhether the field must be filled
Button:
SettingDescription
LabelButton text
VariantPrimary (solid accent color), Secondary (light tint), or Outline (transparent with border)
ActionClose (dismiss trigger), Open Link (navigate to URL), Submit Form (send form data), or Copy Value (copy text to clipboard)
ValueURL for links or text for copy action
Promo Code:
SettingDescription
CodeThe promo code text (e.g., SPRING20)
LabelOptional label above the code
QR Code:
SettingDescription
QR DataURL or text to encode. Use the “Create QR” button to generate.
SizeQR code size in pixels (default: 160)
Divider: No settings — renders a horizontal line separator.

Trigger Style

The trigger container has global style settings that apply to the entire popup/toast:
SettingDescription
Background ColorContainer background (default: #ffffff)
Text ColorDefault text color for all blocks (default: #1a1a1a)
Accent ColorColor for buttons, feature icons, and promo code copy button (default: #4680ff)
Border RadiusCorner roundness of the entire trigger in pixels (default: 16)
PositionFor toast-style triggers: top-right, top-left, bottom-right, or bottom-left. For modals: centered with a dark backdrop.

Content Examples

  • Heading: “Get 10% Off Your First Order”
  • Text: “Subscribe to our newsletter and receive an exclusive discount code.”
  • Input Field: Email
  • Button: “Get My Discount” (submit action)
  • Promo Code: Revealed after form submission
  • Image: Product photo
  • Heading: “Wait! Don’t miss this.”
  • Text: “Free shipping on orders over $50 — today only.”
  • Button: “Shop Now” (link to store)
  • Button: “No thanks” (close action)
  • Heading: “Continue on your phone”
  • Text: “Scan the QR code to chat with our AI agent on mobile.”
  • QR Code: Campaign QR code with UTM tracking
  • Text: “Or click the chat button below.”
  • Image: Feature screenshot
  • Heading: “New: AI-Powered Recommendations”
  • Feature List: 3-4 key benefits
  • Button: “Learn More” (link to feature page)
  • Divider
  • Text: Small print disclaimer

Settings Tab

The Settings tab controls when, how often, and to whom the trigger is shown.

Conditions

Conditions define the rules that must be met for the trigger to fire. You can add multiple conditions and choose the logic mode: AND (all conditions must be true) or OR (any condition is enough) for the trigger to activate.
ConditionOperatorDescription
Time on page (seconds)>=, <=, =Fire after the visitor spends X seconds on the current page. Example: show a popup after 30 seconds of reading.
Pages visited>=, <=, =Fire after the visitor views X pages in the session. Example: show an offer after they browse 3+ pages.
Scroll depth (%)>=, <=, =Fire when the visitor scrolls past a percentage of the page. Example: show a CTA after 70% scroll.
UTM Source=, containsFire only for visitors from a specific traffic source. Example: show a special offer only for google visitors.
UTM Medium=, containsFire only for a specific marketing medium. Example: trigger only for cpc (paid) traffic.
UTM Campaign=, containsFire only for visitors from a specific campaign. Example: show a seasonal banner only for summer-sale campaign.
Referral ID=, !=Fire based on the rvl_ref parameter. Example: show a partner welcome message for a specific referral.
Referrer containscontainsFire based on the referring URL. Example: show a competitor comparison for visitors coming from a competitor’s site.
Page URL=, contains, starts_with, matchesFire only on specific pages. Use matches for regex patterns. Example: show a pricing popup only on /pricing.
Device type=Fire only on Desktop, Mobile, or Tablet. Example: show a mobile app download banner only on mobile.
Event fired=Fire after a specific tracking event occurs. Example: show a cross-sell popup after add_to_cart event.
Day of week (0=Sun)=, inFire only on specific days. Example: show weekend deals on Saturday (6) and Sunday (0).
Hour range [from, to]betweenFire only during specific hours. Example: show “Call us now” only during business hours 9-18.

Condition Examples

Show a newsletter popup to visitors who are actively reading:
ConditionOperatorValue
Time on page>=30
Scroll depth>=50
Device type=desktop

Frequency

Controls how often the trigger is shown to the same visitor:
OptionDescription
Once per sessionShow once during the current browser tab session. The trigger won’t show again even after page reload or navigation — only closing the tab resets it.
Once per dayShow once per calendar day. The visitor won’t see it again until tomorrow, regardless of how many sessions they have today.
Once per visitor (ever)Show only once — ever. Once a visitor has seen this trigger, it will never show again (tracked via browser token). Ideal for one-time announcements.
Every visitShow on every session. The trigger fires every time the conditions are met, regardless of how many times the visitor has seen it before. Use sparingly.
For most use cases, Once per session or Once per visitor is the right choice. “Every visit” can be annoying — use it only for critical, time-sensitive information like maintenance notices or urgent promotions.

Schedule

Optionally restrict the trigger to a specific date and time range:
FieldDescription
Start AtDate and time when the trigger becomes active. Before this moment, the trigger won’t fire even if conditions are met.
End AtDate and time when the trigger stops. After this moment, the trigger is automatically deactivated.
Both fields are optional:
  • Start only — the trigger activates on the start date and runs indefinitely
  • End only — the trigger runs immediately and stops on the end date
  • Both — the trigger runs only during the specified window
  • Neither — the trigger runs as long as it’s enabled
Use cases for scheduling:
ScenarioStartEnd
Black Friday sale popupNov 29, 00:00Dec 2, 23:59
New Year promo bannerDec 25, 00:00Jan 5, 23:59
Product launch announcementMar 15, 10:00Mar 22, 23:59
Maintenance noticeApr 1, 06:00

How Triggers Work

When the tracker script loads on your website, it fetches the active trigger definitions and evaluates them in the background:
1

Active triggers are loaded

The tracker fetches active trigger definitions from the server. The server filters by schedule (start/end dates) and active status before sending them to the client.
2

Frequency is checked

Every 2 seconds, the tracker checks each trigger’s frequency setting. If the visitor has already seen the trigger (based on localStorage or sessionStorage), the trigger is skipped.
3

Conditions are evaluated

For triggers that pass the frequency check, the tracker evaluates all conditions — time on page, scroll depth, UTM parameters, device type, fired events, and more. Conditions use AND or OR logic depending on configuration.
4

Trigger is displayed

The trigger content (modal or toast) is rendered on the page inside a Shadow DOM with the configured styling and animation. The activation is recorded as a trigger_shown event. For redirect triggers, the visitor is navigated to the target URL.
5

Visitor interacts

The visitor can interact with the trigger — click buttons, fill in fields, copy promo codes, scan QR codes, or close it. Each interaction is tracked as a separate event (trigger_clicked, trigger_dismissed, trigger_promo_copied).
Triggers are rendered inside their own Shadow DOM container, so their styles are fully isolated from your website. No CSS conflicts.

Triggers and Events Integration

Triggers create tracking events automatically. Every trigger activation is recorded as a trigger_shown event with the trigger ID and action type. You can:
  • See trigger activity in the Trigger Activity chart on the Dashboard
  • View trigger activations in the Campaign Performance table
  • Use the event_fired condition to chain triggers — e.g., show Trigger B only after Trigger A was seen
  • Combine with Custom Events for complex flows
Use the Event fired condition to create multi-step sequences. For example: Trigger 1 shows a teaser after 10 seconds. Trigger 2 shows the full offer only if the visitor clicked Trigger 1’s button (tracked as a custom event).