Broadcasts
Broadcasts are your large-scale communications designed to engage a wide audience, targeting either all your subscribers or specific segments. These include your marketing campaigns and newsletters, aimed at delivering valuable content, updates, promotions, and news.
Available Endpoints
| Method | Endpoint | Name |
|---|---|---|
| POST | batch/broadcasts | Create Broadcasts |
| GET | fetch/broadcasts | Get Broadcasts |
The Broadcast Model
The broadcast model contains a full set of keys that represent the email broadcast, the tags and segments it was addressed to, and the send rate and open rate across recipients.
Properties
- Name
name- Type
- string
- Description
The name of the broadcast campaign.
- Name
subject- Type
- string
- Description
The subject of the email.
- Name
content- Type
- string
- Description
The content of the email.
- Name
type- Type
- string
- Description
The type of email.
plainfor Bento's css orrawto use your own.
- Name
from- Type
- object
- Description
keyvalueobject of the sender, must be an author in your account.
- Name
inclusive_tags- Type
- string
- Description
A comma separated list of tags to send to.
- Name
exclusive_tags- Type
- string
- Description
A comma separated list of tags you do not want the email to go to.
- Name
segment_id- Type
- string
- Description
The segment ID for the campaign.
- Name
batch_size_per_hour- Type
- integer
- Description
The amount of emails to send per hour to ensure the highest delivery.
Get Broadcasts
Returns a list of broadcasts in your account.
- Name
site_uuid- Type
- string
- Description
Your site UUID.
- Name
page- Type
- integer
- Description
Pagination number. If you have many broadcasts, you can paginate through them by adding the page parameter. For example, to get the second page of broadcasts add ?page=2 to the end of the url. Be sure to continue to add the site_uuid parameter to the end of the url.
- Name
status- Type
- string
- Description
Optional status filter. Supported values are
sent,draft,sending,scheduled,paused, andcanceled.If omitted, Bento defaults to
sent.cancelledis also accepted as an alias forcanceled. Unsupported values also fall back tosent.
Response
Returns a collection of broadcasts and their details.
The example response below shows a draft broadcast. Draft broadcasts only return template.template_id. Other
broadcast statuses return the full template payload, including subject, to, and html.
Create Broadcasts
Create new broadcasts to be sent.
Required Attributes
broadcasts that is an array of the broadcast object properties- Name
name- Type
- string
- Description
Name of the broadcast such as a campaign name.
- Name
subject- Type
- string
- Description
Subject line of the broadcast email
- Name
content- Type
- string
- Description
Broadcast body content, supports liquid tags.
- Name
type- Type
- string
- Description
The type of email.
plainfor Bento's css orrawto use your own.
- Name
from- Type
- object
- Description
keyvalueobject of the sender, must be an author in your account.
- Name
inclusive_tags- Type
- string
- Description
A comma separated list of tags to send to.
- Name
exclusive_tags- Type
- string
- Description
A comma separated list of tags you do not want the email to go to.
- Name
segment_id- Type
- string
- Description
The segment ID for the campaign.
- Name
batch_size_per_hour- Type
- integer
- Description
The amount of emails to send per hour to ensure the highest delivery.
- Name
send_at- Type
- datetime
- Description
The date and time to send the broadcast at.
Recommended format:2024-04-23T18:30:00ZRequired whenapprovedistrue
- Name
approved- Type
- boolean
- Description
Whether the broadcast has been approved by Bento and will be sent at the scheduled time.
We STRONGLY recommend you only add this key after you've done a few test requests and have sent those manually.
Response
Returns the count of broadcasts queued for processing.
Content format examples
Use type to decide the format of content.
type: raw example: Product launch announcement
Use a complete email HTML document with inline styles. This gives you full control over layout and rendering.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>New Feature Announcement</title>
</head>
<body style="margin:0;padding:0;background-color:#f3f4f6;">
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0" style="background-color:#f3f4f6;padding:24px 0;">
<tr>
<td align="center">
<table role="presentation" width="620" cellspacing="0" cellpadding="0" border="0" style="width:620px;max-width:620px;background-color:#ffffff;border:1px solid #e5e7eb;border-radius:10px;">
<tr>
<td style="padding:14px 28px;background-color:#111827;border-radius:10px 10px 0 0;font-family:Arial,sans-serif;">
<p style="margin:0;color:#e5e7eb;font-size:12px;letter-spacing:0.02em;text-transform:uppercase;">Bento Product Update</p>
</td>
</tr>
<tr>
<td style="padding:30px 28px 16px 28px;font-family:Arial,sans-serif;color:#111827;">
<h1 style="margin:0 0 12px 0;font-size:26px;line-height:1.25;">Three new tools to improve campaign performance</h1>
<p style="margin:0 0 16px 0;font-size:16px;line-height:1.55;color:#374151;">
Hi {{ visitor.first_name | default: "there" }}, this week we shipped improvements to reporting, segmentation, and API performance.
</p>
<p style="margin:0 0 22px 0;font-size:16px;line-height:1.55;color:#374151;">
Here are the highlights and how to use each update in your next send.
</p>
<a href="https://bentonow.com/changelog" style="display:inline-block;padding:12px 18px;background-color:#111827;color:#ffffff;text-decoration:none;border-radius:6px;font-size:14px;font-weight:600;">Read the full changelog</a>
</td>
</tr>
<tr>
<td style="padding:0 28px 24px 28px;font-family:Arial,sans-serif;">
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0" style="border-collapse:separate;border-spacing:0 12px;">
<tr>
<td style="padding:14px;border:1px solid #e5e7eb;border-radius:8px;">
<p style="margin:0 0 6px 0;font-size:14px;font-weight:700;color:#111827;">Faster segment loading</p>
<p style="margin:0;font-size:14px;line-height:1.5;color:#4b5563;">Build and preview large audience segments in less time before each campaign.</p>
</td>
</tr>
<tr>
<td style="padding:14px;border:1px solid #e5e7eb;border-radius:8px;">
<p style="margin:0 0 6px 0;font-size:14px;font-weight:700;color:#111827;">Improved campaign reporting</p>
<p style="margin:0;font-size:14px;line-height:1.5;color:#4b5563;">Compare opens, clicks, and conversions in one view to find winning messages faster.</p>
</td>
</tr>
<tr>
<td style="padding:14px;border:1px solid #e5e7eb;border-radius:8px;">
<p style="margin:0 0 6px 0;font-size:14px;font-weight:700;color:#111827;">Webhook retry logs</p>
<p style="margin:0;font-size:14px;line-height:1.5;color:#4b5563;">Debug failed deliveries with detailed retry events and response payloads.</p>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="padding:0 28px 28px 28px;font-family:Arial,sans-serif;color:#6b7280;font-size:12px;line-height:1.6;">
You are receiving this email because you subscribed to product updates from Bento.
<br />
Manage your preferences at https://app.bentonow.com/preferences.
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
type: plain example: Weekly newsletter
Use simple markup for standard newsletters. Keep it lightweight with paragraphs, lists, and CTA links styled like buttons.
<p>Hi {{ visitor.first_name | default: "there" }},</p>
<p>Thanks for being part of Bento. Here is your weekly update from the product team.</p>
<h2>What shipped this week</h2>
<ul>
<li>Faster segment loading</li>
<li>Improved campaign reporting</li>
<li>New webhook retry logs</li>
</ul>
<h3>One quick win to try</h3>
<p>
Create a segment for users who clicked any email in the last 14 days, then send your next feature
announcement only to that group for higher engagement.
</p>
<p>
<!-- This is a Bento button and compatible with the editor -->
<button href="https://app.bentonow.com/broadcasts/new" target="_blank" rel="noopener noreferrer" data-bento-button="true" text="Create next broadcast" width="auto" style="background-color: #111827; color: #ffffff!important; border-radius: 8px; padding: 10px 16px; font-size: 14px; text-decoration: none!important; border: none; cursor: pointer!important; font-weight: 600; display: inline-block!important; width: auto!important;" class="shoji-bento-button" data-width="auto"><a href="https://app.bentonow.com/broadcasts/new" target="_blank" rel="noopener noreferrer" style="color: inherit!important; text-decoration: none!important;">Create next broadcast</a></button>
</p>
<p>
<a href="https://bentonow.com/docs/broadcasts" style="display:inline-block;padding:10px 16px;background:#f3f4f6;color:#111827;text-decoration:none;border-radius:6px;border:1px solid #d1d5db;">
Read docs
</a>
</p>
<p>
Need help planning your next campaign? Reply to this email and we can help with segmentation and send timing.
</p>
<hr />
<p style="font-size:12px;color:#6b7280;">
You are receiving this email because you opted in for product updates.
Update preferences in your account at any time.
</p>
For raw, include full HTML and inline CSS. For plain, use lightweight content blocks.
