关于 sms-marketing
sms-marketing 是面向电商团队的短信营销实施与合规技能,介绍平台选择、订阅同意、用户分群和效果衡量。内容涉及 Postscript、Attentive、Klaviyo SMS、SMSBump 和面向无头店铺的 Twilio 方案。
主要功能
- 01比较短信营销平台与适用场景
- 02配置订阅入口和同意流程
- 03按购买历史与生命周期划分用户
- 04区分营销与交易短信授权
- 05跟踪点击、退订和收入指标
适用场景
- 01为电商渠道启用短信营销
- 02审查短信订阅流程是否符合要求
- 03向弃购或流失客户发送定向短信
- 04将短信加入现有邮件营销流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill sms-marketing安装后在 Claude Code 中输入/sms-marketing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
tile.jsonevals/compliant-opt-in-and-consent-storage/criteria.jsontask.mdevals/inbound-sms-keyword-webhook-handling/criteria.jsontask.mdevals/marketing-sms-send-with-compliance-check/criteria.jsontask.md详细介绍
短信营销
概述
短信营销的打开率可达 98%,点击率比电子邮件高 5–10 倍,因此它是电商表现最佳的直接营销渠道之一。不过,短信受到严格监管:美国的 TCPA 要求获得明确的书面同意,违规者每条消息最高可被罚款 1,500 美元。专用短信应用(Postscript、Attentive、Klaviyo SMS)会自动处理合规要求、订阅流程和 10DLC 注册。只有无头商店才需要自定义 Twilio 实现。
何时使用此技能
- 在现有电子邮件自动化之外,推出短信营销渠道时
- 需要在结账时和通过弹窗设置符合 TCPA 要求的订阅流程时
- 希望按购买历史、生命周期阶段或位置细分短信营销活动时
- 向不同的订阅名单发送交易类短信(配送更新)和营销类短信时
- 审核现有短信项目是否存在合规问题时
核心说明
第 1 步:选择合适的短信平台
| 平台 | 最适合 | Shopify | WooCommerce | BigCommerce | 价格 |
|---|---|---|---|---|---|
| Postscript | 原生 Shopify,细分 + 工作流 | App Store | — | — | 免费套餐;$100+/月 |
| Attentive | 中端市场,高级 A/B 测试 | App Store | 通过集成 | 通过集成 | $400+/月 |
| Klaviyo SMS | 已使用 Klaviyo 发送电子邮件 | App Store | 插件 | App Marketplace | 添加到 Klaviyo 套餐中 |
| SMSBump (Yotpo SMS) | WooCommerce + Shopify | App Store | 插件 | — | 免费套餐;$19+/月 |
| Twilio | 自定义/无头,由开发者控制 | 通过 API | 通过 API | 通过 API | 按消息计费 |
建议: Shopify 使用 Postscript,WooCommerce 使用 SMSBump。如果已在使用 Klaviyo,可添加 Klaviyo SMS,以便在同一平台中管理营销活动和工作流。只有在需要全面的程序化控制时,无头商店才使用 Twilio。
第 2 步:设置短信订阅
使用 Postscript 的 Shopify
- 从 Shopify App Store 安装 Postscript
- 前往 Postscript → Keywords,设置订阅关键词(例如,“JOIN”)——客户向你的 Postscript 号码发送此关键词即可订阅
- 前往 Postscript → Sign-up Units 添加订阅表单:
- 结账订阅:Postscript 会自动在结账时添加一个复选框——在 Settings → Checkout 下配置同意文本
- 弹窗:创建限时弹窗并提供折扣(例如,“享受 10% 折扣——向 [number] 发送 JOIN”)
- 在 Postscript → Settings → Compliance 下设置重要的合规选项:
- 确认已显示同意文本:“订阅即表示你同意接收营销短信。回复 STOP 即可取消订阅。”
- 结账时切勿预先勾选短信订阅框——TCPA 要求默认不勾选
- 前往 Postscript → Flows 构建自动化序列:
- 欢迎系列:订阅后触发——立即发送欢迎消息 + 折扣码
- 购物车弃置:Shopify 检测到结账弃置时触发(与电子邮件不同;即使没有电子邮件地址也可以发送)
- 浏览弃置:高购买意向浏览后 4 小时内未购买时触发
使用 SMSBump 的 WooCommerce
- 从 WordPress 插件目录安装 SMSBump(现为 Yotpo SMS)
- 前往 SMSBump → Settings → Compliance,配置结账订阅字段
- 前往 SMSBump → Automations,启用:
- 购物车弃置短信
- 订单确认和配送更新短信(交易类)
- 挽回短信(60 天以上未购买的客户)
- 为符合 GDPR 要求,SMSBump 为欧盟订阅者提供双重订阅流程——在 Settings → Compliance → Double Opt-in 下启用
BigCommerce 搭配 Klaviyo SMS
- 从 BigCommerce App Marketplace 安装 Klaviyo
- 前往 Klaviyo → SMS → Getting Started,完成 10DLC 注册(Klaviyo 会引导你完成)
- 通过 BigCommerce Admin → Store Setup → Checkout 在结账页面添加 SMS 选择加入字段
- 在 Klaviyo → Flows 中构建 SMS 工作流——可以将 SMS 添加到任何现有电子邮件工作流中,作为额外渠道
自定义/无头架构
对于无头商店,请使用 Twilio。你必须将合规要求纳入应用逻辑:
import twilio from 'twilio';
const client = twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);
async function sendMarketingSMS(phone: string, body: string, customerId: string): Promise<boolean> {
// ALWAYS check consent before sending — never skip this check
const consent = await db.smsConsent.findActive(phone, 'marketing');
if (!consent) {
console.warn(`SMS suppressed for ${phone} — no active marketing consent`);
return false;
}
// TCPA: no marketing SMS before 8am or after 9pm in recipient's local time
if (isQuietHours(phone, consent.zipCode)) {
await smsQueue.add('send', { phone, body, customerId }, { delay: msUntilMorning(phone, consent.zipCode) });
return false;
}
await client.messages.create({
from: process.env.TWILIO_PHONE_NUMBER,
to: phone,
body: `${body}\n\nReply STOP to unsubscribe`,
});
return true;
}
// Handle STOP/HELP/UNSTOP via Twilio webhook — required by carriers
export async function handleInboundSMS(req: Request, res: Response) {
const { From: from, Body: body } = req.body;
const keyword = body.trim().toUpperCase();
if (['STOP', 'STOPALL', 'UNSUBSCRIBE', 'CANCEL', 'END', 'QUIT'].includes(keyword)) {
await db.smsConsent.deactivateAll(from);
// Twilio also auto-handles STOP at the carrier level for registered numbers
} else if (keyword === 'HELP') {
// Required: explain how to opt out
await client.messages.create({
from: process.env.TWILIO_PHONE_NUMBER,
to: from,
body: `${process.env.STORE_NAME} alerts. Msg&Data rates apply. Reply STOP to unsubscribe.`,
});
} else if (['START', 'UNSTOP', 'YES'].includes(keyword)) {
await db.smsConsent.reactivate(from, 'marketing');
}
res.sendStatus(200);
}
**自定义 Twilio 实现的重要提示:**发送消息前,必须通过 Campaign Registry (TCR) 注册品牌和营销活动。美国运营商会拦截未注册的 10DLC 流量。Twilio 的控制台会在 Messaging → Regulatory Compliance → 10DLC 下引导你完成注册。
第 3 步:同意合规要求
TCPA(美国)要求——必须遵守:
- 结账时的选择加入复选框默认必须未勾选
- 同意声明必须显示在复选框旁边(不能放在细则中)
- 必须使用以下同意声明:“勾选此框即表示你同意我们向你提供的号码发送营销短信。消息频率不定。可能产生消息和数据费用。回复 STOP 即可取消订阅。”
- 必须在 10 个工作日内处理 STOP 请求(专用 SMS 应用会自动处理)
- 不得在收件人当地时区上午 8 点前或晚上 9 点后发送营销 SMS
GDPR(欧盟)要求:
- 同意标准与 TCPA 相同,另外还需明确记录同意
- 提供数据导出机制(同意记录须包含时间戳、IP、完整的同意声明)
- 许多国家/地区要求欧盟订阅者进行双重选择加入
所有主流 SMS 应用(Postscript、SMSBump、Klaviyo SMS)都会自动处理这些合规要求。若直接使用 Twilio,则必须自行实现。
第 4 步:营销活动细分
SMS 投资回报率最高的细分人群:
| 细分人群 | 消息 | 预期 CTR |
|---|---|---|
| 放弃购物车的客户(1–4 小时) | “你有商品遗留在购物车中:[cart link]” | 15–25% |
| VIP 客户(LTV 排名前 20%) | 提前了解促销和新品 | 20–30% |
| 沉睡客户(60–90 天) | 提供折扣的挽回优惠 | 8–15% |
| 购后交叉销售(送达后 7 天) | “其他购买了 X 的客户也喜欢 Y” | 10–20% |
在 Postscript 中:前往 Postscript → Segments,使用订单历史记录、购买频率和 LTV 筛选条件构建细分人群。 在 Klaviyo SMS 中:将 SMS 步骤添加到现有电子邮件细分人群中——受众定位方式相同。
第 5 步:衡量 SMS 效果
| 指标 | 健康目标 | 查看位置 |
|---|---|---|
| 结账时的选择加入率 | 占客户的 5–15% | 应用分析 |
| 点击率(营销活动) | 8–20% | 应用分析 |
| 每次营销活动的退订率 | < 2% | 应用分析——若高于 3% 则暂停 |
| 每位订阅者每月带来的收入 | $3–$10 | 计算方式:SMS 归因收入 ÷ 订阅者人数 |
| 总退订率 | 每月 < 5% | 应用分析 |
最佳实践
- 将营销同意与交易同意分开处理——选择退出营销 SMS 的客户仍应收到订单确认和发货短信;两者属于不同的同意类型
- 每周营销 SMS 不要超过 2–3 条——SMS 是侵扰性最强的渠道;高频发送比其他任何渠道都更容易导致退订
- 消息长度保持在 160 个字符以内,避免拆分成多条发送——表情符号计为 2 个字符,并会触发 UCS-2 编码,使 160 个字符的上限减半
- 每条营销消息都必须包含 STOP 说明——大多数应用会自动添加;请确认说明确实存在
- 上线前先注册 10DLC——美国运营商会拦截未注册的流量;通过 SMS 平台注册需要 1–2 周
常见问题
| 问题 | 解决方案 |
|---|---|
| 运营商拦截消息 | 发送消息前,通过你的短信平台完成 10DLC 品牌和营销活动注册 |
| 未遵守 STOP 请求 | 专用短信应用会自动处理;对于自定义 Twilio,请配置入站 webhook |
| 违反静默时段规定 | 使用短信平台内置的静默时段设置;对于 Twilio,请根据时区实现定时发送 |
| 结账时复选框默认已勾选 | 这违反了 TCPA——请立即将默认状态改为未勾选;这是法律要求,并非个人偏好 |
| 161 个字符的消息被拆分为多条短信 | 发送前在服务器端统计字符数;购物车链接请使用 URL 缩短服务 |
相关技能
- @email-marketing-automation
- @cart-abandonment-recovery
- @cart-recovery-sms
- @push-notifications
- @customer-segmentation