Skip to main content
objectBroadcast

Fields

id
ID!
name
String!

Human-readable name used to identify the broadcast. Internal only — it is never shown to recipients. This is what searchBroadcasts matches on.

notificationTitle
String

The title recipients see in the notification the broadcast arrives as. Unlike name this does leave Plain, and a broadcast cannot be sent until it is set. Null until then.

content
String!

The body of the broadcast, encoded as described by contentFormat.

How content is encoded, as declared when the broadcast was created.

The channel this broadcast is authored for. Fixed at creation — content is written against this channel's rendering rules, so a broadcast cannot be moved to another channel.

isLinkUnfurlingEnabled
Boolean!

Whether Slack will expand the links and media in this broadcast when it sends. Only meaningful for a SLACK broadcast.

Who the broadcast is sent as. The variant matches the broadcast's type. Null until a sender is set.

Who the broadcast is sent to. Resolved to concrete recipients at send time, not when scheduled. Empty until a target is set.

Where the broadcast is in its lifecycle.

The broadcast's send history, newest first, and where per-recipient progress lives. Empty while the broadcast is a draft.

Unfiltered this includes test sends, which post real messages and collect real deliveries — check isTest, or narrow with filters, before presenting an entry as a real send. Because of that the first edge is not necessarily the send status describes; use latestSend for that.

Ordered by scheduledAt descending — a send's place in the history is when it was due to go out. Rescheduling therefore moves a send within the list, but only a SCHEDULED send can be rescheduled and it already sorts first, so the settled part of the history does not shift.

Arguments
first
Int
after
String
last
Int
before
String
latestSend

The send the broadcast's lifecycle fields are derived from: the most recent one that is not a test send, which is the same row status, scheduledAt, startedAt and completedAt come from. Null while the broadcast is a draft.

Equivalent to the first edge of sends(filters: { isTest: false }), but batched across a list of broadcasts where the connection is not — so prefer this in a list view and sends on a detail view.

scheduledAt

When the broadcast's send is due, or when it started if it is already underway. Null while the broadcast is a draft.

startedAt

When the send actually began, as opposed to when it was due. Null until it starts.

completedAt

When the send reached a terminal state, whatever that state was. Null until it finishes.

isDeleted
Boolean!

Whether the broadcast has been soft-deleted. Soft-deleted broadcasts are excluded from lists and search but remain queryable by ID.

createdAt
createdBy
updatedAt
updatedBy
deletedAt

The timestamp at which the broadcast was soft-deleted, or null if it has not been deleted.

deletedBy

The user or machine user that deleted the broadcast, or null if it has not been deleted.

Threads created by replies to the messages this broadcast posted. Equivalent to querying threads with a broadcastIds filter, so the connection reports the same totalCount the filter would.

Arguments
first
Int
after
String
last
Int
before
String

Reactions on the messages this broadcast posted, one entry per emoji, totalled across every channel it reached.