Broadcasts
Broadcasts lets an administrator compose a message once and deliver it to many people at
once as Microsoft Teams direct messages, sent by one of your AI agents. It is intended for
announcements that need to reach a defined group — a maintenance window, a policy change, a
service disruption — without anyone assembling a recipient list by hand.
Inside the Beak AI Runtime web app, Broadcasts appears in the left-hand navigation under
Engagement — the group for surfaces where the platform reaches out to people. That is the
opposite direction from the Runtime's Notifications page, which is the inbox of messages
that have reached you.
Access
Broadcasts is permission-based. The relevant permissions are:
| Permission | Allows |
|---|---|
broadcasts:read | See the Broadcasts page and its history |
broadcasts:create | Compose a draft, search directory groups, preview an audience |
broadcasts:update | Edit an existing draft |
broadcasts:send | Send a test message and schedule a broadcast |
broadcasts:delete | Delete a draft or cancel a scheduled broadcast |
None of these belong to the default user or viewer roles, so out of the box only
administrators can reach the page. To let a wider group broadcast, grant the relevant
permissions to a role from Settings → authorization. Because the permissions are separate,
you can grant a team the ability to draft and preview (broadcasts:read + broadcasts:create)
while reserving the ability to actually send (broadcasts:send) for a smaller group.
Directory lookups are performed with a service principal, so the platform must be configured
with GRAPH_TENANT_ID, GRAPH_CLIENT_ID, and GRAPH_CLIENT_SECRET for audience building to
work. Without them the audience tabs return a configuration error.
Composing a Broadcast
Select New broadcast to open the composer.
- Title — Optional. Internal label used to identify the broadcast in the history list. It is not shown to recipients.
- Message — The message body, written in Markdown. This is what recipients receive.
- Target agent — The agent that delivers the message. Recipients see the broadcast as a direct message from that agent, in the same conversation they already use with it.
Choosing an Audience
The audience builder offers three ways to define who receives the broadcast.
- Attribute filter — Build one or more conditions against Microsoft Entra user attributes,
such as
department equals FinanceorjobTitle startsWith Engineer. Multiple conditions combine with and, so every condition must match for a user to be included. - Group — Search Entra groups by name and select one. Type-ahead returns up to twenty
matches, and matching is tokenised, so typing
financewill findCorporate Finance Team. - CSV — Paste or upload an explicit list of email addresses. Addresses are validated, lower-cased, and de-duplicated.
Previewing the Audience
Select Preview audience before sending. The preview resolves the audience against the
directory and reports how many people currently match, along with a sample of the first
several names.
Resolution happens when you preview and again when you schedule — not when the draft is saved. So for a filter-based or group-based audience, someone who joins the department after you save the draft is still picked up, as long as they match at the moment you schedule. Scheduling is the cut-off: see below.
Sending a Test
Send test delivers the composed message to you alone, as a direct message from the selected
agent. The test is a real delivery through the same path a broadcast uses, so it is the
reliable way to confirm formatting and that the agent's Teams connection is working before
committing to the full audience.
Scheduling
Schedule locks the broadcast for delivery at a chosen date and time, which must be in the
future.
Scheduling is the point at which the audience is frozen: the recipient list is resolved
once, written down, and the broadcast moves from draft to scheduled, with content and
audience both read-only from then on.
This means delivery uses that stored list, not a fresh directory lookup — someone who joins the matching department after you schedule will not receive the broadcast, and someone who leaves it still will. This is deliberate: once a broadcast is scheduled, what will be sent and who will receive it are both fixed and auditable. To pick up directory changes, cancel the broadcast, edit the draft, and schedule it again.
A background dispatcher picks up broadcasts whose scheduled time has arrived and delivers them recipient by recipient, recording the outcome of each.
Broadcast History
The history list shows every broadcast for your tenant, newest first.
Finding a Broadcast
- Search — Matches the title, the message body, and the author, across every broadcast in the tenant rather than only the page on screen.
- Status and Time range — Narrow the list to particular statuses, or to broadcasts created in the last 24 hours, 7, 30 or 90 days.
- Column filters — The row of boxes under the headers refines what is currently loaded, which is useful for a quick scan within a page you have already narrowed to.
- Sorting — Select a column header to sort by it; select it again to reverse.
- Columns — Show or hide columns. Your selection is remembered between visits.
- Refresh — Choose how often the list refreshes (off, 15s, 30s, 1 minute, 5 minutes), or
refresh immediately. Useful while a broadcast moves through
scheduled→sending→sent.
The count above the table reads "Showing X of N", where N is the number of broadcasts matching your search and filters — not the number on the current page.
Exporting
Export CSV and Export PDF download the broadcasts matching your current search and
filters, not just the visible page, using the columns you have chosen to show. The PDF also
records which filters were applied, so an exported report is self-describing.
Each row shows its status and delivery statistics.
| Status | Meaning |
|---|---|
draft | Composed but not scheduled. Editable and deletable. |
scheduled | Locked with a delivery time set. Can be cancelled before it starts. |
sending | Currently being delivered to recipients. |
sent | Delivery finished. |
cancelled | Cancelled by an administrator before delivery began. |
failed | Delivery could not be completed. |
Delivery statistics break down per recipient as sent, failed, skipped, and pending, so
a partially successful broadcast shows exactly how many people received it.
Skipped Recipients
A recipient is marked skipped when the platform has no existing Teams conversation with them
for the selected agent. Teams does not permit a bot to start a conversation with someone who
has never interacted with it, so a broadcast can only reach people who have messaged that
agent at least once.
In practice this means a brand-new agent will reach very few people on its first broadcast.
If you are rolling out an agent and intend to use broadcasts with it, encourage an initial
interaction first. Check the skipped count on the first few broadcasts to see how much of
your intended audience is actually reachable.
Editing, Cancelling, and Deleting
- Edit — Available while a broadcast is in
draft. Once scheduled, editing is refused so the recorded audience and content cannot drift from what will be delivered. - Cancel — Available while a broadcast is
scheduledand has not begun sending. The broadcast moves tocancelledand is never delivered. - Delete — Removes a draft, along with any recipient records associated with it.
Best Practices
- Send a test before the real thing —
Send testuses the same delivery path as a real broadcast, so it catches a formatting mistake or a broken Teams connection before the message reaches an audience you cannot recall it from. - Read the audience count in the preview — A filter that matches far more or far fewer people than expected usually means a directory attribute is spelled or populated differently than assumed.
- Watch the
skippedcount on early broadcasts — It tells you how much of your intended audience the agent can actually reach; a high count on a newly deployed agent is expected rather than a fault. - Schedule rather than send blind — Scheduling freezes the recipient list, which gives you an auditable record of exactly who a message was addressed to.
- Keep broadcast permissions narrow — Because the permissions are separate, a team can hold
broadcasts:readandbroadcasts:createto draft and preview without holdingbroadcasts:send.