
Newsletters from the Payload admin: any collection becomes subscribers, then compose, test and send via Resend.
EmailTurns any Payload collection with an email field into a subscriber source kept in sync with Resend contacts. Lists created in the admin become Resend segments, and campaigns are written in Lexical, previewed per subscriber, tested, then sent or scheduled as Resend broadcasts. Unsubscribes return through a signed webhook. Requires a Resend API key, a verified domain and Payload 3.88 or newer.
Newsletters for Payload CMS on Resend Broadcasts: any collection becomes a subscriber source, admin-defined lists sync to Resend segments, and campaigns are composed, previewed per subscriber, tested, scheduled and sent from the admin.
Installation
npm i @payload-solutions/plugin-resend-broadcasts2
Stars
0
Forks
0
Open Issues
Today
Last Updated
0
Weekly Downloads
v0.1.0
npm Version
599.0 KB
Unpacked Size
3
Dependencies
Trends appear after 7 days of data. Daily snapshots have not started yet.
Shared by 5 plugins in mpresecan/payload-solutions.
Trends appear after 7 days of data. Daily snapshots have not started yet.
Each point is npm's rolling 7-day download count.
Health Score
Composite score based on GitHub activity, stars, npm downloads, publish recency, dependency count, and package size.
Badge for your README
[](https://payloaddirectory.dev/plugins/1356812914-plugin-resend-broadcasts)<a href="https://payloaddirectory.dev/plugins/1356812914-plugin-resend-broadcasts"><img src="https://payloaddirectory.dev/badge/1356812914-plugin-resend-broadcasts.svg" alt="Payload Directory"></a>README
Newsletters for Payload CMS on Resend Broadcasts. Any collection with an email becomes a subscriber source kept in step with Resend contacts; lists created in the admin become Resend segments; campaigns are written in Lexical, previewed as any person in the list, tested, and sent or scheduled as a Resend broadcast. Unsubscribes come back by signed webhook.
Full documentation: https://payload.solutions/docs/plugins/resend-broadcasts
pnpm add @payload-solutions/plugin-resend-broadcasts
Peer dependencies: payload ^3.88, @payloadcms/richtext-lexical, @payloadcms/ui, react, react-dom. The resend SDK and React Email ship with the plugin.
// payload.config.ts
import { resendBroadcastsPlugin } from '@payload-solutions/plugin-resend-broadcasts'
export default buildConfig({
collections: [Users, Subscribers],
plugins: [
resendBroadcastsPlugin({
from: 'Acme <[email protected]>', // a domain verified in Resend
sources: [
{ collection: 'users' }, // opt-in checkbox added, off by default
{
collection: 'subscribers', // email, name and subscribed added if missing
defaultSubscribed: true,
properties: { plan: { type: 'string', value: ({ doc }) => doc.plan } },
},
],
}),
],
})
RESEND_API_KEY=re_... # full access: contacts, segments, broadcasts
RESEND_WEBHOOK_SECRET=whsec_... # webhook → /api/resend-broadcasts/webhook, events contact.updated + contact.created
pnpm payload generate:importmap && pnpm payload generate:types
Add media: { collection: 'media' } for an Image block in campaigns; the media collection must be readable without a login, because mail clients fetch images anonymously.
In the admin: Newsletter → Lists (Resend segments, optionally filtered with a Payload query), Campaigns (with the Preview & send tab), Sync runs and Newsletter Settings.
Write {{firstName|there}} in a campaign and the preview shows each subscriber's own value; at send time it becomes Resend's {{{contact.first_name|there}}}, so the campaign is rendered once and Resend personalises it per contact.
Campaigns are written in Lexical, with an Image block. |
Send a test, then send now or schedule — with every variable explained. |
Lists become Resend segments and stay in sync. |
Drafts, scheduled and sent campaigns. |
More in the documentation: https://payload.solutions/docs/plugins/resend-broadcasts
pnpm dev # admin on http://localhost:3500/admin, [email protected] / test
pnpm test:unit # tokens, resolver, options
pnpm test:int # real Payload + SQLite against the in-memory Resend mock
pnpm test:e2e # Playwright against `pnpm dev`
Without RESEND_API_KEY the dev app talks to an in-memory Resend served at /resend-mock (see dev/resend-mock). /resend-mock/__mock/state shows what it received; POST /resend-mock/__mock/contacts/<email>/unsubscribe plays a reader unsubscribing and delivers a signed webhook back to the app.
MIT. Resend is a trademark of Resend, Inc.; this plugin is not affiliated with or endorsed by Resend. Payload, the Payload design, and related marks, designs, and logos are trademarks or registered trademarks of Payload CMS, Inc. in the U.S. and other countries.
Topics
plugin emails
Transactional emails defined in code, with copy editors can change, preview and test-send from the admin.
652/wk2v3
payload plugin
Email advocacy and contact management with broadcasts, forms and letter campaigns inside the Payload admin
515/wk1v3
payload plugin easyemail
Visual EasyEmail Pro template editor and starter library in a dedicated Payload admin workspace
363/wk2v3
payload usesend
Email adapter that sends Payload emails through the open-source, self-hostable useSend API
83457/wk8v3
payload order emails
Transactional emails on Payload order creation and status changes, with overridable templates
570/wk1v3
eusend payload
Payload email adapter that sends transactional email through the eusend REST API from the EU
543/wk1v3 v4