Message conditions
Message conditions let you control when a message is displayed to a user based on their current context or past behavior. All conditions are evaluated with AND logic โ the message is shown only when every condition is met.
You can configure conditions in the message editor under the Conditions section in the lateral panel.
Condition typesโ
URLโ
Available on: JS SDK only.
Display the message based on the current page URL.
| Operator | Description |
|---|---|
| Contains | URL contains the given fragment, e.g. /pricing |
| Does not contain | URL does not contain the given fragment |
| Equal | URL exactly matches, e.g. https://www.example.com/pricing |
| Not equal | URL does not exactly match |
| Regex | URL matches the given regular expression, e.g. ^/products/.*$ |
Screenโ
Available on: iOS, Android, React Native, and Flutter SDKs only.
Display the message based on the current screen name, as reported by your app through Screeb.screenTracking(...).
| Operator | Description |
|---|---|
| Contains | Screen name contains the given string |
| Does not contain | Screen name does not contain the given string |
| Equal | Screen name exactly matches, e.g. HomeScreen |
| Not equal | Screen name does not exactly match |
Delayโ
Display the message after the user has spent a given number of seconds on the current page or screen.
| Field | Description |
|---|---|
| Duration (sec) | Seconds to wait before displaying the message (0โ9999) |
Session durationโ
Display the message after the user has accumulated a given number of seconds on the website or app across all pages (current session).
| Field | Description |
|---|---|
| Duration (sec) | Total seconds spent on the website/app (0โ9999) |
Scrollโ
Available on: JS SDK only.
Display the message when the user has scrolled past (or before) a given percentage of the current page.
| Operator | Description |
|---|---|
| Greater than | Scroll position has exceeded the given percentage |
| Less than | Scroll position is below the given percentage |
Scroll to elementโ
Available on: JS SDK only.
Display the message when a specific element enters the viewport.
| Field | Description |
|---|---|
| CSS selector | A CSS selector identifying the element, e.g. #sign-up-section |
DOM elementโ
Available on: JS SDK only.
Display the message based on the presence of a DOM element on the page.
| Operator | Description |
|---|---|
| Loaded | The element matching the CSS selector exists in the DOM |
| Not loaded | The element matching the CSS selector does not exist in the DOM |
Event countโ
Display the message based on how many times a user has triggered a custom event tracked via the Svelte SDK.
| Field | Description |
|---|---|
| Events | One or more event names to match |
| Operator | Greater than, less than, equal to, not equal to |
| Count | Number of times the event was triggered |
Example: display the message after the user has triggered Product added to cart more than 3 times.
You can track custom events with the eventTrack method from the useScreeb() context helper.
Event sequenceโ
Display the message based on whether a user has (or has not) performed a specific list of events, in order.
| Field | Description |
|---|---|
| Operator | Equal (performed in sequence) or Not equal (not yet performed in sequence) |
| Events | An ordered list of event names |
Example: display the message only after the user has performed Visit Pricing, then Create Account, then Upgrade Plan in that exact order.
Combining conditionsโ
All conditions in the list are combined with AND logic. The message is shown only when every condition is satisfied simultaneously.
Use the Add button to stack multiple conditions. Remove individual conditions with the delete (trash) icon next to each rule.
Debugging conditionsโ
If your message is not being displayed, you can inspect which conditions are failing in the browser console:
<script lang="ts">
import { useScreeb } from "@screeb/sdk-svelte";
const { debug } = useScreeb();
debug();
</script>
This prints each active message with its conditions and their pass/fail status. See Troubleshooting for details.