> For the complete documentation index, see [llms.txt](https://docs.scaleflex.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scaleflex.com/portals/portal-settings/audiences.md).

# Audiences

Group users by their attributes, and show pages only to the right ones.

An **audience** is a named group of users defined by what is true about them — their region, their role, whichever attributes you keep. Instead of maintaining lists of people by hand, you describe the group once and membership follows the attributes.

Audiences belong to the project, so every Portal in it can use the same ones.

<figure><img src="https://2536208400-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqsq2dR7Fjagf5eTifWZx%2Fuploads%2FzhDnES3ra5jUztpKBfBo%2Fimage.png?alt=media&#x26;token=8dbd74ac-48e1-476b-b901-286178a384a4" alt=""><figcaption><p>The <strong>Audiences</strong> page, listing the groups the project keeps.</p></figcaption></figure>

## Create an audience

1. Open **Audiences** and select **Create audience**.
2. Give it a **Name**, and a **Description** saying what it is for — someone else will need to know.
3. Pick a **Color**, so it is recognisable wherever it appears.
4. Add **Conditions**: an attribute, an operator, and a value.
5. Set whether **Users must match** all of the conditions or any of them.
6. Select **Create**.

**Add condition** adds as many as you need.

<figure><img src="https://2536208400-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqsq2dR7Fjagf5eTifWZx%2Fuploads%2F9LLh0Zys0THNcOEpbEVz%2Fimage.png?alt=media&#x26;token=6bf3b706-b38b-4fd0-8e83-9ebacfec6454" alt=""><figcaption><p>Creating an audience: a name, a colour, and the conditions a user has to match.</p></figcaption></figure>

## What a condition can ask

The operators on offer depend on the type of the attribute you pick:

| Attribute type                   | Operators                                                                        |
| -------------------------------- | -------------------------------------------------------------------------------- |
| **Text**                         | **Is**, **Is not**, **Contains**, **Is set**, **Is not set**                     |
| **Select-one**, **Multi-select** | **Is**, **Is not**, **Is one of**, **Is not one of**, **Is set**, **Is not set** |

**Is one of** and **Is not one of** take several values at once, so one condition can cover a handful of regions. **Is set** and **Is not set** take no value at all — they ask only whether the person has the attribute filled in.

On an attribute with a fixed list of values you choose from that list rather than typing, which is why those attributes are worth preferring for anything you intend to group on.

{% hint style="info" %}
On a **Multi-select** attribute, a condition asks what a person **holds**, not what their whole set is. **Is** matches anyone who holds that value among theirs, and **Is one of** matches anyone holding at least one of the values you picked. So a partner who covers Germany, the EU and global markets matches an audience asking for Germany.
{% endhint %}

## Using an audience

Audiences control who sees a page. On a page's **Visibility**, choose the audiences that may view it — *Users in any of the selected audiences can view this page.*

That makes one Portal serve several groups: a partner sees the partner pages, a journalist sees the press pages, and neither knows the other exists.

<div><figure><img src="https://2536208400-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqsq2dR7Fjagf5eTifWZx%2Fuploads%2FntNQDT0ufm9oPokgVE0w%2Fimage.png?alt=media&#x26;token=a5e3490e-201f-4c9a-b22f-5586e1bbb96c" alt=""><figcaption><p><strong>Visibility</strong> on a page's … menu, in the builder's page selector.</p></figcaption></figure> <figure><img src="https://2536208400-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fqsq2dR7Fjagf5eTifWZx%2Fuploads%2FMAv0rFbf4KMfDHewTNX3%2Fimage.png?alt=media&#x26;token=82eda804-00be-4622-bf3f-f3d4a2071b0c" alt=""><figcaption><p>The dialog it opens, with <strong>Specific audiences</strong> chosen and the audience list open.</p></figcaption></figure></div>

A page's **Visibility** builds its conditions the same way, with the same operators.

## Good to know

* An audience is only as good as the attributes behind it. If nobody fills in the attribute, the audience is empty and the page is invisible — a common cause of "the page disappeared".
* Audiences are shared across the project, so renaming one affects every Portal using it.
* Deleting an audience that a page depends on changes who can see that page.
