> For the complete documentation index, see [llms.txt](https://docs.hackle.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hackle.io/en/crm-marketing/in-app-message-guide/in-app-message-exposure-process.md).

# In-App Message Exposure Process

## Overview

This document explains the process for determining whether an in-app message is displayed to a user.

Note that only one in-app message is displayed at a time.

## Flowchart

![](/files/zHurfRxhslj8oMm515Sv)

## Process Details

The process for determining whether to display an in-app message is as follows:

**1. The event registered as the trigger event for the in-app message occurs.**

* When the trigger event occurs, it is evaluated whether the event and property filter conditions are satisfied.
* If conditions are not satisfied, the in-app message is not displayed.

**2. Check whether the layout is supported.**

* Older versions of the SDK may not support certain in-app message layouts. (A notice is displayed when configuring an in-app message in the Dashboard.)
* If the layout is not supported in the current version of the SDK, the in-app message is not displayed.

**3. Check whether the user is registered as a test device.**

* If the user is registered as a test device, the in-app message is displayed. If an A/B Test is applied, the user is assigned to the designated test group.

**4. Check whether the in-app campaign status is active.**

* If the status is 'In Progress' or 'Completed', the in-app message is not displayed.

**5. Check whether the in-app campaign is within its display period.**

* If outside the campaign display period, the in-app message is not displayed.

**6. Check in-app campaign display limit conditions.**

* If the campaign is configured to be displayed a maximum of n times per session/device/period for the same campaign, the in-app message is not displayed due to the display limit condition.

**7. Check whether the user satisfies the audience conditions.**

* If the user does not satisfy the targeting conditions — such as properties, A/B Test distribution, Feature Flag distribution, event count conditions, etc. — the in-app message is not displayed.

**8. Check A/B Test conditions.**

* If conditions 1–7 are satisfied and no A/B Test is configured, the in-app message is displayed.
* If conditions 1–7 are satisfied and an A/B Test is ongoing, the in-app message is displayed per group. If Group A is the control group, the in-app message is not displayed.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hackle.io/en/crm-marketing/in-app-message-guide/in-app-message-exposure-process.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
