---
title: "Sending to audiences"
description: "One email to everybody in one or more audiences, a separate copy for each person."
url: "https://openemail.uk/docs/mcp/tools/broadcasts"
area: "MCP server"
category: "Tools"
---

# Sending to audiences

One email to everybody in one or more audiences, a separate copy for each person.

## Sending to audiences tools

| Tool | What it does |
| --- | --- |
| previewAudienceSend | How many people a send to these audiences would reach, before anything is sent, with how many would be skipped because they unsubscribed and how many because their address is suppressed. A person in several of the audiences counts once. |
| sendToAudience | Send one email from one of your addresses to everybody in up to 10 audiences, each person getting a copy of their own. It takes html or text with merge fields such as {{firstName\|there}}, or a template, and an optional time to send. It answers at once and the sending goes on in the background. |
| listBroadcasts | The sends to audiences from this mailbox, newest first, with how far each one got, a page at a time. Name an audience to see only the sends that included it. |
| getBroadcast | One send and how far it got: how many people it was for, and how many copies are waiting, sent, failed or cancelled, and how many people were skipped. |
| cancelBroadcast | Stop a send. Every copy that has not gone yet is cancelled and nobody else is added. Copies already sent cannot be recalled. |

> Every copy is an ordinary email addressed to one person, so nobody sees who else it went to, and each one has its own tracking and webhooks. The copies are not filed in Sent: the send is the record, and `getBroadcast` is how to follow it.

> The merge fields are `{{firstName}}`, `{{lastName}}`, `{{name}}`, `{{email}}` and `{{unsubscribeUrl}}`, each with an optional fallback after a bar. Every copy carries a one-click unsubscribe header, and a body that does not place `{{unsubscribeUrl}}` itself gets a short unsubscribe line at the end. Somebody who unsubscribes is marked unsubscribed in every audience that send went to, and later sends to those audiences skip them, as they skip addresses on the suppression list.

> The whole send is checked against the plan before anything goes out, so a send the plan cannot cover is refused rather than stopped half way. Nothing makes a repeated `sendToAudience` safe, so after a lost answer read `listBroadcasts` before trying again.

> `sendToAudience` needs `emails:send` and `audiences:read`, `previewAudienceSend` needs `audiences:read`, `listBroadcasts` and `getBroadcast` need `emails:read`, and `cancelBroadcast` needs `emails:send`. The assistant in the app always asks before `sendToAudience`, and asks before `cancelBroadcast` unless you asked for it. Somebody whose access is limited to some addresses sends only to the contacts they added.
