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

# Outreach Overview

> Broadcasts, series, in-app messages, and banners. The four ways HaloAgents reaches your customers proactively.

## What Outreach does

Outreach is how you talk to customers without waiting for them to come to you. Beyond the inbox (which is reactive), HaloAgents lets you send proactive emails, drip sequences, banners, and in-app messages. All four types live under **Outreach** in the sidebar (`/dashboard/outreach`).

## Choose your outreach type

| You want to...                                      | Use a...                                    | Why                                                              |
| --------------------------------------------------- | ------------------------------------------- | ---------------------------------------------------------------- |
| Send one email to a target audience                 | [Broadcast](/outreach/broadcasts)           | One-shot, audience snapshot at send time, watch the rollout live |
| Send a multi-step email sequence over days or weeks | [Series](/outreach/series)                  | Multi-step, with delays, conditions, branches, and exit rules    |
| Show a banner across your product                   | [Banner](/outreach/in-app-messages)         | Persistent, dismissible, targeted by audience                    |
| Show a modal or inline message in your product      | [In-App Message](/outreach/in-app-messages) | Higher-friction, contextual, in-product                          |
| Have AI plan and draft a multi-step series for you  | [AI Builder](/outreach/ai-builder)          | Chat-based; plan, build, and edit in minutes                     |

A useful rule of thumb: **broadcast for one-off announcements, series for lifecycle, in-app for in-product UX**.

## The four types at a glance

| Type               | Best for                                                         | Length                    | Trigger                                                                             |
| ------------------ | ---------------------------------------------------------------- | ------------------------- | ----------------------------------------------------------------------------------- |
| **Broadcast**      | Announcements, feedback requests, one-time campaigns             | 1 email                   | Manual or scheduled                                                                 |
| **Series**         | Welcome, onboarding, re-engagement, trial conversion, churn save | 2 to 50+ emails over time | Manual activation, user signs up, triggers an event, or matches the audience filter |
| **In-App Message** | Onboarding nudges, re-engagement modals, beta invites            | Single content surface    | Audience match (active users see it)                                                |
| **Banner**         | Dunning, maintenance, feature launches, urgency cues             | Single banner             | Audience match                                                                      |

Each outreach campaign has the same lifecycle: **draft → active → completed → archived**, with **paused** as an in-between state you can use any time.

## Two ways to build a series

When you create a series, you pick how to build it:

| Option             | When to use                                                                                                                                                        |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **AI Builder**     | Describe what you want; Halo plans the series, drafts every email in parallel, lays it out for you. Best for first drafts. See [AI Builder](/outreach/ai-builder). |
| **Manual Builder** | A canvas where you drag and drop nodes (email, wait, condition, end). Best for fine control, complex branching, and editing existing series.                       |

You can switch between the two while a series is in **draft**. After activation, the manual builder is the only place to edit (and most edits are locked while the series is live). See [Series](/outreach/series).

## Quick starters

The **New Outreach** button has prebuilt templates to get going:

* **Welcome series** (series): multi-step onboarding for new users
* **Feature announcement** (broadcast): single email about a new release
* **Re-engagement** (series): bring back inactive users
* **Feedback request** (broadcast): single email asking for feedback

Templates pre-fill the trigger, audience pattern, and a sensible step count. You still write the copy (or have the AI Builder do it for you).

## Audience targeting

Every outreach campaign needs an audience. Three audience types:

| Type           | What it means                                                                    |
| -------------- | -------------------------------------------------------------------------------- |
| `all`          | Every end user with an email                                                     |
| `segment`      | Filter by user/company traits, custom fields, Stripe data, conversation activity |
| `subscription` | Send to users subscribed to a specific subscription list, with consent rules     |

The recipient count updates in real time as you change filters; click **View Audience** to see exactly who will receive the send before you activate.

For consent management with subscription lists, see [Subscription Lists](/outreach/subscription-lists).

## Triggers

Series can fire four ways. The in-app labels and the underlying `entry_trigger` value:

| In-app label                    | `entry_trigger` value | When it fires                                                                                                                      |
| ------------------------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Manual activation**           | `manual`              | You activate it; everyone in the audience is enqueued at once                                                                      |
| **User signs up**               | `user_created`        | Whenever Halo first inserts a contact (any first identify, lead capture, or dashboard add). Not keyed on the `signed_up_at` trait. |
| **Triggers an event**           | `event`               | When a specific `event_type` fires from the SDK or API                                                                             |
| **Matches the audience filter** | `segment_match`       | When a contact starts matching the audience filter (existing matches enroll immediately on activate)                               |

See [Triggers & Conditions](/outreach/triggers-and-conditions) for the full breakdown of each trigger, audience options, exit rules, and goal tracking.

## Conditions and branching

Series can branch based on what users do:

* **Email opened**: branch on whether they opened a previous step
* **Link clicked**: branch on whether they clicked
* **User property**: branch on a custom field value
* **Event fired**: branch on whether they triggered an event

See [Triggers & Conditions](/outreach/triggers-and-conditions).

## Send windows and business days

Series can be scheduled to respect:

* **Send window**: only send between certain hours (e.g. 9 AM to 5 PM)
* **Business days only**: skip weekends
* **Per-user timezone**: when known, sends respect the recipient's timezone

When a send falls outside the window, it's deferred to the next valid time, never dropped.

## API access

Programmatic enrollment is available via the [Series API](/api-reference/series):

```bash theme={null}
curl -X POST https://api.haloagents.ai/api/sdk/series \
  -H "Authorization: Bearer ab_live_..." \
  -d '{ "action": "enroll", "user_id": "user_123", "series_id": "uuid" }'
```

Use this to enroll users from your backend on signup, integration connection, plan upgrade, and any other custom event.

## A starter checklist

If you're new to Outreach, ship in this order:

1. **A welcome series** (4 emails over 7 days, trigger: `user_created`). Most teams don't have this, and it's the highest-leverage thing you can build.
2. **A trial conversion series** if you have a trial. Trigger on the `trial_started` event with an exit rule for `plan_upgraded`.
3. **A re-engagement series** for users who haven't logged in in 30 days. Segment-match trigger.
4. **A feedback request broadcast** at month 1 of a customer's lifecycle.
5. **A feature announcement broadcast** template you can re-use for every launch.

That's enough to cover the lifecycle. Add a churn-save series and a post-purchase series later as your motion matures.

## Where to go next

<CardGroup cols={2}>
  <Card title="Broadcasts" icon="megaphone" href="/outreach/broadcasts">
    One-shot emails with audience targeting, recipes, and best practices.
  </Card>

  <Card title="Series" icon="layers" href="/outreach/series">
    Multi-step sequences with conditions, waits, and recipe templates.
  </Card>

  <Card title="AI Builder" icon="sparkles" href="/outreach/ai-builder">
    Describe a series in plain English; Halo plans, drafts, and lays it out.
  </Card>

  <Card title="Triggers & Conditions" icon="bolt" href="/outreach/triggers-and-conditions">
    How series start and how they branch.
  </Card>

  <Card title="In-App Messages" icon="window-maximize" href="/outreach/in-app-messages">
    Banner and modal messages inside your product.
  </Card>

  <Card title="Subscription Lists" icon="envelope-open" href="/outreach/subscription-lists">
    Consent management for marketing emails.
  </Card>

  <Card title="Troubleshooting" icon="circle-question" href="/outreach/troubleshooting">
    0 matched, missing traits on identify, and other audience issues.
  </Card>
</CardGroup>
