---
ref: workflow:resend-to-unopened
title: Resend a campaign to people who did not open it
author: thedogwiththedataonit
tools: [tool:brew/create-audience-from-events, tool:brew/send-email]
tags: [capability:build-audience, capability:send-email, channel:email, has:api, has:cli, has:mcp, motion:inbound]
updated: 2026-10-11
---

# Resend a campaign to people who did not open it

Builds a Brew audience of everyone who did not open a send, writes a new subject line with you, and resends the same email to them.

Set up the tools below, then run the steps in order for the user, carrying each step's results into the next. The run is done when the user has the outcome below.

## Outcome

- The same email resent with a new subject line, only to contacts who never opened the first send.
- The number of contacts it went to.

## Inputs

Ask the user for these before you start.

- `send_id`: the Brew send to follow up
- `email_id`: the email design that send delivered
- `original_subject`: the subject line it went out with
- `wait_days`: how long to wait after the first send, e.g. 3

## Set up

### Brew (tool:brew/create-audience-from-events, tool:brew/send-email)

Use the first option your agent supports.

Notes:

- Create an audience from email events: Builds in the background: poll the audience with `include=build` until it is ready before sending to it.
- Send an email: Supply subject and existing subscribed recipients. Use idempotency_key (MCP) or Idempotency-Key (HTTP), reusing it for retries. On confirmation_required, obtain approval and repeat with confirmed:true and the returned confirmation_id. Queued is not delivered.

#### MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

```json
{ "mcpServers": { "brew": { "url": "https://brew.new/api/mcp" } } }
```

- Create an audience from email events: call the MCP tool `create_audience_from_events`
- Send an email: call the MCP tool `send_email`

#### CLI (official)

Install the command, then confirm it runs.

```sh
brew install getbrew/tap/brew-cli
brew-cli --version
```

- Create an audience from email events: run `brew-cli audiences from-events`
- Send an email: run `brew-cli emails send`

Set `$BREW_API_KEY` in your environment first (get a key: https://brew.new/settings/api).

Before step 1, confirm access with the cheapest read-only call, like a list or a search. Never send or change anything to test access.

## Steps

1. **Segment** with Create an audience from email events (Brew). If `send_id` went out less than `wait_days` ago, stop and tell the user when to run this again. Otherwise build an audience of its recipients who did not open it, leaving out bounces and unsubscribes, and wait until it has built. Keep its audience ID and size.
2. **Rewrite the subject** yourself. Write two alternatives to `original_subject` that make a different promise. Show them to the user and keep the one they choose.
3. **Resend** with Send an email (Brew). After the user approves, send `email_id` with the chosen subject to the audience from step 1.

## Rules

- Use only the services set up above. The read-only calls they need, like listing ids or polling for results, are fine.
- Ask the user before anything that sends messages, costs money, or changes data, and say how many records it touches. One approval covers a batch the user has seen.
- Never print API keys.
