{"id":11320,"date":"2026-05-29T16:32:32","date_gmt":"2026-05-29T08:32:32","guid":{"rendered":"https:\/\/aeosub.com\/quillrush-newsletter-studio-for-sendy\/"},"modified":"2026-05-29T16:32:32","modified_gmt":"2026-05-29T08:32:32","slug":"quillrush-newsletter-studio-for-sendy","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/quillrush-newsletter-studio-for-sendy\/","title":{"rendered":"Quillrush Newsletter Studio for Sendy"},"content":{"rendered":"<div class=\"post-img\" style=\"margin-bottom: 25px\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/quillrush-newsletter-studio-for-sendy\/assets\/banner-1544x500.png?rev=3553141\" alt=\"Quillrush Newsletter Studio for Sendy\" style=\"width: 100%;height: auto;border-radius: 12px\"><\/div>\n<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/quillrush-newsletter-studio-for-sendy\/assets\/icon-256x256.png?rev=3553146\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/gunjanjaswal\/\" target=\"_blank\" rel=\"noopener\">Gunjan Jaswal<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.6.2<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">5.8 \/ 7.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-29 8:00am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/quillrush-newsletter-studio-for-sendy\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Newsletter studio for the Sendy + Amazon SES stack. Visual builder, two formats, scheduling, multi-list, auto-fetched lists.<\/div>\n<p>\ud83d\udce7 <strong>Quillrush Newsletter Studio for Sendy<\/strong> turns your WordPress dashboard into a full-blown newsletter creation studio for the <strong>Sendy + Amazon SES<\/strong> 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.<\/p>\n<blockquote>\n<p>\u26a0\ufe0f <strong>Requires a self-hosted Sendy install backed by Amazon SES.<\/strong> This plugin is the WordPress front-end \u2014 it does not replace Sendy or SES. If you don&#8217;t have Sendy + SES set up yet, see <a href=\"https:\/\/sendy.co\/\" rel=\"nofollow ugc noopener\" target=\"_blank\">sendy.co<\/a> and <a href=\"https:\/\/aws.amazon.com\/ses\/\" rel=\"nofollow ugc noopener\" target=\"_blank\">aws.amazon.com\/ses<\/a>.<\/p>\n<\/blockquote>\n<h4>\u2728 Headline features<\/h4>\n<ul>\n<li>\ud83c\udfa8 <strong>Visual newsletter builder<\/strong> \u2014 drag posts in, see the rendered email update live.<\/li>\n<li>\ud83d\udce8 <strong>Two newsletter formats per campaign<\/strong> \u2014 <em>The Roundup<\/em> (subscriber-facing) and <em>The Insider Brief<\/em> (editorial pitch for media &amp; partners).<\/li>\n<li>\ud83d\udccb <strong>Auto-fetched Sendy lists &amp; segments<\/strong> \u2014 pulled live via the Sendy API, shown as checkboxes with active subscriber counts. Cached 10 minutes; one-click refresh.<\/li>\n<li>\ud83e\udde0 <strong>Remembers your last selection<\/strong> \u2014 the lists you sent to last time are pre-checked next time.<\/li>\n<li>\ud83d\udd0d <strong>Infinite-scroll post search<\/strong> \u2014 AJAX-loads posts in batches of 10 as you scroll.<\/li>\n<li>\ud83d\uddbc\ufe0f <strong>Smart hero image<\/strong> \u2014 uses your uploaded banner if present, otherwise falls back to the first post&#8217;s featured image.<\/li>\n<li>\ud83d\udcf1 <strong>Mobile-first responsive layout<\/strong> \u2014 2 columns on desktop, single column on mobile (&lt; 600px), auto-height cards.<\/li>\n<li>\ud83d\udcc5 <strong>Three send modes<\/strong> \u2014 Save as Draft in Sendy, Send Immediately, or Schedule for a future date\/time.<\/li>\n<li>\ud83d\udd50 <strong>Timezone-aware scheduling<\/strong> \u2014 uses your WordPress timezone; shows current server time + zone next to the picker.<\/li>\n<li>\u267b\ufe0f <strong>Auto-recovery for overdue campaigns<\/strong> \u2014 if WP-Cron didn&#8217;t fire on time, overdue scheduled campaigns are auto-sent on next admin page-load.<\/li>\n<li>\ud83d\udee0\ufe0f <strong>Retry on failure<\/strong> \u2014 failed sends show the exact Sendy error + a one-click Retry Send button.<\/li>\n<li>\u2699\ufe0f <strong>Optional cron trigger<\/strong> \u2014 after each send, optionally hit <code>scheduled.php?i=BRAND_ID<\/code> on your Sendy host so queued campaigns process without a server cron.<\/li>\n<li>\u270d\ufe0f <strong>Custom footer block<\/strong> \u2014 extra text\/HTML above the footer in a highlighted box. Supports anchor tags + auto <code>nl2br<\/code>.<\/li>\n<li>\ud83c\udf10 <strong>Social footer icons<\/strong> \u2014 Instagram, LinkedIn, X (Twitter), YouTube.<\/li>\n<li>\ud83d\uddc3\ufe0f <strong>Campaign history<\/strong> \u2014 every campaign stored as a <code>qrnss_campaign<\/code> custom-post-type entry with Status \/ Scheduled For \/ Error columns.<\/li>\n<li>\ud83d\udd12 <strong>WordPress-native security<\/strong> \u2014 nonces on every action, <code>manage_options<\/code> capability checks, <code>wp_safe_redirect()<\/code> for all redirects.<\/li>\n<\/ul>\n<h4>\ud83d\udce8 The two newsletter formats<\/h4>\n<p>\ud83d\uddde\ufe0f <strong>The Roundup<\/strong> \u2014 visual hero + 2-column story grid for your subscribers. Uses the &#8220;Custom Footer Text&#8221; highlighted box.<\/p>\n<p>\u2709\ufe0f <strong>The Insider Brief<\/strong> \u2014 personal greeting, lead paragraph, centered hero with featured image, &#8220;What Else We&#8217;re Seeing&#8221; 2-column grid, &#8220;Why this matters&#8221; callout, &#8220;For Media &amp; Collaborations&#8221; CTA block, and a centered About Us block. Built for media pitches &amp; partner updates. All copy editable from <em>Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> The Insider Brief \u2014 Template Texts<\/em>.<\/p>\n<p>Pick the format per-campaign on the Create Newsletter page (Design Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Newsletter Format). Header and dark footer (logo, social, copyright, unsubscribe) are shared across both formats.<\/p>\n<h4>\ud83d\udccb Full settings reference<\/h4>\n<p>\ud83d\udd0c <strong>Sendy Connection Settings<\/strong><\/p>\n<ul>\n<li><strong>Sendy Installation URL<\/strong> \u2014 base URL of your Sendy install (e.g. <code>https:\/\/sendy.yourdomain.com\/<\/code>).<\/li>\n<li><strong>API Key<\/strong> \u2014 from Sendy <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Your API Key.<\/li>\n<li><strong>Brand ID (Optional)<\/strong> \u2014 from Sendy <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Settings <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Your Brand <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> ID. Required by some Sendy versions and used for auto-fetching lists.<\/li>\n<li><strong>Default From Name<\/strong> \u2014 pre-filled into every new campaign.<\/li>\n<li><strong>Default From Email<\/strong> \u2014 pre-filled into every new campaign.<\/li>\n<li><strong>Auto-Trigger Cron<\/strong> \u2014 checkbox. After sending, hit <code>&lt;sendy-url&gt;\/scheduled.php?i=BRAND_ID<\/code> so queued campaigns process without a system cron.<\/li>\n<li><strong>Show Article Excerpt<\/strong> \u2014 checkbox. Insert a 20-word excerpt between the post title and the &#8220;Read More&#8221; button.<\/li>\n<\/ul>\n<p>\ud83c\udfa8 <strong>Footer &amp; Social Settings<\/strong><\/p>\n<ul>\n<li><strong>Footer Logo URL<\/strong> \u2014 logo shown in the dark footer band.<\/li>\n<li><strong>Copyright Text<\/strong> \u2014 footer copyright line. <code>{year}<\/code> is replaced with the current year.<\/li>\n<li><strong>Custom Footer Text<\/strong> \u2014 textarea, HTML allowed. Shown in a highlighted box above the footer in <em>The Roundup<\/em>. Newlines <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> <code>&lt;br&gt;<\/code> automatically.<\/li>\n<li><strong>&#8220;Read More Articles&#8221; Link<\/strong> \u2014 optional link below the post grid.<\/li>\n<li><strong>Instagram URL<\/strong> \/ <strong>LinkedIn URL<\/strong> \/ <strong>X (Twitter) URL<\/strong> \/ <strong>YouTube URL<\/strong> \u2014 social icons in footer.<\/li>\n<\/ul>\n<p>\u2709\ufe0f <strong>The Insider Brief \u2014 Template Texts<\/strong> <em>(used only by The Insider Brief format)<\/em><\/p>\n<ul>\n<li><strong>Greeting<\/strong> \u2014 e.g. <code>Hi [First Name],<\/code><\/li>\n<li><strong>Intro Paragraph<\/strong> \u2014 lead paragraph above the hero story (HTML allowed).<\/li>\n<li><strong>Hero Section Label<\/strong> \u2014 small label above the hero (e.g. <code>Hero Story<\/code>).<\/li>\n<li><strong>Grid Section Heading<\/strong> \u2014 e.g. <code>\ud83d\udd0d What Else We're Seeing<\/code><\/li>\n<li><strong>&#8220;Why This Matters&#8221; Heading + Body<\/strong><\/li>\n<li><strong>Collaboration Heading + Body<\/strong> \u2014 e.g. <code>\ud83d\udce9 For Media &amp; Collaborations<\/code> + CTA bullets and contact info (HTML allowed).<\/li>\n<li><strong>About Us Heading + Body<\/strong> \u2014 centered About block above the footer.<\/li>\n<\/ul>\n<h4>\ud83d\udcc5 Send modes<\/h4>\n<ul>\n<li>\ud83d\udcbe <strong>Save as Draft in Sendy<\/strong> \u2014 POSTs to <code>create-campaign.php<\/code> with <code>send_campaign=0<\/code>. Campaign appears in your Sendy dashboard as a draft. WP logs status: <code>draft<\/code>.<\/li>\n<li>\ud83d\ude80 <strong>Send Immediately<\/strong> \u2014 POSTs to <code>create-campaign.php<\/code> with <code>send_campaign=1<\/code>. Sendy queues + dispatches via SES. WP logs status: <code>sent<\/code>. If <em>Auto-Trigger Cron<\/em> is on, also hits <code>scheduled.php?i=BRAND_ID<\/code>.<\/li>\n<li>\u23f0 <strong>Schedule<\/strong> \u2014 stored as a <code>qrnss_campaign<\/code> post with status <code>scheduled<\/code>. WordPress registers a one-off <code>wp_schedule_single_event<\/code> for the chosen datetime. When the event fires, the plugin sends via Sendy. Datetime picker is timezone-aware and uses your WP timezone setting.<\/li>\n<\/ul>\n<h4>\ud83d\udedf Failure handling<\/h4>\n<p>Failed sends never silently disappear:<\/p>\n<ul>\n<li>\u274c Red admin notice at the top of the Campaigns screen.<\/li>\n<li>\ud83d\udccb Exact Sendy error in the <strong>Error<\/strong> column.<\/li>\n<li>\ud83d\udd01 One-click <strong>Retry Send<\/strong> button (CSRF-nonced).<\/li>\n<li>\u267b\ufe0f Auto-recovery \u2014 overdue scheduled campaigns automatically send on next admin page-load.<\/li>\n<\/ul>\n<h4>\ud83d\uddc4\ufe0f Campaign history (CPT)<\/h4>\n<p>Every campaign is stored as a <code>qrnss_campaign<\/code> custom-post-type entry. Admin columns:<\/p>\n<ul>\n<li><strong>Title<\/strong> \u2014 subject line.<\/li>\n<li><strong>Status<\/strong> \u2014 <code>draft<\/code> (grey), <code>scheduled<\/code> (yellow), <code>sent<\/code> (green), <code>failed<\/code> (red).<\/li>\n<li><strong>Scheduled For<\/strong> \u2014 datetime if scheduled.<\/li>\n<li><strong>Error<\/strong> \u2014 Sendy error message if the send failed.<\/li>\n<\/ul>\n<h4>\ud83d\udd0c Sendy API endpoints used<\/h4>\n<p>All requests go straight to <strong>your own self-hosted Sendy installation<\/strong> at the URL you set in Settings. The plugin never talks to any third-party SaaS \u2014 Sendy itself fans out to Amazon SES from your host.<\/p>\n<ul>\n<li><code>api\/lists\/get-lists.php<\/code> \u2014 fetch lists for the Create Newsletter screen (cached 10 min). Sends: <code>api_key<\/code>, <code>brand_id<\/code>.<\/li>\n<li><code>api\/subscribers\/active-subscriber-count.php<\/code> \u2014 per-list subscriber counts. Sends: <code>api_key<\/code>, <code>list_id<\/code>.<\/li>\n<li><code>api\/campaigns\/create.php<\/code> \u2014 Save as Draft, Send Immediately, scheduled fire. Sends: <code>api_key<\/code>, <code>from_name<\/code>, <code>from_email<\/code>, <code>reply_to<\/code>, <code>title<\/code>, <code>subject<\/code>, <code>html_text<\/code>, <code>plain_text<\/code>, <code>list_ids<\/code>, <code>brand_id<\/code>, <code>send_campaign<\/code>.<\/li>\n<li><code>scheduled.php<\/code> (your Sendy host) \u2014 only when <em>Auto-Trigger Cron<\/em> is ticked. Sends: <code>i=BRAND_ID<\/code> query param.<\/li>\n<\/ul>\n<h4>\ud83d\udd12 Requirements<\/h4>\n<ul>\n<li>WordPress 5.8 or higher (tested up to 7.0).<\/li>\n<li>PHP 7.4 or higher.<\/li>\n<li>A reasonably recent self-hosted Sendy installation.<\/li>\n<li>Amazon SES configured inside Sendy (out of scope for this plugin).<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Newsletter studio for the Sendy + Amazon SES stack. Visual builder, two formats, scheduling, multi-list, auto-fetched lists.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[2488,1226,1228,2489,2490,555],"class_list":["post-11320","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-amazon-ses","tag-email-marketing","tag-newsletter","tag-sendy","tag-sendy-ses","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=11320"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11320\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=11320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=11320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=11320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}