marketing-campaign-builder

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Marketing Campaign Builder

营销活动构建器

Overview

概述

Most small businesses have a Mailchimp list they never use. They sent a few campaigns years ago, got busy, and stopped. This skill fixes that by making campaign creation fast and owner-gated:
  1. Owner texts a campaign idea in Telegram
  2. Agent drafts the email content + 2-3 subject line options
  3. Owner picks a subject line (or suggests their own)
  4. Agent creates an A/B test campaign in Mailchimp
  5. Agent sends a test email to the owner
  6. Owner approves → agent schedules the send at optimal time
The owner never writes HTML, never logs into Mailchimp, never touches a template editor. They just describe what they want and approve the draft.
大多数小企业都有一个从未使用过的Mailchimp联系人列表。他们几年前发送过几次营销活动,后来因为忙碌就停了。本Skill通过让营销活动创建变得快速且需所有者审批来解决这个问题:
  1. 所有者在Telegram中发送营销活动构想
  2. Agent起草邮件内容 + 2-3个主题行选项
  3. 所有者选择一个主题行(或提出自己的想法)
  4. Agent在Mailchimp中创建A/B测试营销活动
  5. Agent向所有者发送测试邮件
  6. 所有者审批后 → Agent在最佳时间安排发送
所有者无需编写HTML代码,无需登录Mailchimp,无需接触模板编辑器。 他们只需描述需求并审批草稿即可。

When to Use

适用场景

  • "Send a summer special to all partners"
  • "We haven't emailed the list in 3 months — draft a re-engagement campaign"
  • "Send a seasonal reminder to all contacts in our service area"
  • "Create a campaign about our new website estimator tool"
  • "Send a holiday thank you to all customers"
  • "向所有合作伙伴发送夏季特惠活动通知"
  • "我们已经3个月没给列表发邮件了 —— 起草一个重新激活营销活动"
  • "向服务区域内的所有联系人发送季节性提醒"
  • "创建一个关于我们新网站估算工具的营销活动"
  • "向所有客户发送节日感谢信"

Prerequisites

前置条件

  • mailchimp-integration
    skill installed + API key wired
  • MAILCHIMP_AUDIENCE_ID set in environment
  • Owner available in Telegram to approve drafts
  • 已安装
    mailchimp-integration
    Skill并配置API密钥
  • 已在环境变量中设置MAILCHIMP_AUDIENCE_ID
  • 所有者可在Telegram中审批草稿

The Flow

流程

Step 1: Owner Describes the Campaign

步骤1:所有者描述营销活动

Owner sends a message in Telegram:
"Send a summer special to all partners — mention our partner pricing and that we do free estimates."
Agent extracts:
  • Audience segment: "partners" (or "all contacts" if not specified)
  • Topic: summer special
  • Key points to include: partner pricing, free estimates
  • Tone: matches the business (confident, professional, not salesy)
所有者在Telegram中发送消息:
"向所有合作伙伴发送夏季特惠活动通知 —— 提及我们的合作伙伴定价和免费估算服务。"
Agent提取信息:
  • 受众细分: "合作伙伴"(若未指定则为"所有联系人")
  • 主题: 夏季特惠
  • 需包含的要点: 合作伙伴定价、免费估算
  • 语调: 匹配企业风格(自信、专业,不过度推销)

Step 2: Agent Drafts Content + Subject Lines

步骤2:Agent起草内容 + 主题行

Agent generates:
  • 2-3 subject line options (short, punchy, under 50 chars for mobile)
  • Preview text (the snippet recipients see next to subject)
  • Email body in HTML, matching the business brand voice
  • Plain text version (for accessibility + spam filters)
Example output to owner in Telegram:
📧 Campaign Draft — Summer Partner Special

Subject line options:
A) "Summer Listings? Don't Let Odors Kill the Sale"
B) "Free Estimates for Your Summer Listings"
C) "Partner Special: Summer Service Discount"

Preview text: "[BUSINESS_NAME] — professional service for your
listings. Free estimates, partner pricing."

Body: [shows first few lines or summary]

Which subject line do you prefer? (A, B, or C — or type your own)
Agent生成:
  • 2-3个主题行选项(简短有力,移动端显示限制在50字符以内)
  • 预览文本(收件人在收件箱中看到的主题行旁的片段)
  • HTML格式的邮件正文,匹配企业品牌语调
  • 纯文本版本(兼顾可访问性和反垃圾邮件过滤)
在Telegram中发送给所有者的示例输出:
📧 营销活动草稿 —— 夏季合作伙伴特惠

主题行选项:
A) "夏季房源?别让异味毁了交易"
B) "夏季房源免费估算服务"
C) "合作伙伴专属:夏季服务折扣"

预览文本:"[企业名称] —— 专业房源服务。免费估算,合作伙伴定价。"

正文:[显示前几行或摘要]

您偏好哪个主题行?(回复A、B、C,或输入您自己的想法)

Step 3: Owner Picks Subject Line

步骤3:所有者选择主题行

Owner replies: "A" or "B" or "C" or types their own:
"Make it 'Protect Your Summer Listings from Odors'"
Agent updates the draft with the chosen subject line.
所有者回复:"A"或"B"或"C",或输入自定义内容:
"改成'保护您的夏季房源免受异味侵扰'"
Agent使用选定的主题行更新草稿。

Step 4: Agent Creates Campaign in Mailchimp

步骤4:Agent在Mailchimp中创建营销活动

Regular (single variant) Campaign

常规(单一变体)营销活动

bash
source ~/.hermes/.env
bash
source ~/.hermes/.env

Create campaign

创建营销活动

CAMPAIGN=$(curl -s -X POST "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns"
--user "anystring:$MAILCHIMP_API_KEY"
-H "Content-Type: application/json"
-d '{ "type": "regular", "recipients": { "list_id": "'"$MAILCHIMP_AUDIENCE_ID"'", "segment_opts": { "saved_segment_id": SEGMENT_ID } }, "settings": { "subject_line": "Summer Listings? Don'"'"'t Let Odors Kill the Sale", "preview_text": "[BUSINESS_NAME] — professional service for your listings.", "title": "Summer Partner Special - June 2026", "from_name": "[BUSINESS_NAME]", "reply_to": "owner@yourdomain.com", "to_name": "|FNAME|" }, "tracking": { "opens": true, "html_clicks": true } }')
CAMPAIGN_ID=$(echo "$CAMPAIGN" | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
undefined
CAMPAIGN=$(curl -s -X POST "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns"
--user "anystring:$MAILCHIMP_API_KEY"
-H "Content-Type: application/json"
-d '{ "type": "regular", "recipients": { "list_id": "'"$MAILCHIMP_AUDIENCE_ID"'", "segment_opts": { "saved_segment_id": SEGMENT_ID } }, "settings": { "subject_line": "Summer Listings? Don'"'"'t Let Odors Kill the Sale", "preview_text": "[BUSINESS_NAME] — professional service for your listings.", "title": "Summer Partner Special - June 2026", "from_name": "[BUSINESS_NAME]", "reply_to": "owner@yourdomain.com", "to_name": "|FNAME|" }, "tracking": { "opens": true, "html_clicks": true } }')
CAMPAIGN_ID=$(echo "$CAMPAIGN" | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
undefined

A/B Test (Variate) Campaign

A/B测试(变体)营销活动

bash
undefined
bash
undefined

Create A/B test campaign testing two subject lines

创建测试两个主题行的A/B测试营销活动

CAMPAIGN=$(curl -s -X POST "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns"
--user "anystring:$MAILCHIMP_API_KEY"
-H "Content-Type: application/json"
-d '{ "type": "variate", "recipients": { "list_id": "'"$MAILCHIMP_AUDIENCE_ID"'" }, "variate_settings": { "winning_combination": "opens", "wait_time": 6, "test_size": 50, "test_segments": [ {"segment_text": "Subject A"}, {"segment_text": "Subject B"} ], "subject_lines": [ "Summer Listings? Don'"'"'t Let Odors Kill the Sale", "Protect Your Summer Listings from Odors" ] }, "settings": { "title": "Summer Partner Special A/B - June 2026", "from_name": "[BUSINESS_NAME]", "reply_to": "owner@yourdomain.com", "to_name": "|FNAME|" } }')
undefined
CAMPAIGN=$(curl -s -X POST "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns"
--user "anystring:$MAILCHIMP_API_KEY"
-H "Content-Type: application/json"
-d '{ "type": "variate", "recipients": { "list_id": "'"$MAILCHIMP_AUDIENCE_ID"'" }, "variate_settings": { "winning_combination": "opens", "wait_time": 6, "test_size": 50, "test_segments": [ {"segment_text": "Subject A"}, {"segment_text": "Subject B"} ], "subject_lines": [ "Summer Listings? Don'"'"'t Let Odors Kill the Sale", "Protect Your Summer Listings from Odors" ] }, "settings": { "title": "Summer Partner Special A/B - June 2026", "from_name": "[BUSINESS_NAME]", "reply_to": "owner@yourdomain.com", "to_name": "|FNAME|" } }')
undefined

Step 5: Set Campaign Content

步骤5:设置营销活动内容

bash
curl -s -X PUT "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns/$CAMPAIGN_ID/content" \
  --user "anystring:$MAILCHIMP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<html><body>...campaign HTML...</body></html>",
    "plain_text": " plain text version..."
  }'
bash
curl -s -X PUT "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns/$CAMPAIGN_ID/content" \
  --user "anystring:$MAILCHIMP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<html><body>...campaign HTML...</body></html>",
    "plain_text": " plain text version..."
  }'

Step 6: Send Test to Owner

步骤6:向所有者发送测试邮件

bash
curl -s -X POST "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns/$CAMPAIGN_ID/actions/test" \
  --user "anystring:$MAILCHIMP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "test_emails": ["owner@yourdomain.com"],
    "send_type": "html"
  }'
Agent tells owner: "Test email sent — check your inbox. Reply 'send' to send to the full list, or tell me what to change."
bash
curl -s -X POST "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns/$CAMPAIGN_ID/actions/test" \
  --user "anystring:$MAILCHIMP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "test_emails": ["owner@yourdomain.com"],
    "send_type": "html"
  }'
Agent告知所有者:"测试邮件已发送 —— 请查收您的收件箱。回复'send'即可向全列表发送,或告知我需要修改的内容。"

Step 7: Owner Approves → Send or Schedule

步骤7:所有者审批 → 发送或安排发送

Send immediately:
bash
curl -s -X POST "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns/$CAMPAIGN_ID/actions/send" \
  --user "anystring:$MAILCHIMP_API_KEY"
Schedule for optimal time:
bash
undefined
立即发送:
bash
curl -s -X POST "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns/$CAMPAIGN_ID/actions/send" \
  --user "anystring:$MAILCHIMP_API_KEY"
安排在最佳时间发送:
bash
undefined

Schedule for Tuesday 10am ET (best open rate for B2B per industry data)

安排在周二上午10点(美国东部时间)发送(根据行业数据,这是B2B的最佳打开率时段)

curl -s -X PATCH "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns/$CAMPAIGN_ID"
--user "anystring:$MAILCHIMP_API_KEY"
-H "Content-Type: application/json"
-d '{ "schedule": { "schedule_time": "2026-07-07T14:00:00+00:00" } }'
undefined
curl -s -X PATCH "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/campaigns/$CAMPAIGN_ID"
--user "anystring:$MAILCHIMP_API_KEY"
-H "Content-Type: application/json"
-d '{ "schedule": { "schedule_time": "2026-07-07T14:00:00+00:00" } }'
undefined

Email Content Guidelines

邮件内容指南

Brand Voice

品牌语调

  • Confident, not salesy — "This works. Here's why." not "BUY NOW!!!"
  • Professional but warm — like a trusted local business, not a corporation
  • Short paragraphs — 2-3 sentences max, lots of white space
  • One clear CTA — "Get a Free Estimate" or "Call [PHONE]"
  • Mobile-first — 60%+ of recipients read on phones
  • 自信而非过度推销 —— "这很有效,原因如下。" 而非 "立即购买!!!"
  • 专业且亲切 —— 像值得信赖的本地企业,而非大型 corporation
  • 短段落 —— 最多2-3句话,留白充足
  • 清晰单一的CTA —— "获取免费估算" 或 "致电[电话号码]"
  • 移动端优先 —— 60%以上的收件人通过手机阅读

Email Structure Template

邮件结构模板

html
<html>
<body style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px;">

<!-- Header with logo -->
<img src="LOGO_URL" alt="[BUSINESS_NAME]" style="max-width: 200px; margin-bottom: 20px;">

<!-- Headline -->
<h1 style="color: #0C71C3; font-size: 24px;">HEADLINE HERE</h1>

<!-- Body copy -->
<p style="font-size: 16px; line-height: 1.6; color: #1A1A1A;">
BODY COPY HERE — 2-3 short paragraphs
</p>

<!-- CTA button -->
<a href="CTA_URL" style="display: inline-block; background: #0C71C3; color: white;
   padding: 12px 30px; text-decoration: none; border-radius: 5px; font-size: 16px;
   margin: 20px 0;">Get Your Free Estimate</a>

<!-- Footer -->
<hr style="border: none; border-top: 1px solid #ddd; margin: 30px 0;">
<p style="font-size: 12px; color: #888;">
[BUSINESS_NAME] | [SERVICE_DESCRIPTION] | [PHONE]<br>
Serving [SERVICE_AREA]<br>
<a href="*|UNSUB|*">Unsubscribe</a> | <a href="*|UPDATE_PROFILE|*">Update Preferences</a>
</p>

</body>
</html>
html
<html>
<body style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px;">

<!-- 带logo的页眉 -->
<img src="LOGO_URL" alt="[BUSINESS_NAME]" style="max-width: 200px; margin-bottom: 20px;">

<!-- 标题 -->
<h1 style="color: #0C71C3; font-size: 24px;">标题内容</h1>

<!-- 正文 -->
<p style="font-size: 16px; line-height: 1.6; color: #1A1A1A;">
正文内容 —— 2-3个短段落
</p>

<!-- CTA按钮 -->
<a href="CTA_URL" style="display: inline-block; background: #0C71C3; color: white;
   padding: 12px 30px; text-decoration: none; border-radius: 5px; font-size: 16px;
   margin: 20px 0;">获取免费估算</a>

<!-- 页脚 -->
<hr style="border: none; border-top: 1px solid #ddd; margin: 30px 0;">
<p style="font-size: 12px; color: #888;">
[企业名称] | [服务描述] | [电话号码]<br>
服务区域:[服务区域]<br>
<a href="*|UNSUB|*">取消订阅</a> | <a href="*|UPDATE_PROFILE|*">更新偏好设置</a>
</p>

</body>
</html>

Subject Line Best Practices

主题行最佳实践

  • Under 50 characters (mobile cuts off longer)
  • Create curiosity or urgency without being clickbait
  • Personalization with |FNAME| works but don't overuse
  • Test questions vs statements vs benefits
  • Examples that work:
    • "Summer Listings? Don't Let Odors Kill the Sale"
    • "|FNAME|, Free Estimates for Your Spring Listings"
    • "Seasonal Prep: Is Your Property Protected?"
    • "The Guarantee Real Estate Agents Trust"
  • 少于50字符(移动端会截断更长的内容)
  • 引发好奇心或紧迫感,但不做标题党
  • 使用*|FNAME|*进行个性化,但不要过度
  • 测试疑问句、陈述句和利益点的效果
  • 有效示例:
    • "夏季房源?别让异味毁了交易"
    • "|FNAME|,春季房源免费估算服务"
    • "季节性准备:您的物业是否得到保护?"
    • "房地产经纪人信赖的保障"

A/B Testing Strategy

A/B测试策略

What to Test (in priority order)

测试优先级

  1. Subject lines — biggest impact on open rates
  2. Send time — Tuesday/Wednesday 10am-12pm ET typically wins for B2B
  3. From name — "[OWNER_NAME] @ [BUSINESS_NAME]" vs "[BUSINESS_NAME]" vs a campaign name
  4. Preview text — the snippet next to subject in inbox
  5. CTA — "Get Free Estimate" vs "See Pricing" vs "Call Now"
  1. 主题行 —— 对打开率影响最大
  2. 发送时间 —— 美国东部时间周二/周三上午10点至12点通常是B2B的最佳时段
  3. 发件人名称 —— "[所有者姓名] @ [企业名称]" vs "[企业名称]" vs 活动名称
  4. 预览文本 —— 收件箱中主题行旁的片段
  5. CTA —— "获取免费估算" vs "查看定价" vs "立即致电"

Mailchimp A/B Test Setup

Mailchimp A/B测试设置

  • Test size: 50% (send to 50% of list, 25% each variant, winner goes to remaining 50%)
  • Winning condition: opens (for subject line tests), clicks (for content tests)
  • Wait time: 6 hours (enough for a meaningful pattern, not so long it delays)
  • Don't over-test — 2 variants is plenty for a small business list
  • 测试规模:50%(发送给列表的50%,每个变体占25%,获胜变体发送给剩余50%)
  • 获胜条件:打开率(针对主题行测试)、点击率(针对内容测试)
  • 等待时间:6小时(足够形成有意义的模式,又不会过度延迟)
  • 不要过度测试 —— 小企业列表测试2个变体足够

Campaign Timing Recommendations

活动时间建议

DayTime (ET)Why
Tuesday10:00amBest overall open rate for B2B
Wednesday10:00amSecond best, avoids Monday noise
Thursday2:00pmGood for consumer-focused campaigns
AvoidMonday/FridayBuried in weekend cleanup or pre-weekend rush
AvoidWeekendsB2B recipients don't check
日期时间(美国东部时间)原因
周二10:00amB2B整体打开率最佳时段
周三10:00am次佳时段,避开周一的信息轰炸
周四2:00pm适合面向消费者的营销活动
避免周一/周五被周末清理或周末前的忙碌淹没
避免周末B2B收件人不会查看邮件

Segmentation Strategy

细分策略

Before Sending, Agent Checks Available Segments

发送前,Agent检查可用细分

bash
undefined
bash
undefined

List existing segments

列出现有细分

curl -s --user "anystring:$MAILCHIMP_API_KEY"
"https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/lists/$MAILCHIMP_AUDIENCE_ID/segments"
undefined
curl -s --user "anystring:$MAILCHIMP_API_KEY"
"https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/lists/$MAILCHIMP_AUDIENCE_ID/segments"
undefined

If No Segments Exist, Agent Creates Them

若无细分,Agent创建细分

Useful default segments for small businesses:
  • Active subscribers — opened an email in the last 90 days
  • Partners/Referrers — tagged "partner" (if tags exist)
  • By region — merge field REGION = specific region
  • Engaged — clicked a link in the last 60 days
  • Cold — no opens in 180 days (re-engagement target)
适合小企业的默认细分:
  • 活跃订阅者 —— 过去90天内打开过邮件
  • 合作伙伴/推荐人 —— 标记为"partner"(若存在标签)
  • 按地区 —— 合并字段REGION = 指定地区
  • 高参与度用户 —— 过去60天内点击过链接
  • 沉睡用户 —— 180天内未打开邮件(重新激活目标)

Campaign Report (Post-Send)

活动报告(发送后)

After a campaign sends (wait 48 hours), agent can pull the report:
bash
curl -s --user "anystring:$MAILCHIMP_API_KEY" \
  "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/reports/$CAMPAIGN_ID" | python3 -m json.tool
Agent summarizes for owner in Telegram:
📊 Campaign Report — "Summer Partner Special"
Sent to: 1,500 contacts
Opens: 542 (30%) — above industry avg (21%)
Clicks: 28 (1.5%)
Unsubscribes: 3
Best segment: Standard Region (42% open rate)
活动发送后等待48小时,Agent可提取报告:
bash
curl -s --user "anystring:$MAILCHIMP_API_KEY" \
  "https://$MAILCHIMP_SERVER_PREFIX.api.mailchimp.com/3.0/reports/$CAMPAIGN_ID" | python3 -m json.tool
Agent在Telegram中为所有者总结:
📊 营销活动报告 —— "夏季合作伙伴特惠"
发送对象:1500位联系人
打开率:542次(30%)—— 高于行业平均水平(21%)
点击率:28次(1.5%)
退订数:3
最佳细分:标准区域(42%打开率)

Agent Integration Patterns

Agent集成模式

Pattern 1: Seasonal Campaign

模式1:季节性营销活动

Owner: "Send a seasonal campaign to all contacts" Agent: Drafts content about seasonal prep + prevention → subject lines → owner picks → test send → owner approves → scheduled for Tuesday 10am
所有者:"向所有联系人发送季节性营销活动" Agent:起草关于季节性准备和预防的内容 → 主题行选项 → 所有者选择 → 发送测试邮件 → 所有者审批 → 安排在周二上午10点发送

Pattern 2: Partner Re-engagement

模式2:合作伙伴重新激活

Agent detects (via CRM) that 12 partners haven't sent a lead in 6 months. Agent: Drafts a "We miss you" campaign targeted to cold partner segment → owner approves → send → track who re-engages → update CRM
Agent(通过CRM检测到)12位合作伙伴已6个月未发送潜在客户。 Agent:起草针对沉睡合作伙伴细分的"我们想念您"营销活动 → 所有者审批 → 发送 → 跟踪重新激活用户 → 更新CRM

Pattern 3: Post-Job Review Request

模式3:售后评价请求

Job completes. Agent: Drafts a campaign asking the customer for a Google review with a direct link → owner approves → send to that one customer (not a bulk send)
工作完成后,Agent:起草请求客户撰写Google评价的营销活动,附带直接链接 → 所有者审批 → 发送给该客户(非批量发送)

Pattern 4: Content from CRM Data

模式4:基于CRM数据生成内容

Agent: "You booked 8 jobs from Standard Region partners this quarter — want me to draft a 'Standard Region Partner Thank You' campaign?" Owner: "Yes" → agent drafts.
Agent:"本季度您从标准区域合作伙伴处获得了8个订单 —— 需要我起草一份'标准区域合作伙伴感谢信'营销活动吗?" 所有者:"是的" → Agent起草

Common Pitfalls

常见陷阱

  1. Don't send without a test. Always send a test to the owner first. One wrong link or typo to 1,800 people can't be undone.
  2. Don't forget the unsubscribe footer. CAN-SPAM requires it. Mailchimp adds it automatically with
    *|UNSUB|*
    merge tag.
  3. Don't use too many images. Many email clients block images by default. Text should carry the message; images are enhancement.
  4. Don't send on Friday afternoon. Opens tank. Schedule for Tuesday-Wednesday.
  5. Don't A/B test everything at once. Test one variable per campaign. Subject lines first. Then timing. Then content.
  6. Merge tags need exact match.
    *|FNAME|*
    works only if the merge field tag is exactly FNAME. Check merge fields before using.
  7. From name consistency. Don't change from "[BUSINESS_NAME]" to "[OWNER_NAME]" across campaigns — it hurts recognition. Pick one and stick to it.
  1. 不要未经测试就发送。 始终先向所有者发送测试邮件。一个错误链接或错别字发送给1800人就无法挽回了。
  2. 不要忘记退订页脚。 CAN-SPAM法规要求必须包含。Mailchimp会通过
    *|UNSUB|*
    合并标签自动添加。
  3. 不要使用过多图片。 许多邮件客户端默认阻止图片。文字应传递核心信息;图片仅作为补充。
  4. 不要在周五下午发送。 打开率会暴跌。安排在周二至周三发送。
  5. 不要同时测试所有内容。 每次活动只测试一个变量。先测试主题行,再测试时间,最后测试内容。
  6. 合并标签需完全匹配。
    *|FNAME|*
    仅在合并字段标签完全为FNAME时有效。使用前检查合并字段。
  7. 发件人名称保持一致。 不要在不同活动中从"[企业名称]"改为"[所有者姓名]" —— 这会降低辨识度。选择一个并保持不变。

Verification Checklist

验证清单

  • Can create a regular campaign via API
  • Can create a variate (A/B test) campaign via API
  • Can set campaign content (HTML + plain text)
  • Can send a test email to owner
  • Can send or schedule a campaign
  • Can pull campaign report (opens, clicks, unsubscribes)
  • Can create segments by tag/region/engagement
  • Owner approval workflow tested end-to-end
  • 可通过API创建常规营销活动
  • 可通过API创建变体(A/B测试)营销活动
  • 可设置营销活动内容(HTML + 纯文本)
  • 可向所有者发送测试邮件
  • 可发送或安排营销活动
  • 可提取活动报告(打开率、点击率、退订数)
  • 可按标签/地区/参与度创建细分
  • 所有者审批流程已端到端测试

One-Shot Recipes

一键式方案

"Quick campaign: seasonal reminder"

"快速活动:季节性提醒"

python
undefined
python
undefined

Owner says: "Send a seasonal prevention tip to all contacts for summer"

所有者说:"向所有联系人发送夏季季节性预防提示"

Agent drafts 3 short tips + CTA → creates campaign → test → owner approves → send

Agent起草3个简短提示 + CTA → 创建活动 → 测试 → 所有者审批 → 发送

undefined
undefined

"Re-engagement: cold contacts"

"重新激活:沉睡联系人"

python
undefined
python
undefined

Agent identifies contacts with no opens in 180 days

Agent识别180天内未打开邮件的联系人

Creates segment "Cold - 180 days"

创建细分"沉睡用户 - 180天"

Drafts "We miss you" campaign with special offer

起草带有特惠的"我们想念您"营销活动

Owner approves → send → track re-engagement → update CRM

所有者审批 → 发送 → 跟踪重新激活情况 → 更新CRM

undefined
undefined

"Monthly newsletter from CRM data"

"基于CRM数据的月度通讯"

python
undefined
python
undefined

Agent pulls: new leads, jobs booked, revenue this month

Agent提取:新潜在客户、已完成订单、本月收入

Drafts "[BUSINESS_NAME] Monthly" newsletter with stats + customer spotlight

起草"[企业名称]月度通讯",包含数据统计 + 客户亮点

Owner approves → send → track engagement

所有者审批 → 发送 → 跟踪参与度

Schedule as monthly cron job

设置为月度定时任务

undefined
undefined