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

# Broadcasts

> Send one message to many customers from Plain, and track delivery and replies per channel.

Broadcasts let you send one message to many customers at once, straight from Plain. Write it once, choose who it goes to, and Plain posts it to the connected Slack channels that match your configured audience.

Every reply will come back as a normal Plain thread, linked to the broadcast that started it.

## Before you start

You need:

* Plain's Slack integration connected

* A Slack channel per customer - Broadcasts reach customers through their connected Slack channels, so a customer without a channel cannot be reached.

* The Owner, Admin, or Support role, if you want the broadcast to send under your own name.

## Sending a broadcast

Follow these steps to send a broadcast:

* [Create a broadcast](/docs/product/broadcasts/create): the name, notification title, content, and sender

* [Broadcast targets](/docs/product/broadcasts/targets): filter customers into a list of Slack channels

* [Send and schedule](/docs/product/broadcasts/schedules): review it, post a test, then send now or schedule it

* [Read the report](/docs/product/broadcasts/reports): delivery counts, per-channel statuses, reactions, and reply threads

## The broadcast lifecycle

A broadcast has four states, and the Broadcasts list has a tab for each:

| Tab         | What's in it                                                         |
| ----------- | -------------------------------------------------------------------- |
| Drafts      | Broadcasts you're still writing. Editable, nothing has been sent.    |
| Scheduled   | Queued to send at a set time. Still editable, and still cancellable. |
| In progress | Currently resolving recipients or posting messages.                  |
| Sent        | Finished sending, whether fully, partially, failed, or canceled.     |

A broadcast can only be sent once. After it sends, the message becomes read-only and the page turns into a report on how the send went. To send the same message again, duplicate the content into a new broadcast, or filter on the threads the first one created and follow up there.

## Who can use broadcasts

Your role in the workspace decides what you can do with broadcasts. Access is role-based, not tied to your plan:

* **Viewer**: can open every broadcast and its report, but cannot create, edit, delete, or send
* **Support, Admin, and Owner**: can create, edit, delete, and send broadcasts, and can create, edit, and delete [audiences](/docs/product/broadcasts/audiences)

Anyone who can open **Broadcasts** can see every broadcast in the workspace. There is no per-broadcast visibility.

## Using the API

You can create, update, send, and test broadcasts through the [GraphQL API](/docs/graphql/introduction). The [API key](/docs/graphql/authentication) needs all four of the following permissions:

* `broadcasts:create`
* `broadcasts:send`
* `broadcasts:read`
* `workspaceSlackIntegration:read`

`workspaceSlackIntegration:read` is required because a broadcast resolves its audience into Slack channels, which means reading your Slack integration.

To create, update, list, and delete saved audiences, the key also needs:

* `broadcastAudience:create`
* `broadcastAudience:edit`
* `broadcastAudience:read`
* `broadcastAudience:delete`

Use `broadcastSendTargetRecipients` to see who a send target resolves to before you save it. Use `sendTestBroadcast` to post a draft to up to 10 named Slack channels. A test send does not change the broadcast's status.

## Resources

* [Broadcast audiences](/docs/product/broadcasts/audiences): build and reuse the filter that decides who a broadcast reaches
* [Slack](/docs/product/channels/slack): connect the integration and set up customer channels
* [Tenants](/docs/product/platform/tenants): the customer accounts and tenant fields you filter on
* [Tiers](/docs/product/platform/tiers): the service levels you filter on
* [GraphQL API](/docs/graphql/introduction): the data model behind the API permissions above
