/send-email-campaign
Send email campaigns. Use when: deploying via SendGrid, Klaviyo, Customer.io, Brevo, or Mailchimp with A/B testing.
$ npx -y skills add indranilbanerjee/digital-marketing-pro --skill send-email-campaign --agent claude-codeHow 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.mdname: 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
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
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?
Other skills on digital-marketing-pro.
- /ab-test-plan
Design A/B and multivariate tests. Use when: sample size calculation, testing hypothesis, CRO experimentation.
Open skill - /ad-creative
Generate platform-specific ad copy. Use when: Google RSA, Meta, LinkedIn, TikTok ad variations with quality scoring.
Open skill - /add-integration
Add MCP server integrations. Use when: connecting a custom tool, API, or service to the plugin via .mcp.json.
Open skill - /aeo-audit
Audit AI search visibility. Use when: checking brand presence in ChatGPT, Perplexity, AI Overviews, Gemini.
Open skill - /aeo-geo
Optimize AI engine visibility. Use when: AEO/GEO strategy, citation optimization, entity consistency across AI platforms.
Open skill - /agency-dashboard
Portfolio-level agency dashboard aggregating health metrics across all client brands — campaign status, budget pacing, KPI attainment, team utilization. Use when reviewing cross-brand portfolio health, preparing for agency leadership standups, or getting a single-view snapshot
Open skill

