> ## 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.

# AI Builder

> Describe a series in plain English and Halo plans, drafts, and lays it out for you, end to end. You review and click Activate.

## What the AI Builder is

The AI Builder is the fastest way to go from "we should send a re-engagement series" to a draft that's actually ready to ship. You describe what you want; Halo plans the whole sequence, drafts every email in parallel, sets the delays, and hands you back a fully populated series in the manual builder.

It works for **series** specifically: multi-step email sequences. For one-shot emails, use the broadcast editor's AI assistant on the right side of the page (or ask [Ask AI](/ask-ai/overview)).

Find it inside any series at **Outreach > \[your series] > AI Builder**, or by selecting **AI Agents** as the build mode when you create a new series.

## When to use it

| Use the AI Builder when...                              | Use the manual builder when...                                                     |
| ------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| You're starting from a blank canvas                     | You're tweaking an existing series                                                 |
| You want a 3 to 12 step sequence drafted in minutes     | You need fine control over branching, conditions, A/B variants, or custom triggers |
| You haven't decided exactly what each email should say  | You already know each step's content and just want to type it in                   |
| You want the AI to ground emails in your knowledge base | The series is highly bespoke and templated content would feel generic              |

You can switch between the two at any time while the series is in **draft**. The AI Builder writes its output into the same step structure the manual builder uses, so once it's drafted, you can drag steps around, add conditions, change senders, etc.

## The two phases

The builder runs in two phases, both of which you watch happen live in the chat panel.

### Phase 1: Plan

You start with a chat. The planner asks a few targeted questions to nail down:

* **Series goal**: welcome, re-engagement, onboarding, trial conversion, churn save, etc.
* **Audience**: who should receive it (the planner can read your existing audience filters or suggest new ones)
* **Length**: how many emails (3 is a typical starter; the planner will recommend a count based on your goal)
* **Cadence**: how spread out they should be (most welcome series sit at 0, 1, 3, 7 days)
* **Tone**: friendly, formal, technical, founder-style, etc.
* **Sender**: which teammate the emails come from
* **Reply-to**: where replies should land

When the planner has enough, it produces a **plan card** with one row per email: order, subject (proposed), theme, brief, and delay. You can edit anything: subject, delay, order, and you can add or remove emails. Nothing has been written yet, this is just the outline.

The plan also has a **series summary** ("a 4-step welcome series for newly-signed-up Pro users that walks through setup, integrations, and a soft upgrade prompt"), a **positioning** flag (`product` vs `marketing`), a tone descriptor, and a target audience description. These are stored on the series and used to keep all the email drafts on-brand.

### Phase 2: Build

Once you click **Build**, Halo spawns one **sub-agent per group of emails** and writes them in parallel:

* Each sub-agent has the **plan**, the **series summary**, your **knowledge base** (so emails can reference real product features, names, and value props), and your **brand voice** (extracted from your help articles, About content, and any custom system prompts).
* Sub-agents render their thinking and progress live, you'll see "Agent 1: drafting emails 1 to 3" with a status indicator.
* Each completed email appears as a card with the subject and a 1-line preview. Click to expand the full HTML body.

Build typically takes 30 to 90 seconds for a 3 to 6 email series. Longer series (10+ emails) take a couple of minutes because the sub-agents work in parallel but the writing itself takes time.

When all sub-agents finish, you get a fully populated series in the **manual builder canvas**. From there:

* Edit any email in the regular email editor
* Add waits, conditions, or in-app steps
* Switch a step from `Branded` to `Personal` styling
* Add A/B variants
* Change the trigger (manual / event / segment match / user created)
* Activate when you're ready

## What the AI Builder uses to ground the writing

The output is only as good as the context. The builder pulls from:

| Source                                                                  | Why                                                         |
| ----------------------------------------------------------------------- | ----------------------------------------------------------- |
| **Your knowledge base** (help articles, uploaded docs, crawled content) | So emails reference real features, not generic SaaS phrases |
| **Existing outreach campaigns**                                         | So tone matches what you've already shipped                 |
| **Your team list**                                                      | To pick a believable sender and signature                   |
| **Any global system prompts**                                           | Brand voice rules apply to drafts too                       |
| **The series name and your chat**                                       | Most important: what *you* say it should do                 |

If your knowledge is thin (no help center yet, no crawled docs), the drafts will be generic. The cure is uploading some product docs first. Even a single Markdown file of "what our product does and our top 5 value props" makes the difference between a generic email and one that sounds like you wrote it.

## Editing the plan vs. editing the drafts

There are two places to make changes, and the right one depends on how big the change is:

| Change                             | Where to do it                                                            |
| ---------------------------------- | ------------------------------------------------------------------------- |
| Reorder emails                     | Plan phase (cheap; rewrite stays in sync)                                 |
| Change an email's subject or delay | Plan phase, *or* drafts phase if it's just polish                         |
| Add or remove an email             | Plan phase (rebuild) is best because the surrounding emails know about it |
| Tighten a sentence                 | Drafts phase (just edit the email)                                        |
| Change the audience                | Audience picker in the series header (independent of the AI Builder)      |
| Change the tone everywhere         | Plan phase, the tone descriptor is fed to every sub-agent                 |

If you've heavily edited the drafts and then want to add another email, use **Add step** in the manual builder rather than re-running the AI Builder, otherwise you'll lose your edits.

## Limitations and trade-offs

A few things the AI Builder explicitly does not do:

* **It only drafts. It never activates.** Every series the builder produces lands in `status='draft'` and stays there until a human flips it on.
* **It only writes email steps.** No SMS, no in-app, no waits, no conditions. You add those manually after the build.
* **It picks one trigger.** The default is `manual`. You can change it to `user_created`, `event`, or `segment_match` after the build, but the builder doesn't currently optimize content for trigger type.
* **It doesn't pick the audience for you.** It writes for the audience you (or your filters) describe in the chat, but the actual filter set lives on the series and is independent. Always sanity-check the audience count before activating.
* **It can be off-brand.** If your knowledge base is thin or your tone descriptor is vague ("friendly"), drafts default to a SaaS-house style. Provide a stronger tone description and meaningful knowledge.

## Permissions

Same permissions as series in general:

| Permission        | What it lets you do                                      |
| ----------------- | -------------------------------------------------------- |
| `automation:view` | See the AI Builder tab and read drafts                   |
| `automation:edit` | Run the planner, build, edit drafts, activate the series |

The model itself runs on your workspace's AI plan; usage shows up under regular AI usage tracking.

## Workflow tips

* **Start with Halo's templates if you're stuck.** "Welcome series", "Re-engagement", and "Feature announcement" are good prompts for the planner.
* **Be specific about who, not what.** "A 4-email welcome series for newly-signed-up Pro users in B2B SaaS" is way better than "A welcome series."
* **Ground in URLs.** If you have a great help article that explains a feature, paste the URL into the chat. The planner will reference it.
* **Read the first draft, then edit hard.** Treat AI Builder output like a junior copywriter's first pass. The structure is usually right; the words always need a second look.
* **Use Halo's `Personal` email style for the first email.** It looks like a real human reaching out, and that's the email people are most likely to reply to.

## Where to go next

<CardGroup cols={2}>
  <Card title="Series" icon="layers" href="/outreach/series">
    Once the AI has drafted, the manual builder is where you finish.
  </Card>

  <Card title="Triggers & Conditions" icon="bolt" href="/outreach/triggers-and-conditions">
    Convert a manual series into one that fires on signup or events.
  </Card>

  <Card title="Knowledge" icon="book-open" href="/knowledge/overview">
    Better knowledge means better drafts. Crawl your docs first.
  </Card>

  <Card title="Ask AI" icon="sparkles" href="/ask-ai/overview">
    Or skip the page entirely and ask Ask AI to draft a series for you in chat.
  </Card>
</CardGroup>
