Mailchimp Automation
Comprehensive skill for automating Mailchimp email marketing and audience management.
Core Workflows
1. Campaign Pipeline
EMAIL CAMPAIGN FLOW: ┌─────────────────┐ │ Plan Campaign │ │ - Goals │ │ - Audience │ └────────┬────────┘ ▼ ┌─────────────────┐ │ Create Content │ │ - Design │ │ - Copy │ └────────┬────────┘ ▼ ┌─────────────────┐ │ Configure │ │ - Subject │ │ - Preview │ │ - Settings │ └────────┬────────┘ ▼ ┌─────────────────┐ │ Test & Review │ │ - A/B test │ │ - Preview │ └────────┬────────┘ ▼ ┌─────────────────┐ │ Schedule/Send │ │ - Timing │ │ - Send │ └────────┬────────┘ ▼ ┌─────────────────┐ │ Analyze │ │ - Opens/Clicks │ │ - Revenue │ └─────────────────┘
2. Campaign Configuration
yamlcampaign_config: type: regular # regular, automated, plaintext, ab_test recipients: list_id: "abc123" segment_opts: saved_segment_id: "seg123" # or dynamic conditions settings: subject_line: "{{subject}}" preview_text: "{{preview}}" from_name: "{{company}}" reply_to: "{{email}}" tracking: opens: true clicks: true ecommerce: true google_analytics: "campaign_name" content_type: "template" template_id: "template_123"
Audience Management
Segmentation Rules
yamlsegments: - name: active_subscribers conditions: - field: last_opened op: greater_than value: "30_days_ago" - name: high_value_customers conditions: - field: ecomm_total_spent op: greater_than value: 500 - field: ecomm_orders op: greater_than value: 3 - name: at_risk conditions: - field: last_opened op: greater_than value: "90_days_ago" - field: email_campaigns_opened op: greater_than value: 5 - name: new_subscribers conditions: - field: timestamp_signup op: greater_than value: "30_days_ago"
Audience Tags
yamltagging_automation: - trigger: form_submit form: "newsletter_signup" actions: - add_tag: "newsletter" - add_tag: "{{form.interest}}" - trigger: purchase actions: - add_tag: "customer" - add_tag: "purchased_{{product_category}}" - trigger: link_clicked url_contains: "/pricing" actions: - add_tag: "interested_in_pricing"
Email Automation
Welcome Series
yamlwelcome_automation: name: "Welcome Series" trigger: type: signup list_id: "main_list" emails: - delay: immediate subject: "Welcome to {{company}}! 🎉" template: welcome_email_1 - delay: 2_days subject: "Here's how to get started" template: welcome_email_2 - delay: 5_days subject: "{{first_name}}, your exclusive tips" template: welcome_email_3 - delay: 10_days subject: "Ready to take the next step?" template: welcome_email_4 content: offer_cta
Abandoned Cart
yamlabandoned_cart: name: "Cart Recovery" trigger: type: ecommerce event: cart_abandoned delay: 1_hour emails: - delay: 1_hour subject: "You left something behind..." template: cart_reminder_1 show_cart_items: true - delay: 24_hours condition: cart_not_recovered subject: "Your cart is waiting" template: cart_reminder_2 include_discount: false - delay: 72_hours condition: cart_not_recovered subject: "Last chance: 10% off your cart" template: cart_reminder_3 include_discount: true discount_code: "COMEBACK10"
Post-Purchase
yamlpost_purchase: name: "Post-Purchase Nurture" trigger: type: ecommerce event: purchase emails: - delay: immediate type: transactional subject: "Order confirmed #{{order_id}}" template: order_confirmation - delay: 3_days type: transactional subject: "Your order has shipped" template: shipping_notification condition: order_shipped - delay: 7_days subject: "How's your {{product_name}}?" template: review_request condition: order_delivered - delay: 30_days subject: "You might also like..." template: cross_sell content: recommended_products
A/B Testing
Test Configuration
yamlab_test: type: subject_line # or content, send_time, from_name variants: a: subject: "Don't miss out: Sale ends tonight" b: subject: "⚡ Flash sale: 24 hours only" test_settings: split_percentage: 20 # Test on 20%, winner to 80% winning_metric: open_rate # or click_rate, revenue wait_time: 4_hours auto_winner: enabled: true send_remaining: true
Multivariate Test
yamlmultivariate_test: factors: subject_line: - "New arrivals just dropped" - "You'll love what's new" preview_text: - "Shop the latest styles" - "See what's trending now" send_time: - "09:00" - "14:00" combinations: 8 sample_size: 25% duration: 24_hours
Email Templates
Newsletter Template
yamlnewsletter_template: layout: multi_column sections: - type: header logo: "{{logo_url}}" navigation: true - type: hero image: "{{hero_image}}" headline: "{{headline}}" subheadline: "{{subheadline}}" cta: text: "{{cta_text}}" url: "{{cta_url}}" - type: content_blocks columns: 2 items: - image: "{{item1_image}}" title: "{{item1_title}}" description: "{{item1_desc}}" link: "{{item1_url}}" - type: footer social_links: true unsubscribe: true company_address: true
Personalization
yamlpersonalization: merge_tags: - "*|FNAME|*": first_name - "*|LNAME|*": last_name - "*|EMAIL|*": email - "*|COMPANY|*": company conditional_content: - condition: "*|IF:VIP|*" content: "As a VIP member, you get early access!" dynamic_content: - tag: "*|PRODUCT_RECS|*" source: ecommerce type: recommended_products limit: 4
Analytics Dashboard
Campaign Performance
CAMPAIGN ANALYTICS - "January Newsletter" ═══════════════════════════════════════ DELIVERY: Sent: 25,430 Delivered: 24,892 (97.9%) Bounced: 538 (2.1%) ENGAGEMENT: Opened: 8,450 (33.9%) Clicked: 2,156 (8.7%) Unsubscribed: 45 (0.18%) REVENUE (if e-commerce): Orders: 89 Revenue: $4,523 Revenue/Email: $0.18 BY DEVICE: Desktop ████████████████ 52% Mobile ██████████░░░░░░ 38% Tablet ███░░░░░░░░░░░░░ 10% TOP CLICKED LINKS: ┌────────────────────────┬────────┐ │ Link │ Clicks │ ├────────────────────────┼────────┤ │ Main CTA button │ 1,245 │ │ Product image 1 │ 456 │ │ "Learn more" link │ 234 │ │ Social - Twitter │ 123 │ └────────────────────────┴────────┘ OPEN TIME: Peak: 10:00 AM - 12:00 PM (42%)
Audience Health
yamlaudience_metrics: total_subscribers: 45,230 growth_rate: "+3.2% monthly" health_indicators: active_30_days: 78% engaged_90_days: 65% dormant: 22% list_quality: average_open_rate: 28.5% average_click_rate: 4.2% unsubscribe_rate: 0.15% bounce_rate: 1.8%
API Examples
Create Campaign
javascript// Create Campaign const campaign = await mailchimp.campaigns.create({ type: "regular", recipients: { list_id: "abc123", segment_opts: { saved_segment_id: "seg123" } }, settings: { subject_line: "Your Weekly Update", preview_text: "This week's top stories", from_name: "Company Name", reply_to: "hello@company.com" } }); // Set Content await mailchimp.campaigns.setContent(campaign.id, { template: { id: "template_123", sections: { headline: "Welcome to our newsletter!" } } }); // Send Campaign await mailchimp.campaigns.send(campaign.id);
Manage Subscribers
javascript// Add Subscriber await mailchimp.lists.addListMember("list_id", { email_address: "user@example.com", status: "subscribed", merge_fields: { FNAME: "John", LNAME: "Doe" }, tags: ["newsletter", "customer"] }); // Update Subscriber await mailchimp.lists.updateListMember("list_id", "subscriber_hash", { merge_fields: { COMPANY: "Acme Inc" } }); // Add Tags await mailchimp.lists.updateListMemberTags("list_id", "subscriber_hash", { tags: [{ name: "vip", status: "active" }] });
Best Practices
- Clean Your List: Remove bounces and inactive
- Segment Thoughtfully: Right message to right people
- Test Everything: Subject lines, content, timing
- Mobile First: Design for mobile readers
- Personalize: Use merge tags and dynamic content
- Monitor Metrics: Track and improve over time
- Respect Frequency: Don't over-send
- Comply with Laws: CAN-SPAM, GDPR


