> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.apologist.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.apologist.ai/_mcp/server.

# Audiences

> Save a definition of who a rule applies to, and reuse it across Agents

A Call to Action, a guardrail or an automation runs for everyone by default. That is usually too broad. The handoff you want to offer a first-time visitor is not the one you want to keep offering someone who already took it, and a message written for readers in one country can be wrong somewhere else.

An Audience is how you narrow it. It is a saved definition of who a rule applies to, built once and reused wherever the question comes up:

* **Only on some interfaces.** Show a Call to Action on the website but not to API callers.
* **Only in some languages or countries.** Run a guardrail for visitors reading in one language, and leave the rest alone.
* **Only for people you have marked.** Stop offering a handoff to anyone who has already accepted it.
* **Only for some Responders.** Apply a rule to conversations handled by one persona and not another.

That third one needs somewhere to record the mark, which is what **User Flags** are. They are covered on this page too, because an Audience is the main thing that reads them.

Audiences belong to your team rather than to one Agent, so one Audience can narrow rules on every Agent you run.

## Purpose

Create the User Flags you want to filter on, build an Audience from them and the other filters, and understand what an empty filter means.

## Prerequisites

* **Audiences on your team's plan.** They are included from Pro upward, and the navigation item is absent without them.
* Permission to manage Audiences for your team.
* Whatever you intend to filter on already set up: the Responders, Channels or languages an Agent uses. You can filter on things that do not exist yet, but the pickers will be empty.

## The Rule That Governs Every Filter

**An empty filter is not a filter.** Every field on an Audience is a multi-select that constrains nothing while it is empty, so a brand new Audience with nothing selected matches everyone.

Read each field as "only when", never as "including". Selecting two languages does not add those languages to something, it restricts the Audience to only those two. An Audience is the intersection of every filter you set, and the fields you leave alone drop out of the question entirely.

## Steps

#### Open the Audiences Library

Select **Audiences** under **Agents** in the left-hand navigation. Like Evaluators and Benchmarks, this is a team-level library rather than something inside an Agent.

The list is also the way in to **User Flags**, through the button above it. Start there if you plan to filter on flags, since an Audience can only choose from flags that already exist.

![The empty Audiences list in Console under the Agents group, with the User Flags and Create Audience buttons above it.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/7c28092263f75f298e44ce4edf8dd48c7a1a1953df907168a8fd7e9ddb22a849/docs/assets/images/console/audiences-list-light.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=b4fba53cbc1a0e7d2c075ad1046508237c6f0f8f2c680fadeccc1f104ab765ad&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)![The empty Audiences list in Console under the Agents group, with the User Flags and Create Audience buttons above it.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/970444df058e4edf82082a84054c701f38cd93ffc71ae7eb426e51ee834d6d08/docs/assets/images/console/audiences-list-dark.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=4b9e9d65c0bb7a99f8eecf1c7f354780e2c7af81f7c8c408d0fc28893ce36adf&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

#### Create the User Flags You Want to Filter On

Select **User Flags**, then **Create User Flag**, and add one per thing you want to remember about a person. A flag is a name and nothing else: it is either true for someone or it is not. **Create and Create Another** keeps the form open, which is quicker when you know you need several.

Nothing sets a flag from here. Calls to Action, guardrails, automations and responder routing each have a **Set User Flags** field that turns one on when they run, and this page is where the flag has to exist first. Skip this step if you are not filtering on flags.

The name is a label for you. Everything that references a flag does so by its id, so renaming one later does not break the rules that use it.

![The Create User Flag form in Console, showing the explanatory notice and a single Name field filled in with Accepted Handoff.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/7832b34335de584ea28f986ab41b46e7242b0b9e6e36c4d59155dd1c1c3c95a4/docs/assets/images/console/user-flag-form-light.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=2ef97725bf3f6180ef4515f26d2a3e4c458c16e985961e57f3c6f7d219b263f8&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)![The Create User Flag form in Console, showing the explanatory notice and a single Name field filled in with Accepted Handoff.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/db586f7f547ff1833361ec03983fac03b4a561c934117bef0b01b9348012425b/docs/assets/images/console/user-flag-form-dark.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=acebfd698174113a09911799cdcf7fff973cc778501738c47a39c2dc71a639c9&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

#### Name the Audience and Choose Its Responders

Go back to **Audiences** and select **Create Audience**. On the **Summary** tab, give it a **Name** that describes who it matches rather than what it is for, since the same Audience will be picked from a list on several unrelated rules. "Returning Spanish readers" survives reuse; "CTA filter" does not.

**Active starts off.** Turn it on, or the Audience is offered nowhere once you save it, and the list hides it behind its default **Active** filter. **Responders** narrows the Audience to conversations handled by particular personas, and leaving it empty means any Responder.

![The Summary tab of the Create Audience form in Console, with the Name filled in as Latin America Follow-Up, the Active toggle on, and Seeker Responder selected under Responders.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/e9bc503fea1c510c1c6473f10b3bbf665856f1e003dcc107f107b7dccaf81a37/docs/assets/images/console/audience-summary-tab-light.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=5c41610af3b65c9304838cebfa253cfab6f6a465d7f9c4d46b3e964d09144a6e&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)![The Summary tab of the Create Audience form in Console, with the Name filled in as Latin America Follow-Up, the Active toggle on, and Seeker Responder selected under Responders.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/ecba618bce93f4cb0ae772c860f21f123b88556c6444da73deae8b142b5287a4/docs/assets/images/console/audience-summary-tab-dark.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=7e72e5f3317dd1f112d0ca6097438c80401933f136352df67c09050fced5bc32&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

#### Narrow by Interface

The **Interfaces** tab decides where a rule reaches people. **Client Types** lists the ways someone can talk to an Agent, including the API, MCP and Benchmarks, and an empty selection means all of them.

**Channels** then restricts messaging delivery to particular channels. It is only available when Client Types is empty or includes **Channels**, because it makes no sense otherwise, and an empty selection means every channel.

![The Interfaces tab of the Create Audience form in Console, with Channels and Standalone selected under Client Types and Seeker on LINE selected under Channels.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/436822ed42703cd526f145a6b715b781efccc56e53adb84554cbaf17c639c31e/docs/assets/images/console/audience-interfaces-tab-light.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=9f54e846635e7fabba054d6717eff2f41d86a0e1ef328e6a4c52226e0ddddce3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)![The Interfaces tab of the Create Audience form in Console, with Channels and Standalone selected under Client Types and Seeker on LINE selected under Channels.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/ffd188cf08c1bb2f11e3a8b7771fd258718e9dce1bc3b5435720c74e39415890/docs/assets/images/console/audience-interfaces-tab-dark.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=b69a703373121c193eba342e258288a6e17a5a3cb4d0c0d3053d02843c555f50&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

#### Narrow by Language and Country

The **Demographics** tab matches on the prompt rather than on the person. **Languages** matches the language the prompt is in, and **Countries** matches where it came from.

Country is derived from the request and is not always known. A prompt with no country cannot match an Audience that lists any, so a country filter quietly excludes anyone the Agent cannot place.

![The Demographics tab of the Create Audience form in Console, with Spanish and Portuguese selected under Languages and Mexico and Brazil under Countries.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/be81fd83d8bf85f53273b844d5ba4d62f0844f8a9900d6ef082ede36f12de684/docs/assets/images/console/audience-demographics-tab-light.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=96a389d42a5e6b86f3632e11a6dd008443bbc0f0cd00d92f2a40ca63c939e7dd&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)![The Demographics tab of the Create Audience form in Console, with Spanish and Portuguese selected under Languages and Mexico and Brazil under Countries.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/5aca51239cf2e289286c67b5fcbd0b34101433badad1031901e1b24aa9edcedc/docs/assets/images/console/audience-demographics-tab-dark.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=76f4e4726e16a22be5f496a5d57cb32837b99f54a40711fa7f1439c7a1cad27a&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

#### Narrow by User Flag

The **User Flags** tab is where the flags from step 2 become a filter, and the two fields are not opposites.

**Require User Flags** matches only people who have **all** of the listed flags true. **Exclude User Flags** rejects anyone who has **any** of them true, and a flag that was never set counts as not true, so it passes. Requiring a flag and excluding a different one at the same time is the usual way to describe "has done this, has not done that".

![The User Flags tab of the Create Audience form in Console, with Requested Human selected under Require User Flags and Accepted Handoff under Exclude User Flags.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/2a6a14ed707df45f004334ce2160dbdade05c0e8796ac10de6775cdd3173e1b3/docs/assets/images/console/audience-user-flags-tab-light.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=cf62bc462922c5c8b47315ac08b2f1c88f032ffcbcef83e274346e5177d6baa9&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)![The User Flags tab of the Create Audience form in Console, with Requested Human selected under Require User Flags and Accepted Handoff under Exclude User Flags.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/apologist.docs.buildwithfern.com/448ddccb702b882b22f2fdf9f20fae06eb1a13d38bffa3f4fa963604f8a56026/docs/assets/images/console/audience-user-flags-tab-dark.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260919%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260919T125735Z&X-Amz-Expires=604800&X-Amz-Signature=b286de130644656fc6d19dca48ac674f80c1af9d8536e2d27557780b82ec13f9&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

#### Save It

Select **Create Audience**. The Audience is now offered anywhere a rule can be narrowed, as long as it is **Active**.

Turning an Audience off later stops it being offered to new rules, but rules already using it keep it. Deactivating is therefore not a way to switch a rule off.

## Expected Result

The Audience appears in the library and can be picked on any rule that narrows by audience. It changes nothing on its own: an Audience is a description, and only the rule that selects it does anything.

## What Each Filter Matches

| Filter             | Tab          | Matches when                                            | Empty means                       |
| ------------------ | ------------ | ------------------------------------------------------- | --------------------------------- |
| Responders         | Summary      | the Responder handling the conversation is one of these | any Responder                     |
| Client Types       | Interfaces   | the person is using one of these ways in                | any client, Benchmarks included   |
| Channels           | Interfaces   | delivery is on one of these channels                    | any channel                       |
| Languages          | Demographics | the prompt is in one of these languages                 | any language                      |
| Countries          | Demographics | the prompt came from one of these countries             | any country, and unknown ones too |
| Require User Flags | User Flags   | the person has **all** of these flags true              | no requirement                    |
| Exclude User Flags | User Flags   | the person has **none** of these flags true             | no exclusion                      |

Everything set has to be true at once. Filters combine with "and", never with "or", so an Audience with four filters set is narrower than any one of them.

## Where Audiences Are Used

| Page                                                          | What it narrows                         |
| ------------------------------------------------------------- | --------------------------------------- |
| [Calls to Action](/console/orchestration/calls-to-action)     | who is shown the content                |
| [Custom Guardrails](/console/orchestration/custom-guardrails) | whose prompts and responses are checked |
| [Automations](/console/orchestration/automations)             | whose conversations are tagged          |
| [Responder Routing](/console/orchestration/responder-routing) | who is routed to a given Responder      |

The Audiences list can be filtered by what uses each one, which is the quickest way to check whether an Audience is safe to change.

## Troubleshooting

* **There is no Audiences item in the navigation.** Your plan does not include Audiences, or your role cannot manage them. Both are settled by your team owner.
* **The Audience you just created is missing from the list.** New Audiences are created inactive unless you turned **Active** on, and the list filters to **Active** by default. Clear that filter to see it, then open it and turn **Active** on.
* **The Audience matches everyone.** Every filter is empty, and an empty filter constrains nothing. Set at least one.
* **The Audience matches nobody.** The filters are combined with "and", so check they can all be true at once. A language and a country that rarely occur together will produce almost no matches.
* **The Channels picker is unavailable.** Client Types is set to something that does not include **Channels**. Add it, or clear Client Types entirely.
* **The User Flags tab has nothing to choose.** No flags exist yet. Create them from the **User Flags** button on the Audiences list first.
* **Someone who should match does not.** Check the exclude list before the include list. A single excluded flag rejects a person no matter how much else matches.
* **A country filter excludes more than expected.** Country is derived from the request and is sometimes unknown. Unknown never matches a country filter.
* **An Audience cannot be selected on a new rule.** It is inactive. Rules already using it are unaffected, which is why the change can look like it did nothing.

## Next Step

Continue to [Responder Routing](/console/orchestration/responder-routing), which uses an Audience to decide which persona answers, or to [Calls to Action](/console/orchestration/calls-to-action) to narrow who sees one.