Claude-skill-registry email-marketing
Эксперт по email-маркетингу. Используй для email кампаний, автоматизации, сегментации, deliverability и A/B тестов.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/email-marketing" ~/.claude/skills/majiayu000-claude-skill-registry-email-marketing-337849 && rm -rf "$T"
manifest:
skills/data/email-marketing/SKILL.mdsource content
Email Marketing Expert
Comprehensive expertise in email marketing strategy and execution.
Core Competencies
Strategy
- List building and segmentation
- Email calendar planning
- Lifecycle marketing
- Personalization strategy
- A/B testing frameworks
Automation
- Welcome sequences
- Nurture campaigns
- Trigger-based emails
- Re-engagement flows
- Win-back sequences
Deliverability
- Sender reputation management
- Authentication (SPF, DKIM, DMARC)
- List hygiene
- Spam trap avoidance
- ISP relationship management
Email Types
Marketing Emails
- Newsletters
- Promotional campaigns
- Product announcements
- Event invitations
- Content distribution
Automated Sequences
- Welcome series
- Onboarding sequences
- Lead nurturing
- Abandoned cart
- Re-engagement
- Win-back
Transactional Emails
- Order confirmations
- Shipping updates
- Password resets
- Account notifications
Email Authentication Setup
# SPF Record v=spf1 include:_spf.google.com include:sendgrid.net ~all # DKIM Record selector._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3..." # DMARC Record _dmarc.example.com IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
Key Metrics
| Metric | Benchmark | Description |
|---|---|---|
| Open Rate | 20-25% | Unique opens / Delivered |
| Click Rate | 2-5% | Unique clicks / Delivered |
| Click-to-Open | 10-15% | Clicks / Opens |
| Unsubscribe Rate | <0.5% | Unsubscribes / Delivered |
| Bounce Rate | <2% | Bounces / Sent |
| Spam Complaints | <0.1% | Complaints / Delivered |
| Conversion Rate | Varies | Conversions / Clicks |
Segmentation Strategies
Behavioral Segmentation: - Purchase history - Email engagement - Website activity - Product preferences - Cart abandonment Demographic Segmentation: - Location/timezone - Job title/industry - Company size - Age/gender Lifecycle Stages: - New subscribers - Active customers - At-risk (declining engagement) - Churned (re-activation target) - VIP/high-value
Automation Workflows
Welcome Sequence
Day 0 - Welcome Email: trigger: subscription_confirmed content: Brand introduction, expectations cta: Complete profile Day 2 - Value Email: trigger: previous_opened OR time_delay content: Top content, quick wins cta: Explore resources Day 5 - Social Proof: trigger: time_delay content: Customer stories, testimonials cta: See case studies Day 7 - Soft CTA: trigger: time_delay content: Product introduction cta: Start free trial
Abandoned Cart Flow
Hour 1 - Reminder: trigger: cart_abandoned content: Items in cart reminder cta: Complete purchase Hour 24 - Urgency: trigger: no_purchase content: Items may sell out cta: Secure your items Hour 72 - Incentive: trigger: no_purchase content: Special discount offer cta: Get 10% off
A/B Testing Framework
Test Elements
Subject Lines: - Length (short vs long) - Personalization - Emojis - Questions vs statements - Urgency words Content: - Layout (single vs multi-column) - Image count and placement - CTA button color/text - Copy length - Personalization depth Timing: - Send day - Send time - Timezone optimization
Statistical Significance
import scipy.stats as stats def calculate_significance(control_opens, control_sent, variant_opens, variant_sent, confidence=0.95): """Calculate if A/B test result is significant.""" control_rate = control_opens / control_sent variant_rate = variant_opens / variant_sent # Pooled proportion pooled = (control_opens + variant_opens) / (control_sent + variant_sent) # Standard error se = (pooled * (1 - pooled) * (1/control_sent + 1/variant_sent)) ** 0.5 # Z-score z = (variant_rate - control_rate) / se # P-value p_value = 2 * (1 - stats.norm.cdf(abs(z))) return { 'control_rate': control_rate, 'variant_rate': variant_rate, 'lift': (variant_rate - control_rate) / control_rate * 100, 'p_value': p_value, 'significant': p_value < (1 - confidence) }
Best Practices
Subject Lines
- Under 50 characters
- Create curiosity or urgency
- Personalize when appropriate
- A/B test consistently
- Avoid spam trigger words
Email Copy
- Clear value proposition
- Single primary CTA
- Mobile-optimized layout
- Scannable format with headers
- Personalization tokens
- Alt text for images
Deliverability
- Clean lists regularly (remove bounces, unengaged)
- Authenticate domains (SPF, DKIM, DMARC)
- Maintain consistent sending volume
- Monitor sender reputation
- Use double opt-in
- Honor unsubscribes immediately
Send Time Optimization
def optimize_send_time(subscriber_data): """Analyze historical engagement to find optimal send times.""" engagement_by_hour = {} for subscriber in subscriber_data: local_time = convert_to_local(subscriber['open_time'], subscriber['timezone']) hour = local_time.hour if hour not in engagement_by_hour: engagement_by_hour[hour] = {'opens': 0, 'total': 0} engagement_by_hour[hour]['opens'] += 1 engagement_by_hour[hour]['total'] += 1 # Calculate open rates by hour for hour, data in engagement_by_hour.items(): data['rate'] = data['opens'] / data['total'] # Find best hours sorted_hours = sorted(engagement_by_hour.items(), key=lambda x: x[1]['rate'], reverse=True) return sorted_hours[:3] # Top 3 hours
List Hygiene
Engagement Scoring
-- Calculate subscriber engagement score SELECT subscriber_id, email, COUNT(CASE WHEN event_type = 'open' THEN 1 END) as opens_30d, COUNT(CASE WHEN event_type = 'click' THEN 1 END) as clicks_30d, MAX(event_date) as last_activity, CASE WHEN COUNT(CASE WHEN event_type = 'open' THEN 1 END) >= 5 THEN 'highly_engaged' WHEN COUNT(CASE WHEN event_type = 'open' THEN 1 END) >= 2 THEN 'engaged' WHEN COUNT(CASE WHEN event_type = 'open' THEN 1 END) >= 1 THEN 'somewhat_engaged' ELSE 'unengaged' END as engagement_tier FROM email_events WHERE event_date >= CURRENT_DATE - INTERVAL '30 days' GROUP BY subscriber_id, email;
Sunset Policy
Re-engagement Campaign: trigger: no_opens_60_days sequence: - Day 0: "We miss you" email - Day 7: "Last chance" with offer - Day 14: Final warning action_after_sequence: if: no_engagement then: move_to_suppression_list
Tools Proficiency
ESP Platforms
- SMB: Klaviyo, Mailchimp, ConvertKit
- Mid-Market: HubSpot, ActiveCampaign, Drip
- Enterprise: Salesforce Marketing Cloud, Marketo, Braze
Transactional
- SendGrid, Postmark, Amazon SES, Mailgun
Testing & Preview
- Litmus, Email on Acid
Analytics
- Google Analytics (UTM tracking)
- Native ESP analytics
- Custom data warehouse
Лучшие практики
- Permission-based — только подтверждённые подписчики
- Segmentation — релевантный контент для сегментов
- Testing — постоянное A/B тестирование
- Automation — автоматизируйте lifecycle emails
- Deliverability — мониторинг репутации отправителя
- Mobile-first — 60%+ открытий на мобильных