Skip to content
Marketing
Skill

/send-email-campaign

Send email campaigns. Use when: deploying via SendGrid, Klaviyo, Customer.io, Brevo, or Mailchimp with A/B testing.

From plugin
digital-marketing-pro
727158 skills24 agents18 commands
Install
$ npx -y skills add indranilbanerjee/digital-marketing-pro --skill send-email-campaign --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/send-email-campaign

Context preview

The summary Claude sees to decide when to auto-load this skill.

Send email campaigns. Use when: deploying via SendGrid, Klaviyo, Customer.io, Brevo, or Mailchimp with A/B testing.

SKILL.md

send-email-campaign.SKILL.md
name: send-email-campaign
description: "Send email campaigns. Use when: deploying via SendGrid, Klaviyo, Customer.io, Brevo, or Mailchimp with A/B testing."
disable-model-invocation: false
argument-hint: "[campaign-name]"

/digital-marketing-pro:send-email-campaign

Purpose

Create and send a targeted email campaign through the brand's connected email platform with personalization, A/B subject lines, compliance checks, and deliverability monitoring. Handles the full lifecycle from content validation through send execution to post-send monitoring, with tiered risk controls based on recipient list size. Ensures every send passes spam, compliance, and brand voice gates before reaching any inbox.

Execution gate (MANDATORY — cannot be skipped)

1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system. 2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run. 3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run. 4. Record the approval with `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"risk_level":"<tier>","summary":"..."}'` **before** executing, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action mark-executed --id {approval_id}` after the platform confirms success.

Input Required

The user must provide (or will be prompted for):

  • **Email content**: Subject line, preview text (40-90 chars), body copy with HTML structure, and primary CTA — or a draft to refine
  • **Target list or segment**: The recipient list name, segment ID, or audience criteria for the send — with confirmation of list hygiene status (last cleaned date)
  • **Email platform**: Which email service to use — SendGrid, Klaviyo, Customer.io, Brevo, or Mailchimp — must have the corresponding MCP server connected
  • **Personalization fields**: Dynamic fields to personalize — first name, company, product interest, last purchase, location, or custom merge tags with fallback defaults for missing data
  • **A/B variants**: Optional — 2-3 subject line or content variants for split testing with desired test percentage (10-50%), test duration, and winning metric (open rate or click rate)
  • **Send time**: Immediate send, scheduled date and time with timezone, or "optimal" to use send-time optimization based on historical engagement data per segment
  • **Reply-to address**: Reply-to email address if different from the default sender configured in the platform
  • **Sender name and from address**: Display name and from address — must match authenticated sending domain (SPF, DKIM, DMARC)
  • **Unsubscribe handling**: Confirm unsubscribe link placement, one-click unsubscribe header compliance (required for bulk senders per Gmail/Yahoo 2024 rules), and preference center link
  • **UTM tracking**: Google Analytics UTM parameters for all links in the email body (source, medium, campaign), or auto-generate based on brand naming conventions
  • **Suppression list**: Any additional email addresses or domains to exclude from this send beyond the platform's global suppression list
  • **Email template**: Optional — platform template ID to use, or build from scratch with the provided content and brand styling
  • **Preheader text strategy**: Whether the preview text should complement, tease, or extend the subject line — affects how the email appears in inbox list view
  • **Fallback content**: Plain-text version of the email for recipients whose clients do not render HTML, or auto-generate from the HTML body

Process

1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults. 2. **Verify email platform connection**: Check which email MCP server is connected and confirm it matches the user's target platform. Verify the sending domain is authenticated (SPF, DKIM, DMARC records). If not connected or not authenticated, instruct the user on setup steps. 3. **Score email subject lines**: Run `email-subject-tester.py` on all subject line variants to evaluate length (optimal 30-50 chars), power words, personalization token effectiveness, emoji usage, and predicted open rate. Recommend improvements if any variant scores below threshold. 4. **Check spam score**: Run `spam-score-checker.py` to analyze subject lines and body content for spam trigger words, excessive capitalization, exclamation marks, link-to-text ratio, image-to-text ratio, and authentication alignment. Flag any deliverability risks with specific remediation steps. 5. **Optimize send time**: If the user selected "optimal" timing, run `python "${CLAUDE_PLUGIN_ROOT}/scripts/send-time-optimizer.py" --industry {industry} --audience-type {b2b|b2c|mixed}` to suggest a send window by day of week and hour. NOTE: this returns a **static industry heuristic (2024-era best-times table)** — it does NOT read your historical engagement data. Treat the output as a starting hypothesis and validate it against your own segment's open/click history before relying on it. Factor in the timezone distribution of the recipient list. 6. **Build platform-specific payload**: Structure the email payload per the target platform's API requirements — consult `skills/context-engine/platform-publishing-specs.md` for field mappings, template rendering, merge tag syntax (e.g., `{{first_na

Read more
Ships withdigital-marketing-pro

Your agency just signed a 50-brand client. The previous agency left no playbook. Three brands are bleeding budget, two have stale positioning, one is launching in a regulated jurisdiction next month. Where do you start?

Get the whole plugin