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

# Dynamic vs Static Audiences

> Choose the right audience type for your campaign

Trackly SMS supports two types of audiences: dynamic and static. Understanding when to use each helps you target more effectively.

## Dynamic Audiences

A **dynamic audience** is evaluated at send time. The contacts included can change between sends based on recent activity.

### How It Works

1. You define conditions (e.g., "clicked in last 7 days")
2. When a campaign runs, the system queries for matching contacts
3. The current set of matches receives the message

### Use Cases

<CardGroup cols={2}>
  <Card title="Recurring Campaigns" icon="rotate">
    Daily/weekly sends that should always target the latest qualifying contacts
  </Card>

  <Card title="Engagement-Based" icon="chart-line">
    Target based on recent activity that changes frequently
  </Card>

  <Card title="Behavior Triggers" icon="bolt">
    "Clicked in last 7 days" changes daily as people click
  </Card>

  <Card title="Revenue Tiers" icon="dollar-sign">
    As contacts make purchases, they move between segments
  </Card>
</CardGroup>

### Example

**Audience**: "Active Clickers - Last 7 Days"

| Day       | Matching Contacts |
| --------- | ----------------- |
| Monday    | 5,000             |
| Wednesday | 5,200             |
| Friday    | 4,800             |
| Sunday    | 5,500             |

The audience size fluctuates as contacts click (enter) or go 7 days without clicking (exit).

### Pros & Cons

| Pros                     | Cons                              |
| ------------------------ | --------------------------------- |
| Always current           | Size may vary unexpectedly        |
| No maintenance needed    | Can't guarantee specific contacts |
| Reflects latest behavior | Slower to evaluate on large lists |

Static audiences are planned but not yet available. Currently, all audiences in Trackly SMS are dynamic and re-evaluated at send time. The section below describes the planned behavior.

## Static Audiences

A **static audience** is a fixed set of contacts captured at a specific point in time. The membership doesn't change unless you manually update it.

### How It Works

1. You define conditions and create the audience
2. The system snapshots the matching contacts
3. That exact set is used for all sends

### Use Cases

<CardGroup cols={2}>
  <Card title="One-Time Campaigns" icon="calendar">
    Black Friday buyers, webinar attendees, contest winners
  </Card>

  <Card title="A/B Testing" icon="flask">
    Ensure test groups don't change between variants
  </Card>

  <Card title="Compliance" icon="shield">
    Document exactly who received a specific message
  </Card>

  <Card title="Cohort Analysis" icon="users">
    Track a fixed group over time
  </Card>
</CardGroup>

### Example

**Audience**: "Black Friday 2024 Signups"

* Created on Dec 1, 2024
* Contains exactly 3,500 contacts
* Same 3,500 contacts forever

### Pros & Cons

| Pros                   | Cons                             |
| ---------------------- | -------------------------------- |
| Predictable size       | Becomes stale over time          |
| Exact membership known | Doesn't reflect current behavior |
| Faster evaluation      | Requires manual updates          |

## Choosing the Right Type

<Tabs>
  <Tab title="Use Dynamic When...">
    * Running recurring campaigns (daily, weekly)
    * Targeting based on recent behavior
    * The audience should "refresh" naturally
    * You want automatic updates as contacts act

    **Examples**:

    * "Clickers in last 7 days"
    * "High-value customers" (revenue keeps updating)
    * "New signups this week"
  </Tab>

  <Tab title="Use Static When...">
    * Sending a one-time campaign
    * You need exact control over recipients
    * Running an A/B test
    * Regulatory/compliance requires a fixed list
    * Targeting a historical cohort

    **Examples**:

    * "Webinar attendees - Jan 15"
    * "Contest winners"
    * "Accounts created during outage"
  </Tab>
</Tabs>

Converting between audience types will be available when static audiences are released.

## Converting Between Types

### Dynamic → Static

To freeze a dynamic audience:

1. Open the audience
2. Click **Convert to Static**
3. The current matches become the fixed membership

### Static → Dynamic

To make a static audience update again:

1. Open the audience
2. Click **Convert to Dynamic**
3. Conditions are re-evaluated each time

Note that converting a static audience to dynamic may significantly change its size if the conditions now match different contacts.

The hybrid approach described below will be available when static audiences are released.

## Hybrid Approach

For some use cases, use both:

1. Create a dynamic audience for ongoing targeting
2. Before a critical send, snapshot it to a static audience
3. Send to the static version for that specific campaign
4. Continue using dynamic for regular sends

This gives you the flexibility of dynamic with the predictability of static when needed.

## Audience Refresh

### Dynamic Audiences

Evaluation happens automatically when:

* The **schedule execution system** queues contacts for a send (not when the campaign is created/scheduled in the UI)
* You click "Refresh" in the UI
* You call the [Get Audience Size](/api-reference/v2/audiences/get-audience-size) API endpoint

<Note>
  The cached audience size shown in the UI may be up to **1 hour stale**. The actual send always evaluates the audience in real time.
</Note>

Static audience refresh will be available when static audiences are released.

### Static Audiences

To update a static audience:

1. Open the audience
2. Click **Refresh Members**
3. The system re-runs conditions and updates membership

This is a manual action -- the audience doesn't change otherwise.

## Best Practices

<AccordionGroup>
  <Accordion title="Start with dynamic">
    Most audiences should be dynamic. The automatic updates save maintenance time.
  </Accordion>

  <Accordion title="Snapshot before big sends">
    For important campaigns, snapshot to static so you know exactly who received it.
  </Accordion>

  <Accordion title="Name static audiences with dates">
    "Black Friday 2024 Buyers" is clearer than "Black Friday Buyers" (which year?).
  </Accordion>

  <Accordion title="Archive old static audiences">
    Static audiences for past events can be archived to reduce clutter.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Create an Audience" icon="plus" href="/guides/audiences/creating-audiences">
    Build your first segment
  </Card>

  <Card title="Schedule a Campaign" icon="calendar" href="/guides/campaigns/scheduling">
    Target your audience
  </Card>
</CardGroup>
