Triggers are the rules that decide when your popup appears. You can use them on their own, or narrow the audience further with targeting rules (who should see the popup). OptiMonk has six triggers:

  1. On exit-intent

  2. After a delay (X seconds on the page)

  3. After scrolling (X% of the page)

  4. On click (a specific element)

  5. After inactivity (X seconds without activity)

  6. On a JavaScript event


Where triggers are set

Every campaign carries one settings package: triggers, targeting rules, and frequency together. There are two ways to change it.

In the campaign's Settings tab

  1. Open Campaigns in the left menu and click the campaign you want to edit.

  2. Open the Settings tab.

  3. The first section is When will the popup show up — your current triggers, one card each.

Each trigger card names the trigger and describes it in one line, ending with the devices it runs on — for example When a visitor is about to leave your site · Desktop & mobile. Between two trigger cards the rail shows an OR badge: the campaign fires when any of them triggers.

If the campaign has none yet, the section says: No triggers yet - add one so the popup can appear.

In chat

You don't have to open the editor at all. The campaign's chat rail takes plain requests:


Change trigger to exit intent

The panel updates as you talk. When the agent changes something you already touched, you get a choice: Keep my edits or Load assistant's version (which discards yours).

The agent also suggests a trigger/targeting/frequency package by itself when a campaign is created, based on your brief and the concept — you can accept it, edit it, or replace it.


Add, edit and remove a trigger

  • Add — click Add trigger. The picker says Pick when the campaign should show. Triggers are combined with OR. and lists the six triggers with a one-line subtitle each. A trigger already on the campaign is marked Added.

  • Edit — click the trigger's card. The same dialog opens on it.

  • Remove — use the card's delete action.

In the dialog, you set the trigger's value (seconds, percent, selector or event name), pick the devices, and click Save (Cancel drops it). Each dialog carries an info box and a How it works section with the details of that trigger.

A campaign can hold up to 8 triggers.

Devices

Under On devices, you switch Desktop and Mobile on or off. Leaving both on means the popup can fire on either; switching one off makes the trigger desktop-only or mobile-only. So you can set one trigger to work only on mobile and a different one only on desktop, in the same campaign.

On click and On a JavaScript event are the exception: they have no single device switch, because each selector or event name carries its own device chooser (see below). Their cards show per element instead of a device name.


Save

While you have unsaved edits, the section shows You have unsaved changes with Discard and Save changes. Nothing reaches your visitors until you save.

If a save fails, you are told explicitly — Couldn't save your changes - they are not stored yet. Please try again. — so don't reload the page on a failed save.


A campaign with no trigger cannot go live. If you try to switch one on, OptiMonk refuses it: This campaign has no trigger, so it would never appear. Add a trigger (for example, a 5-second delay) in the campaign settings, then activate it again.


1. On exit-intent

When about to leave. The popup appears when the visitor is about to leave your site without converting — a last chance to keep them.

On desktop, OptiMonk watches the top 10 pixels of the browser's inner area: if the cursor is dragged up into that strip, it counts as exit intent. On mobile, the signals are different — see Exit-intent trigger on mobile devices.

The dialog's info box:


Shows when a visitor is about to leave your site without converting — on both desktop and mobile. Multiple triggers are combined with OR — the campaign fires when any of them triggers.

The card reads: When a visitor is about to leave your site · {devices}.


2. After a delay

X seconds on the page. Set Show after N seconds — anything from 0 to 60.

The counter starts once the page has loaded and OptiMonk has loaded with it, and it restarts on every page load.

0 seconds makes it an entry popup: it appears the moment a visitor lands. The card then reads ImmediatelyShow on page load. It works, but it interrupts people before they have seen anything, so it is rarely the best choice; follow your visitors' behaviour and pick a moment that fits.


Use 0 seconds to show immediately on page load. Multiple triggers are combined with OR — the campaign fires when any of them triggers.


3. After scrolling

X% of the page. Set Show after scrolling N % of the page, between 1 and 100.

OptiMonk watches the scroll position and calculates how far down the page the visitor currently is. This catches active visitors: on a blog, for instance, someone who has scrolled past half the article is clearly reading it, and is a far better newsletter prospect than someone who just arrived.


Shows once the visitor has scrolled down the set percentage of the page — this catches the attention of active visitors. Multiple triggers are combined with OR — the campaign fires when any of them triggers.


4. On click

Click on a specific element. The popup appears when the visitor clicks a part of your page you name — a button, a link, a banner. At that point the popup behaves like a mini landing page: put an e-book link in a blog post, and the popup that collects the email opens on the click.

Add one or more CSS selector rows (e.g. #cta-button, .promo-banner a) with Add another selector. The rows are OR-ed: a click on any of them fires the campaign. Each row has its own Desktop / Mobile toggle, so one selector can be desktop-only while the next is mobile-only.

The How it works section:


Use this trigger to show the campaign when a visitor clicks a specific part of your page — a button, link, banner, and so on. At that point the popup behaves like a mini landing page.
You can enter any CSS selector: an element name, a class, an ID, or a combination of them. Examples: a · div.container > a · table > a.delete · #container · #container > *
A click on a child element also triggers the campaign when the child sits inside a matching element.

Two things to keep in mind:

  • Clicking the element triggers the campaign instead of its normal behaviour, so don't use a selector whose own function you need.

  • Frequency caps do not apply to this trigger. As the dialog says: a click always shows the campaign as long as the targeting rules match. The popup opens on every click — including after a page reload, and even for a visitor who has already filled it in.

Finding the selector

  1. Open your site in Chrome.

  2. Right-click the element you want to use and choose Inspect.

  3. In the panel that opens, hover over the code to see which element it highlights.

  4. Take the element's id or class. An id="e-1570005882489" becomes #e-1570005882489 in the CSS selector field; a class="promo" becomes .promo.


5. After inactivity

X seconds without activity. Set Show after N seconds. Inactivity means no mouse movement, no clicking, and no scrolling.

Use it to catch visitors who have stalled: a special offer appearing unexpectedly is often enough to bring them back. If your analytics show a lot of idle time on a page, this is the trigger for it.


Shows after the visitor has been inactive (no clicks or scrolling) for the set number of seconds — this catches the attention of inactive visitors. Multiple triggers are combined with OR — the campaign fires when any of them triggers.

The dialog accepts 0–60 seconds, but the smallest value the campaign actually runs with is 1 second — a 0 is saved as 1. For an entry popup, use After a delay with 0 seconds instead.


6. On a JavaScript event

Your own custom DOM event. Use this when the moment you care about is not covered by any of the other five — a login, a filter change, a step in your own checkout.

Add one or more Event name rows (e.g. user_login) with Add another event. Like the click selectors, the rows are OR-ed, and each row carries its own device chooser.

Fire the event from your own code with the exact name you entered, on the document or on the <html> element:

document.dispatchEvent(new Event('user_login', { bubbles: true }))


Shows when a DOM event with the given name fires on your page. Multiple triggers are combined with OR — the campaign fires when any of them triggers.

You can read more about JavaScript events at w3schools.


Triggers that were set up in the classic admin

If a campaign was created in the classic OptiMonk admin and uses a trigger this app does not model (for example average time on page), it is not lost. It appears as a Custom trigger card:


Managed in the OptiMonk admin — kept as-is, not editable here.

Opening it shows the raw trigger for reference, read-only. Saving this page keeps it exactly as it is; to change it, open the classic admin.

The same applies to a delay longer than 60 seconds: the classic admin puts no upper limit on it, so such a trigger is preserved untouched rather than clamped to 60.