Broadcast List
Embed the broadcast list with delivery stats, and optionally open the creation wizard in-frame.
Mounts the broadcast list as an iframe: past and scheduled broadcasts, their delivery funnel (sent, delivered, read, replied, failed), and per-recipient drill-downs. This is the read surface that pairs with the Broadcast creator: point it at a spot in your app where users review what they've sent.
With showCreateButton on, the list also grows the three create actions (Send new campaign, Send template, Re-target). They open the creation wizard inside this same iframe and return to the list when the user goes back, discards, or finishes sending, so one embed covers the whole review-and-resend loop.
Quick start
<div id="embed" style="height: 720px"></div>
<script src="https://new.theultimate.io/embed.js" defer></script>
<script>
Embed.render("broadcastList", {
target: "#embed",
authToken: "<jwt>", // or apiKey: "pm_xxx"
theme: "system",
showCreateButton: true, // opt in to the create / resend actions
on: {
ready: function () {
console.log("list ready");
},
},
});
</script>Options
On top of the common options:
| Option | Type | Required | Description |
|---|---|---|---|
showCreateButton | boolean | no | Show the Send new campaign, Send template, and Re-target actions. Defaults to false (read-only list). |
When showCreateButton is false the list is view-only: users can browse broadcasts, open reports, and export, but the create actions are hidden. Leave it off for dashboards where sending happens elsewhere.
Create actions
With showCreateButton: true, each action opens the broadcast wizard inside this iframe, pre-filled for its intent:
| Action | Opens the wizard |
|---|---|
| Send new campaign | Empty, for a fresh broadcast. |
| Send template | Pre-filled from the selected broadcast's template. |
| Re-target | Pre-filled with the selected broadcast's failed and sent recipients. |
Back, Discard, and a completed send all return to the list. The round-trip stays inside the one iframe, so your page doesn't wire anything up: mount the list, and the wizard is reachable from it.
Just the creator?
If you only need a "New broadcast" button that isn't attached to a list, embed the Broadcast surface directly instead.
Events
| Event | Fires when |
|---|---|
ready | The list has loaded and authenticated. |
Creating a broadcast happens inside the iframe and lands the user back on the list, so there is no created event on this surface. If you need to react to a send, embed the Broadcast creator, which emits created.
Teardown
render returns an instance; call destroy() when you remove the embed (required in SPAs):
var instance = Embed.render("broadcastList", {
target: "#embed",
authToken: "<jwt>",
showCreateButton: true,
});
// later…
instance.destroy();How is this guide?


