Before you start
You need:- Plain’s Slack integration connected, with the channels you want to reach set up as customer channels.
- A Slack channel per customer. Broadcasts reach customers through their connected Slack channels, so a customer with no enabled channel cannot be reached.
- The Owner, Admin, or Support role, if you want the broadcast to send under your own name.
The broadcast lifecycle
A broadcast moves through a small number of states, and the Broadcasts list has a tab for each:
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.
Writing a broadcast
Click New broadcast from the Broadcasts page.Name
The internal name, used in the Broadcasts list and in your team’s search. It never leaves Plain, so name it for your team: “Q3 pricing update. Enterprise” is more useful than “Hello”.Notification title
What recipients see in their Slack notification banner, before they open the message. This is customer-facing. By default the notification title copies whatever you type as the name. As soon as you edit the notification title yourself, it stops following the name and stays as you wrote it. A notification title is required before you can send.Content
The composer is a rich-text editor that becomes a Slack message when it sends. Press/ anywhere to insert a block.
Available blocks:
- Text, headings, bullet lists, numbered lists, quotes, and code
- Dividers
- Images
- Buttons: a labeled link, rendered as a real Slack button
-
@hereand@channelmentions
Sender
Under Send from, choose who the message appears to come from:- Your workspace: posts under your workspace’s name and avatar. This is the default.
- A user: posts under their name and avatar. Only users with the Owner, Admin, or Support role can be picked.
Options
Unfurl Slack links and media controls whether Slack expands link previews and embedded media in your message. It’s on by default, matching Slack’s own behavior. Turn it off for a message with several links that would otherwise become a wall of previews.Choosing who it goes to
The Deliver to section is where you build the audience. See Broadcast audiences for the full detail. In short:- Add filters on Audience, Channel, Channel name, Tenant, Tier, or any visible Tenant field.
- Plain resolves those filters into a list of Slack channels and shows you the channels, and the customer behind each one, as you build.
- Uncheck any channel in that list to drop it from this broadcast only.
- Save a filter you’ll reuse as an Audience.
Reviewing and testing
Save and continue saves the broadcast and moves you to the review step. Review shows the message exactly as it will arrive, with the audience locked so you can read it without changing it.Send a test
On review, the Test broadcast section lets you post the broadcast as it currently stands to up to 10 channels you name. A test is a real Slack message posted to real channels. Pick an internal channel unless you mean to send it to a customer. Test sends are recorded in the broadcast’s history but don’t change its status. The broadcast stays a draft.Sending and scheduling
At the bottom of the review step, pick when it goes out:- Send now: posts immediately. The button says Send broadcast now, and this cannot be undone.
- Schedule: pick a date and time. The time is in your local timezone, and a time in the past is rejected.
- Edit: change the message, audience, or send time, then Save changes.
- Cancel send: clears the send time and returns the broadcast to a draft. Nothing is lost, and you can reschedule it.
Watching a send
Once a broadcast starts sending, its page becomes a report that updates live while the send is running.Delivery
Four counts, taken from one snapshot so they always add up:- Recipients: total channels this send targeted
- Delivered: messages Slack confirmed
- Pending: waiting to be posted, or mid-post
- Failed: will not arrive
Recipients
Every channel the send targeted, with a status icon each. Hover a failed one to see why. Common reasons:
Failures shown here are final. Anything worth retrying was already retried automatically before it landed in this list.

