Directory / plugin
Quillrush Newsletter Studio for Sendy
v1.8.1 ยท by Gunjan Jaswal
Newsletter studio for the Sendy + Amazon SES stack. Visual builder, two formats, scheduling, multi-list, auto-fetched lists.
About this plugin
๐ง Quillrush Newsletter Studio for Sendy turns your WordPress dashboard into a full-blown newsletter creation studio for the Sendy + Amazon SES stack. Drag your latest posts into a beautiful responsive HTML email, pick the Sendy lists/segments to ship to, and send via your self-hosted Sendy installation, which forwards every message through Amazon SES. No HTML coding. No external SaaS. No paid tier.
โ ๏ธ Requires a self-hosted Sendy install backed by Amazon SES. This plugin is the WordPress front-end โ it does not replace Sendy or SES. If you don’t have Sendy + SES set up yet, see sendy.co and aws.amazon.com/ses.
โจ Headline features
- ๐จ Visual newsletter builder โ drag posts in, see the rendered email update live.
- ๐จ Two newsletter formats per campaign โ The Roundup (subscriber-facing) and The Insider Brief (editorial pitch for media & partners).
- ๐ Auto-fetched Sendy lists & segments โ pulled live via the Sendy API, shown as checkboxes with active subscriber counts. Cached 10 minutes; one-click refresh.
- ๐ง Remembers your last selection โ the lists you sent to last time are pre-checked next time.
- ๐ Infinite-scroll post search โ AJAX-loads posts in batches of 10 as you scroll.
- ๐ผ๏ธ Smart hero image โ uses your uploaded banner if present, otherwise falls back to the first post’s featured image.
- ๐ฑ Mobile-first responsive layout โ 2 columns on desktop, single column on mobile (< 600px), auto-height cards.
- ๐ Three send modes โ Save as Draft in Sendy, Send Immediately, or Schedule for a future date/time.
- ๐ Timezone-aware scheduling โ uses your WordPress timezone; shows current server time + zone next to the picker.
- โป๏ธ Auto-recovery for overdue campaigns โ if WP-Cron didn’t fire on time, overdue scheduled campaigns are auto-sent on next admin page-load.
- ๐ ๏ธ Retry on failure โ failed sends show the exact Sendy error + a one-click Retry Send button.
- โ๏ธ Optional cron trigger โ after each send, optionally hit
scheduled.php?i=BRAND_IDon your Sendy host so queued campaigns process without a server cron. - โ๏ธ Custom footer block โ extra text/HTML above the footer in a highlighted box. Supports anchor tags + auto
nl2br. - ๐ Social footer icons โ Instagram, LinkedIn, X (Twitter), YouTube.
- ๐๏ธ Campaign history โ every campaign stored as a
qrnss_campaigncustom-post-type entry with Status / Scheduled For / Error columns. - ๐ WordPress-native security โ nonces on every action,
manage_optionscapability checks,wp_safe_redirect()for all redirects.
๐จ The two newsletter formats
๐๏ธ The Roundup โ visual hero + 2-column story grid for your subscribers. Uses the “Custom Footer Text” highlighted box.
โ๏ธ The Insider Brief โ personal greeting, lead paragraph, centered hero with featured image, “What Else We’re Seeing” 2-column grid, “Why this matters” callout, “For Media & Collaborations” CTA block, and a centered About Us block. Built for media pitches & partner updates. All copy editable from Settings The Insider Brief โ Template Texts.
Pick the format per-campaign on the Create Newsletter page (Design Settings Newsletter Format). Header and dark footer (logo, social, copyright, unsubscribe) are shared across both formats.
๐ Full settings reference
๐ Sendy Connection Settings
- Sendy Installation URL โ base URL of your Sendy install (e.g.
https://sendy.yourdomain.com/). - API Key โ from Sendy Settings Your API Key.
- Brand ID (Optional) โ from Sendy Settings Your Brand ID. Required by some Sendy versions and used for auto-fetching lists.
- Default From Name โ pre-filled into every new campaign.
- Default From Email โ pre-filled into every new campaign.
- Auto-Trigger Cron โ checkbox. After sending, hit
<sendy-url>/scheduled.php?i=BRAND_IDso queued campaigns process without a system cron. - Show Article Excerpt โ checkbox. Insert a 20-word excerpt between the post title and the “Read More” button.
๐จ Footer & Social Settings
- Footer Logo URL โ logo shown in the dark footer band.
- Copyright Text โ footer copyright line.
{year}is replaced with the current year. - Custom Footer Text โ textarea, HTML allowed. Shown in a highlighted box above the footer in The Roundup. Newlines
<br>automatically. - “Read More Articles” Link โ optional link below the post grid.
- Instagram URL / LinkedIn URL / X (Twitter) URL / YouTube URL โ social icons in footer.
โ๏ธ The Insider Brief โ Template Texts (used only by The Insider Brief format)
- Greeting โ e.g.
Hi [First Name], - Intro Paragraph โ lead paragraph above the hero story (HTML allowed).
- Hero Section Label โ small label above the hero (e.g.
Hero Story). - Grid Section Heading โ e.g.
๐ What Else We're Seeing - “Why This Matters” Heading + Body
- Collaboration Heading + Body โ e.g.
๐ฉ For Media & Collaborations+ CTA bullets and contact info (HTML allowed). - About Us Heading + Body โ centered About block above the footer.
๐ Send modes
- ๐พ Save as Draft in Sendy โ POSTs to
create-campaign.phpwithsend_campaign=0. Campaign appears in your Sendy dashboard as a draft. WP logs status:draft. - ๐ Send Immediately โ POSTs to
create-campaign.phpwithsend_campaign=1. Sendy queues + dispatches via SES. WP logs status:sent. If Auto-Trigger Cron is on, also hitsscheduled.php?i=BRAND_ID. - โฐ Schedule โ stored as a
qrnss_campaignpost with statusscheduled. WordPress registers a one-offwp_schedule_single_eventfor the chosen datetime. When the event fires, the plugin sends via Sendy. Datetime picker is timezone-aware and uses your WP timezone setting.
๐ Failure handling
Failed sends never silently disappear:
- โ Red admin notice at the top of the Campaigns screen.
- ๐ Exact Sendy error in the Error column.
- ๐ One-click Retry Send button (CSRF-nonced).
- โป๏ธ Auto-recovery โ overdue scheduled campaigns automatically send on next admin page-load.
๐๏ธ Campaign history (CPT)
Every campaign is stored as a qrnss_campaign custom-post-type entry. Admin columns:
- Title โ subject line.
- Status โ
draft(grey),scheduled(yellow),sent(green),failed(red). - Scheduled For โ datetime if scheduled.
- Error โ Sendy error message if the send failed.
๐ Sendy API endpoints used
All requests go straight to your own self-hosted Sendy installation at the URL you set in Settings. The plugin never talks to any third-party SaaS โ Sendy itself fans out to Amazon SES from your host.
api/lists/get-lists.phpโ fetch lists for the Create Newsletter screen (cached 10 min). Sends:api_key,brand_id.api/subscribers/active-subscriber-count.phpโ per-list subscriber counts. Sends:api_key,list_id.api/campaigns/create.phpโ Save as Draft, Send Immediately, scheduled fire. Sends:api_key,from_name,from_email,reply_to,title,subject,html_text,plain_text,list_ids,brand_id,send_campaign.scheduled.php(your Sendy host) โ only when Auto-Trigger Cron is ticked. Sends:i=BRAND_IDquery param.
๐ Requirements
- WordPress 5.8 or higher (tested up to 7.0).
- PHP 7.4 or higher.
- A reasonably recent self-hosted Sendy installation.
- Amazon SES configured inside Sendy (out of scope for this plugin).