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

# Segments

> A named group of contacts, reusable across campaigns.

Before segments, the only way to say "these people" was to upload a CSV into one
campaign — and that list belonged to that campaign. The next one needed the file
again, by which time the file and your database had drifted apart.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/firetone/images/segments-list.png" alt="Segments" />

## Membership is what you put in it

A segment does not change on its own. That is deliberate rather than a
limitation: a segment whose members were recomputed would change **under a
running campaign**, and somebody who matched the rule after the dialler had
already passed them would be called by a list they were not on when it started.

## Filling one

<Steps>
  <Step title="From the contacts screen">
    Filter to the people you want, then **Add to segment**. The dialog states
    how many contacts it is about to add before the button — the whole risk of a
    filter-shaped action is adding people you did not realise were in view.
  </Step>

  <Step title="From a CSV import">
    A campaign's import can name a segment, and everyone in the file joins it.
    This is the one place a bulk grouping happens without anybody choosing
    people, because the file already *is* the group.
  </Step>

  <Step title="One at a time">
    A contact's editor shows the segments they are in, with an add and a remove.
  </Step>
</Steps>

<Note>
  There is no tick-box selection on the contacts table. A tenant with fifty
  thousand contacts could not tick them one at a time, so the unit of "these
  people" is the filter already on screen — which is also what makes the count
  in the dialog trustworthy.
</Note>

## Deleting one

Removes the group, never the people — and never a campaign already loaded from
it. A campaign copies its call list *out* of a segment rather than reading it
live, for the same reason membership is static.
