> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.chrisp.chat/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Getting started with Triggers

__Learn how to use Triggers to show automated chatbox actions based on visitor behavior.__

Triggers let you automate proactive chatbox actions, such as sending a message on a pricing page or opening the chatbox after a delay. They run when configured events match, helping you engage visitors at the right moment.

| Triggers are available on the Crisp Mini, Essentials, and Plus plans.

---

# Watch the video tutorial

${frame}[](https://www.youtube.com/embed/XAjSzgxziSw?rel=0)

---

# Create your first trigger

A trigger combines ****events****, which decide when it should run, and ****actions****, which decide what happens in the chatbox.

#### Open Message Triggers

Open [Crisp](https://app.crisp.chat), then go to ****AI Agent → Automate → Message Triggers****.

![Message Triggers menu in Crisp](https://storage.crisp.chat/users/helpdesk/website/-/5/d/1/0/5d10308e96f44800/64bd647a-b462-4ff6-bce8-d44d19_1d9gkv5.png)

#### Configure the trigger

Create a new trigger, give it a clear name, and add an identifier. For example, you can name it `` `My First Trigger` `` and use `` `my-first-trigger` `` as the identifier.

Then enable ****Show a message**** and add your localized message. You can format the message with Markdown if needed.

![Show a message action in Message Triggers](https://storage.crisp.chat/users/helpdesk/website/-/a/9/8/0/a980d6526e8ad000/c881b816-5ffa-4d9d-96fb-a84132_166ap5t.png)

#### Choose where it should appear

Enable ****On Pages****, then select the page or page pattern where the trigger should run. For example, use `` `mywebsite.com/pricing` `` for one page, or `` `mywebsite.com/article/*` `` for multiple pages under the same path.

![On Pages condition for Message Triggers](https://storage.crisp.chat/users/helpdesk/website/-/d/d/d/8/ddd8b6d4856b0000/9a3b7ca1-3b59-4680-9301-f85861_eoyrkr.png)

You can also add a delay before showing the message. A short delay, such as 10 seconds, often feels more natural than displaying a message immediately.

---

# Understand trigger actions and events

Triggers are easier to configure when you separate the action from the event.

#### Actions decide what happens

An action tells Crisp what to do in the visitor chatbox once the trigger runs.

__Available actions:__

* ****Show a message**** → sends an automated message in the chatbox
* ****Play a sound**** → plays a notification sound when allowed by the browser
* ****Open chatbox**** → opens the chatbox for the visitor

|| Modern browsers enforce strict autoplay policies. A visitor may need to interact with the page before a sound can be played.

#### Events decide when it happens

An event tells Crisp when the trigger should run.

__Available events:__

* ****Delay**** → runs after a defined time on the website
* ****Leave intent**** → runs when the visitor appears to be leaving the page
* ****Click on link**** → runs when the visitor clicks a specific link
* ****Page**** → runs when the visitor opens a specific page or page pattern
* ****User event**** → runs when a custom event is pushed with `` `$crisp.push(["set", "session:event", ["your_event_text"]])` ``
* ****User data**** → runs when custom data is set with `` `$crisp.push(["set", "session:data", ["your_key", "your_value"]])` ``

| When using ****User data**** to start a trigger, avoid `` `true` `` and `` `false` `` values. They are stored as boolean values, while the trigger condition expects a string match.

#### Combine events

You can combine multiple events to make a trigger more precise. For example, you can show a message ****after 1 minute on a specific page****, or trigger a message on ****leave intent after a short delay****.

---

# Target pages with wildcards

Page targeting supports exact URLs, wildcards, double wildcards, and negated matches.

|| The URL matcher is strict. If your website uses [`` `www.example.com` ``,](https://www.example.com,) configure [`` `www.example.com` ``,](https://www.example.com,) not only [`` `example.com` ``](https://example.com).

#### Simple wildcard

Use `` `*` `` to match one path segment. For example, [`` `https://example.com/*/pricing` ``](https://example.com/*/pricing) matches:

* [`` `https://example.com/fr/pricing` ``](https://example.com/fr/pricing)
* [`` `https://example.com/en/pricing` ``](https://example.com/en/pricing)
* [`` `https://example.com/es/pricing` ``](https://example.com/es/pricing)

#### Double wildcard

Use `` `**` `` to match deeper subdirectories. For example, [`` `https://example.com/product/**` ``](https://example.com/product/**) matches:

* [`` `https://example.com/product/aaaaaa/bbbbbb` ``](https://example.com/product/aaaaaa/bbbbbb)
* [`` `https://example.com/product/ccccccc/dddddd` ``](https://example.com/product/ccccccc/dddddd)

#### Negate match

Use `` `!` `` to exclude matching pages. For example, `` `!https://example.com/product/*/bbbbbb` `` excludes:

* [`` `https://example.com/product/aaaaaa/bbbbbb` ``](https://example.com/product/aaaaaa/bbbbbb)
* [`` `https://example.com/product/ccccccc/bbbbbb` ``](https://example.com/product/ccccccc/bbbbbb)

---

# Pause a trigger

You can pause a trigger by disabling it from its sidebar settings. This keeps the configuration saved, so you can re-enable it later without rebuilding it.

---

# Troubleshoot triggers

If a trigger does not run as expected, review the conditions and safety options first.

__Common reasons a trigger does not appear:__

* ****Website online condition**** → triggers only run when your website is online if ****Execute only if website online**** is enabled
* ****Blocked chatbox**** → triggers are ignored if the chatbox is blocked for the current visitor, page, or locale
* ****Existing trigger**** → triggers may be ignored if ****Execute only if no other trigger is used**** is enabled and another trigger is already active
* ****Returning visitor**** → triggers may be ignored if ****Execute only upon first visit**** is enabled and the visitor already has a previous conversation
* ****Already fired**** → a trigger starts only once per user, even if the conditions match again later

For practical ideas, read [25 live chat trigger examples for customer engagement](https://crisp.chat/en/blog/live-chat-triggers-25-ideas-customers-engagement/).

---

# Frequently Asked Questions

__Still have questions which were not covered in this article? Here is a collection of the most frequently asked questions on this topic.__

###### Can I trigger messages from custom events?

****Yes, you can use custom user events or user data.**** Push the event or data from the Web Chat SDK, then configure the matching trigger condition in Crisp.

Use clear string values for custom data conditions so the trigger can match them reliably.

###### Can a trigger run more than once for the same visitor?

****A trigger is remembered after it fires for a visitor.**** This prevents the same automated message from repeatedly appearing when the visitor meets the same conditions again.