End-user documentation

WP Mailify User Guide

Everything you need to design email templates, manage reusable sections, send campaigns, and use the queue—written for site administrators and marketers.

Introduction

WP Mailify is a WordPress plugin for building HTML email templates with a visual drag-and-drop builder, saving them on the server, and sending through wp_mail or connected email providers (SendGrid, Mailgun, Brevo, Postmark, Mailchimp campaigns). It supports bulk queues, optional A/B subjects, open tracking, saved segments, automation triggers, and inbound webhooks for bounces and complaints.

All Mailify screens live under WordPress Admin → Mailify. Your role must include the manage Mailify capability (Administrators have it by default).

Requirements & access

  • WordPress 6.0+ and PHP 7.4+.
  • SMTP: For reliable delivery with the “WordPress (wp_mail)” provider, use an SMTP plugin (e.g. WP Mail SMTP, FluentSMTP) so wp_mail uses your mail server.
  • Cron: Scheduled batches and the send queue rely on WordPress cron (wp-cron.php). For production, a real system cron hitting your site is recommended.
  • HTTPS: Recommended for REST, webhooks, and admin nonces.

First steps

  1. Open Mailify → Settings. Set default From name and From email, optional API keys, queue rate limit, and webhook options.
  2. (Optional) Under Starter content, click Import starter sections once to add sample header, button, and footer snippets to the Section library.
  3. Go to Mailify → Templates, create a template, and open the builder to design your first email.
  4. Use Mailify → Send for a test message or a bulk send.
Tip: After importing starter sections, edit them under Section library to match your brand before using them in campaigns.

Templates & visual builder

Mailify → Templates lists your email templates (custom post type). Each template has a numeric ID used in URLs and automation settings.

Opening the builder

From the template row, open the builder (full-screen). The interface includes:

  • Elements sidebar: drag blocks onto the canvas (#screen). Thumbnail previews load element HTML into block iframes.
  • Sources / Visual editor modes: switch between block-level HTML tools and in-place content editing (.editContent regions).
  • Template title in the top bar—syncs with the saved template name.
  • Save persists builder JSON and cached HTML for sending.
  • Export downloads combined markup.

Pages

You can add multiple “pages” in the builder (tabs). The Send screen typically uses the active page’s content; know which page is selected before exporting.

Revisions

From the template list, use Revisions to view history, restore an older version, and configure required merge tags (see below).

Corrupt layout data: If saved builder JSON is invalid, Mailify may offer to clear layout meta. Cached HTML may still send until you save a new layout—back up before clearing.

Section library

Sections are small reusable HTML fragments (not full templates)—for example a shared footer or CTA row. They are stored in the database and can include merge tags like {{site_name}}.

Where to manage them

Mailify → Section library: add, edit, or delete sections (title + HTML). Only trusted administrators should edit HTML.

Starter import

Settings → Starter content → Import starter sections runs once per site and inserts three samples. Duplicate clicks show a notice that the pack was already imported.

Using sections in the builder

In the builder toolbar, choose a section from the dropdown and click Insert HTML. The HTML is appended inside the last block’s template area (#page) on the canvas—you must have at least one block dragged onto the canvas first.

Using sections on Send

The Send screen can insert the same library snippets into the HTML textarea where supported.

Send screen

Mailify → Send is where you compose or choose content and dispatch email.

  • Template vs custom HTML: pick a saved template or paste HTML.
  • Recipients: manual list, roles, WooCommerce customers (if applicable), saved segment, or Mailchimp audience (when configured).
  • Provider: wp_mail or a configured ESP.
  • Subject and optional Subject B when A/B testing is enabled.
  • Plain text body optional; may be auto-generated from HTML for multipart mail.
  • Schedule: send now or schedule for a future time (site timezone).
  • Open tracking and A/B options when enabled; preflight may require {{unsubscribe_url}} in HTML for bulk.

Submitting creates a batch and enqueues rows in the database; the background processor sends at the configured rate.

Queue & batches

Mailify → Queue lists batches: status, counts, provider, optional opens (when tracking is on), and actions (cancel, retry failed, delete, export failures).

Status (typical)Meaning
scheduledWaits until scheduled_at; promoted by minute cron.
processingActively sending pending rows.
completedNo pending work (check failed count).
cancelledStopped by user; pending rows not sent.

SendGrid note: When A/B or open tracking is on, SendGrid may use per-recipient sends instead of a single bulk API call (documented tradeoff in settings).

Segments

Mailify → Segments lets you define saved recipient rules (e.g. roles, meta, Woo flags) and reuse them on the Send screen. Preview counts help validate before sending.

Activity log

Mailify → Activity shows audit events (sends, queue actions, imports, etc.) with filters and optional CSV export (cap applies). Useful for troubleshooting and compliance review.

Settings (overview)

Default sender & queue

From identity for API and wp_mail paths; max sends per minute throttles the queue (0 = unlimited).

API keys

Optional keys for SendGrid, Mailgun (with region), Brevo, Postmark, Mailchimp. Keys can be overridden via wp-config.php constants—see the main plugin file header for names.

WooCommerce

Optional: send a template when an order reaches a chosen status.

Automation triggers

Optional new user email, Contact Form 7 follow-up—off by default; set template IDs carefully.

Webhooks

  • Inbound URL for ESP events (e.g. SendGrid). Either configure SendGrid/Twilio public key for signed requests or use the shared secret (X-Mailify-Secret or ?secret=).
  • Bounces, spam complaints, and unsubscribe events add addresses to suppression so you do not keep mailing them.

Brand kit

Optional colors, font stack, and button radius applied to outgoing HTML via filter pipeline.

Open tracking default

When enabled, new bulk sends may pre-check “track opens.” Use only where permitted by law and policy.

Merge tags

Use placeholders in HTML and subjects as {{tag_name}}. Common tags include {{unsubscribe_url}}, {{site_name}}, {{site_url}}, and recipient-specific values resolved at send time.

Required merge tags (per template, Revisions screen): preflight checks that each listed tag appears in the outgoing HTML or subject before bulk send.

Privacy & compliance

  • Include a working unsubscribe link for bulk mail; Mailify provides {{unsubscribe_url}}.
  • Open tracking uses a 1×1 pixel; disclose in your privacy policy where required.
  • Store API keys securely; prefer constants in wp-config.php on high-security sites.
  • Suppression list prevents sends to bounced/unsubscribed addresses ingested via webhooks.

Frequently asked questions

Why don’t emails arrive when I use “WordPress (wp_mail)”?
WordPress does not send mail by itself on many hosts. Install and configure an SMTP plugin, verify From address, and check spam folders.
Where did my section “Insert HTML” go?
Insert targets the last block on the canvas inside #page. Add at least one element block first, then insert. Empty canvas shows an alert.
Section library dropdown is empty in the builder
Add sections under Mailify → Section library or import starter sections once. Reload the builder after adding.
Why is my batch “scheduled” forever?
WordPress cron must run. Visit the site front-end, set up a system cron, or use a cron plugin. Also confirm the scheduled time is in the past in the site timezone.
SendGrid bulk vs single sends
A/B subjects or open tracking need different HTML/subjects per recipient; Mailify falls back to single-recipient API calls for those batches.
What is the difference between a template and a section?
A template is a full email design saved as a Mailify post. A section is a reusable HTML snippet from the library, inserted into a template or send HTML.
Can I use my own HTML without the builder?
Yes—paste HTML on the Send screen or maintain templates via REST/API workflows; you still benefit from merge tags and queue sending.
How do I restore an old template version?
Templates → Revisions for that template → choose a snapshot and restore.
Why does preflight block my send?
Preflight enforces non-empty subject/HTML, required merge tags, subject B when A/B is on, and unsubscribe tag rules for tracked bulk sends.
Is Mailchimp integration the same as WordPress users?
Mailchimp sends go to people already in the selected Mailchimp audience; WordPress does not auto-import subscribers to Mailchimp.
Who can access Mailify?
Users with the manage_mailify capability (default: Administrators). manage_options is treated as a fallback in code paths.
Where is data stored?
Templates are posts + post meta. Queue, sections, suppression, audit, segments, opens, and revisions use custom tables prefixed with wp_mailify_ (with your DB prefix).

Glossary

BatchOne send job with shared HTML/subject/provider and many queued recipients.
Builder stateJSON describing block layout; separate from cached HTML used for sending.
ESPEmail service provider (SendGrid, Mailgun, etc.).
PreflightValidation before enqueue/send.
SuppressionList of emails not to send to (from webhooks/manual rules).
Variant (A/B)Per-recipient a or b subject assignment in the queue.