> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hamla.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Build audiences

> An audience in Hamla is a question, not a list. People join and leave on their own as the answer changes, so you build one once and it stays right.

Most tools make you build a list. You export a spreadsheet, filter it, upload it, and it is wrong a week later.

Hamla works the other way. You describe the people you mean — *"bought before, nothing in the last sixty days"* — and Hamla keeps answering that question. Someone who orders tomorrow leaves the audience by themselves. Someone who goes quiet next month joins it. You never touch it again.

That is why audiences are worth building before campaigns. Every campaign points at one.

## What you need

* **Contacts.** Imported, captured, or synced from a connected platform — see [Import your customers](/how-to/import-your-customers)
* Nothing else. Audiences are on every plan, including Free

## Build one by asking

> Make me a segment of customers who bought before but nothing in the last 60 days

Hamla builds it, tells you how many people are in it, and saves it. Change the number to fit how often people buy from you — thirty days for a cafe, six months for a dentist, a year for a wedding photographer.

You can be more specific in one sentence:

> Segment: three or more orders, spent over 1000, ordered in the last 90 days

Or ask a question and let Hamla work out the audience:

> Who's at risk of leaving?

## What you can filter on

Everything below is available by asking for it in plain words. You never need the field name.

| What you mean                  | What it reads                                                                        |
| ------------------------------ | ------------------------------------------------------------------------------------ |
| Who they are                   | Name, email, phone, country, city, language, timezone, tags                          |
| Where they are in your journey | Journey stage, first seen date                                                       |
| What they have spent           | Number of transactions, total spent, average value, first and last transaction dates |
| How engaged they are           | Days since last activity, activity count, intent score, churn risk                   |
| How you got them               | Captured by — popup, form, import, a connected platform, an Instagram reply          |
| Anything you track yourself    | Your own custom fields, and any event your system sends                              |

<Note>
  **"Transaction" is not only a purchase.** It is whatever counts as money changing hands in your business — an order, an invoice, a paid booking, a subscription renewal. Hamla holds the number and the date; what it means is yours.
</Note>

### The same audience across different businesses

The fields are the same. What you put in them is not.

| You run         | "Best customers" is                | "Gone quiet" is                                          |
| --------------- | ---------------------------------- | -------------------------------------------------------- |
| An online store | 3+ orders, spent over your average | No order in 60 days                                      |
| A clinic        | 3+ visits, one in the last year    | No visit in 9 months                                     |
| A restaurant    | 5+ visits                          | No visit in 30 days                                      |
| A SaaS          | Renewed at least once              | No login in 14 days *(a custom field or event you send)* |
| An agency       | 2+ projects                        | No project in 6 months                                   |
| **Yours**       |                                    |                                                          |

## Two ways in, and they are not identical

Asking is faster. The builder can do one thing asking cannot.

|                              | Asking             | The builder                      |
| ---------------------------- | ------------------ | -------------------------------- |
| Speed                        | One sentence       | A few clicks                     |
| Combining rules              | **All must match** | **Match all** *or* **match any** |
| Which branch someone visited | Not available      | Available                        |
| Which form someone came from | Not available      | Available                        |

**This is the one to know.** When you ask, every rule you name has to be true of the same person — "bought over 1000 **and** in the last 90 days". If you want *either* — "people in Riyadh **or** Jeddah" — open the audience in the dashboard and switch it to **match any**. Hamla will build the first part for you; you flip the switch.

The two picker-only fields are picker-only for a plain reason: Hamla has no way to know your branch names or your form names in conversation. In the builder they are drop-downs of your own places and your own forms.

<Note>
  **Visited location** is worth opening the builder for. If you have more than one branch and you print the QR code for each, you can build an audience of people who have actually been to one of them — and send that branch its own offer. Nothing else in Hamla knows that.
</Note>

## Dates only look backwards — except one

Every date Hamla keeps by itself is in the past: when someone was first seen, when they first bought, when they last bought, when they were last active. You can ask for "within the last N days" or "older than N days" on any of them.

There is one forward-looking question — *is this date in the next N days?* — and it only works on a date **you** send. A renewal date, an appointment, a policy expiry, a membership end.

> Make a segment of contacts whose renewal date is within the next 3 days

That is the piece that makes reminders possible. [Booking reminders](/how-to/booking-reminders) walks through sending the date in the first place.

## Audiences from your own system

If your business knows something Hamla does not, send it and then filter on it.

> Make a segment of contacts whose plan is pro and who haven't logged in for two weeks

Both halves come from you — `plan` as a trait, `logged_in` as an event. [Hamla Events](/how-to/hamla-events) is how they arrive.

You can also filter on whether an event ever happened:

> Segment everyone who booked a consultation but never attended one

## What to do with one

An audience on its own does nothing. Point something at it.

> Email everyone in the win-back segment a comeback offer

Or make joining the audience the trigger, so each person is messaged at their own moment rather than everyone at once:

> When someone enters the VIP segment, send them a welcome-to-VIP email

That second one is usually the better campaign. It never messages the people already in the audience, and it keeps working as new people arrive.

## Check on it

> How many people are in each of my segments, and which ones are growing?

An audience that never changes size is usually asking the wrong question — either too narrow to matter or so broad it is just "everyone".

## Related

<CardGroup cols={2}>
  <Card title="Import your customers" href="/how-to/import-your-customers">
    Getting the contacts in, so there is something to segment.
  </Card>

  <Card title="Hamla Events" href="/how-to/hamla-events">
    Sending what your own system knows.
  </Card>

  <Card title="Win back customers" href="/how-to/win-back-customers">
    The campaign most audiences end up pointing at.
  </Card>

  <Card title="Ad audiences" href="/how-to/ad-audiences">
    Mirroring an audience into your Meta ads.
  </Card>
</CardGroup>
