email-marketing-automation

Build automated email flows for welcome series, post-purchase follow-ups, win-back campaigns, and browse abandonment to drive repeat revenue

11 stars

Best use case

email-marketing-automation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Build automated email flows for welcome series, post-purchase follow-ups, win-back campaigns, and browse abandonment to drive repeat revenue

Teams using email-marketing-automation should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/email-marketing-automation/SKILL.md --create-dirs "https://raw.githubusercontent.com/finsilabs/awesome-ecommerce-skills/main/skills/marketing-growth/email-marketing-automation/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/email-marketing-automation/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How email-marketing-automation Compares

Feature / Agentemail-marketing-automationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Build automated email flows for welcome series, post-purchase follow-ups, win-back campaigns, and browse abandonment to drive repeat revenue

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Email Marketing Automation

## Overview

Triggered email flows automatically send personalized messages based on customer behavior and lifecycle stage, achieving 3–5x higher open rates than broadcast campaigns. Klaviyo (for Shopify/BigCommerce) and AutomateWoo or Klaviyo plugin (for WooCommerce) provide pre-built flow templates for the four critical flows: welcome series, post-purchase nurture, win-back campaigns, and browse abandonment. Most merchants can set these up without writing any code.

## When to Use This Skill

- When setting up a new store and needing baseline lifecycle email coverage
- When replacing manual one-off campaigns with behavior-triggered sequences
- When recovering revenue from customers who browsed but did not purchase
- When re-engaging lapsed customers who have not ordered in 60–180 days
- When personalizing post-purchase communication to reduce returns and increase LTV

## Core Instructions

### Step 1: Choose the right tool

| Platform | Recommended Tool | Why |
|----------|-----------------|-----|
| **Shopify** | Klaviyo | Pre-built flow templates, deep Shopify integration, automatic event tracking (Viewed Product, Added to Cart, Checkout Started, Placed Order), predictive analytics |
| **WooCommerce** | AutomateWoo ($99/yr) or Klaviyo (WooCommerce plugin) | AutomateWoo has native WooCommerce triggers and hooks; Klaviyo plugin syncs WooCommerce events |
| **BigCommerce** | Klaviyo or Omnisend | Both have native BigCommerce integrations and pre-built lifecycle flow templates |
| **Custom / Headless** | Klaviyo (via Track API) or SendGrid | Send events to Klaviyo's API; build flows in their visual editor |

### Step 2: Set up the four core flows

---

#### Shopify with Klaviyo

Install Klaviyo from the Shopify App Store. Klaviyo automatically tracks Shopify events — no additional setup required for event capture.

**Flow 1: Welcome Series**

1. Go to **Klaviyo → Flows → Create Flow → Welcome Series** (use the pre-built template)
2. The default template sends 3 emails:
   - Email 1 (immediate): Welcome + brand story + 10% discount for first purchase
   - Email 2 (day 2): Bestsellers or curated collection
   - Email 3 (day 7): Brand mission / social proof
3. Customize the email copy and design using Klaviyo's drag-and-drop editor
4. The flow triggers automatically when someone subscribes via your Shopify popups, checkout opt-in, or newsletter form
5. Add a **conditional split** on "Has placed an order" to skip the discount email for customers who already purchased after subscribing

**Flow 2: Post-Purchase Series**

1. Go to **Klaviyo → Flows → Create Flow → Post-Purchase** (use template)
2. Default 4-step structure:
   - Email 1 (immediate): Order confirmation + product care tips
   - Email 2 (day 2): Shipping notification (Klaviyo connects to Shopify's fulfillment events)
   - Email 3 (day 7): Delivery check-in + cross-sell recommendations
   - Email 4 (day 21): Review request (connects to Klaviyo's review integration or Judge.me)
3. Add a filter: **"Has NOT placed order since starting this flow"** → skip the review request if they ordered again (they are already happy)

**Flow 3: Browse Abandonment**

1. Go to **Klaviyo → Flows → Create Flow → Browse Abandonment** (use template)
2. Trigger: **Viewed Product** metric
3. Wait 30 minutes → Check: **"Has NOT started checkout since flow start"** → send email
4. Email content: Use Klaviyo's **Dynamic Product Block** — it automatically shows the exact product the customer was viewing with live price and image
5. Wait 24 hours → Send follow-up with "Others also liked" product recommendations

**Flow 4: Win-Back / At-Risk**

1. Go to **Klaviyo → Flows → Create Flow → Win Back** (use template)
2. Trigger: **Segment membership** → "Predicted Churn Risk: High" (Klaviyo calculates this automatically)
3. Default 3-step structure:
   - Email 1 (day 0): "We miss you" + personalized product recommendations based on past purchases
   - Email 2 (day 7): Social proof + new arrivals
   - Email 3 (day 14): Final offer with 10–15% discount + expiry date
4. Add a **flow filter**: "Has not placed an order" — this ensures the flow stops immediately when the customer converts

---

#### WooCommerce with AutomateWoo

1. Go to **AutomateWoo → Workflows → Add Workflow**

**Welcome Series:**
- Trigger: **Customer → Created** (new customer account) or **Subscribe → Newsletter** (with your email plugin)
- Add 3 email actions with timing delays: immediate, +2 days, +7 days
- Use AutomateWoo's variable system to insert first name, recommended products, etc.

**Post-Purchase Series:**
- Trigger: **Order → Status Changed to Completed**
- Action 1 (immediate): Send order confirmation email
- Action 2 (+7 days): Send review request (AutomateWoo integrates with YITH Reviews and WooCommerce Reviews Pro)
- Add Rule: "Order was placed by this customer" and "Customer has not created a review for this order"

**Browse Abandonment:**
- Requires: AutomateWoo Pro + the **Browse Abandonment add-on**
- Trigger: **Browse Abandonment** → Wait 30 minutes → Send email with viewed product

**Win-Back:**
- Trigger: **Customer → Win Back** (built-in AutomateWoo trigger)
- Set "No order in the last" to 60 days
- Create 3 workflows for escalating interventions at 60, 90, and 120 days

---

#### BigCommerce

1. Install **Klaviyo** from the BigCommerce App Marketplace
2. Klaviyo syncs all BigCommerce order and browse events automatically
3. Follow the same Klaviyo flow setup as the Shopify instructions above
4. BigCommerce does not have an equivalent to Shopify's native abandoned checkout emails — Klaviyo handles this entirely

---

#### Custom / Headless

Send behavioral events to Klaviyo's API, then build flows in Klaviyo's visual editor:

```typescript
// Track key events via Klaviyo's Events API
async function trackKlaviyoEvent(email: string, eventName: string, properties: object) {
  await fetch('https://a.klaviyo.com/api/events/', {
    method: 'POST',
    headers: {
      'Authorization': `Klaviyo-API-Key ${process.env.KLAVIYO_PRIVATE_KEY}`,
      'Content-Type': 'application/json',
      'revision': '2024-10-15',
    },
    body: JSON.stringify({
      data: {
        type: 'event',
        attributes: {
          metric: { data: { type: 'metric', attributes: { name: eventName } } },
          profile: { data: { type: 'profile', attributes: { email } } },
          properties,
          time: new Date().toISOString(),
        },
      },
    }),
  });
}

// Usage:
await trackKlaviyoEvent(customer.email, 'Viewed Product', {
  ProductName: product.name, ProductID: product.id,
  ImageURL: product.imageUrl, URL: product.url, Price: product.price,
});

await trackKlaviyoEvent(customer.email, 'Placed Order', {
  $value: order.subtotal, OrderId: order.id,
  Items: order.lineItems.map(i => ({ ProductName: i.name, ItemPrice: i.price })),
});
```

Once events are flowing into Klaviyo, build the flows in Klaviyo's visual editor using the same instructions as the Shopify section.

### Step 3: Configure suppression and frequency rules

**In Klaviyo:**
- Enable **Smart Sending** on all flows: go to each flow, click the email step, and toggle "Smart Sending" on — this prevents sending more than 1 email per 16-hour window to any contact
- Set a daily message limit under **Account Settings → Email Sending Limits**
- Add "Unsubscribed from email" as a **Flow Filter** on every flow — contacts unsubscribed from Klaviyo will not receive flow emails regardless, but this makes the logic explicit

**In AutomateWoo:**
- Go to **AutomateWoo → Settings → Email** and configure sending limits
- Add "Customer has unsubscribed" as a Rule on every workflow

### Step 4: Measure flow performance

| Flow | Key Metric | Target |
|------|-----------|--------|
| Welcome Series | Revenue per recipient | $1–$5 for first 30 days |
| Post-Purchase | Review submission rate (email 4) | 5–15% |
| Browse Abandonment | Recovered revenue per trigger | $2–$8 |
| Win-Back | Re-activation rate | 5–10% of at-risk contacts |

In Klaviyo: go to **Flows → [Flow name] → Analytics** to see revenue, open rate, and click rate per email step.

## Best Practices

- **Use Klaviyo's pre-built flow templates** — they incorporate years of industry learning; customize the copy and design, not the flow structure
- **Cancel competing flows** — in Klaviyo, use flow filters: "Has placed an order since starting flow → exit flow"; this prevents win-back emails reaching customers who just bought
- **Personalize with dynamic product blocks** — Klaviyo's product recommendation blocks automatically show the right products based on browsing and purchase history
- **Respect quiet hours** — Klaviyo's Smart Sending respects timezone-based sending windows; enable it on all flows
- **A/B test subject lines** — Klaviyo's built-in A/B test sends to 20% of recipients and picks the winner automatically; use it on every flow's first email

## Common Pitfalls

| Problem | Solution |
|---------|----------|
| Win-back emails sent after customer just placed an order | Add flow filter: "Has NOT placed order since starting flow" — Klaviyo exits the contact from the flow immediately |
| Browse abandonment fires for anonymous visitors | Gate the Viewed Product event on having a known email (logged-in user or cookie-captured email); Klaviyo only tracks identified profiles |
| Duplicate emails sent when Shopify webhooks fire twice | Klaviyo's flow deduplication prevents this automatically — each profile enters a flow only once per trigger period |
| High unsubscribe rate on win-back step 3 | 120-day lapsed customers are cold; lead with value (new arrivals, social proof) before the discount |
| Email renders broken on Outlook | Use Klaviyo's email templates — they are pre-tested across clients; avoid custom HTML in Outlook without Litmus testing |

## Related Skills

- @cart-abandonment-recovery
- @sms-marketing
- @email-list-segmentation
- @customer-retention-engine
- @push-notifications

Related Skills

tax-compliance-automation

11
from finsilabs/awesome-ecommerce-skills

Automate multi-jurisdiction sales tax, VAT, and GST compliance with nexus tracking, exemption certificates, filing automation, and audit-ready reports

payment-reconciliation-automation

11
from finsilabs/awesome-ecommerce-skills

Automate payment reconciliation across Stripe, PayPal, and bank accounts with exception handling, automated matching rules, and discrepancy alerting

invoice-generation-automation

11
from finsilabs/awesome-ecommerce-skills

Generate professional invoices automatically with custom branding, payment terms, line item details, tax breakdowns, and integration with accounting systems

accounts-receivable-automation

11
from finsilabs/awesome-ecommerce-skills

Automate B2B accounts receivable with invoice generation, payment tracking, dunning sequences for past-due invoices, and aging analysis dashboards

sms-marketing

11
from finsilabs/awesome-ecommerce-skills

Launch SMS marketing campaigns with opt-in flows, audience segmentation, and full TCPA/GDPR compliance to drive revenue through text messaging

seasonal-campaign-automation

11
from finsilabs/awesome-ecommerce-skills

Automate seasonal marketing campaigns for Black Friday, holidays, and shopping events with templated workflows, countdown sequences, and year-round planning

marketing-attribution-dashboard

11
from finsilabs/awesome-ecommerce-skills

Build multi-touch attribution dashboards tracking revenue by channel, campaign, and creative with blended ROAS analysis and budget allocation recommendations

lifecycle-marketing-automation

11
from finsilabs/awesome-ecommerce-skills

Map customer journey stages from first visit to loyal advocate with personalized messaging, triggered workflows, and segment-based campaign automation

email-list-segmentation

11
from finsilabs/awesome-ecommerce-skills

Create dynamic email segments based on purchase behavior, RFM scores, engagement signals, and lifecycle stage with automated rebalancing and list hygiene

email-service-integration

11
from finsilabs/awesome-ecommerce-skills

Send reliable transactional emails (order confirmations, shipping updates) via SendGrid, SES, or Postmark with templates and deliverability best practices

marketing-spend-analysis

11
from finsilabs/awesome-ecommerce-skills

Track and analyze marketing spend across all channels with ROAS calculation, diminishing returns analysis, and budget reallocation recommendations by platform

wishlist-save-for-later

11
from finsilabs/awesome-ecommerce-skills

Let shoppers save products to a wishlist, share it with friends, and get notified when saved items come back in stock or drop in price