关于 sales-customerio
这是一项解答 Customer.io 平台问题的技能,面向开发者、产品与增长团队、营销人员及账户管理员。内容涵盖事件驱动的旅程、营销活动、消息发送、数据工具和分析,并提供操作步骤与平台注意事项。
主要功能
- 01旅程与营销活动指导
- 02事务性消息与细分
- 03多渠道消息概览
- 04Data Pipelines 与 Custom Objects
- 05设置步骤与故障排查
适用场景
- 01设计事件触发的旅程
- 02通过 API 发送事务性消息
- 03创建数据驱动的细分
- 04在旅程中添加 Webhook
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sales-skills/ sales --skill sales-customerio安装后在 Claude Code 中输入/sales-customerio确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/customerio-api-reference.mdlearnings.mdplatform-guide.md详细介绍
Customer.io 平台帮助
帮助用户解答 Customer.io 平台相关问题,涵盖行为触发式旅程和营销活动、事务性消息、细分、多渠道投递(电子邮件、短信、推送、应用内消息、WhatsApp)、Data Pipelines、Custom Objects、Ad Audience Sync 和分析。Customer.io 是一个客户互动和营销自动化平台,面向整个客户生命周期,支持以数据为驱动、以事件为基础的消息发送。Customer.io 由 Colin Nederkoorn 和 John Allison 于 2012 年创立,服务超过 9,000 个品牌,年度经常性收入(ARR)超过 1 亿美元。它的差异化优势在于为产品驱动型公司提供事件驱动的自动化:Mailchimp/SendGrid 专注于营销电子邮件,而 Customer.io 擅长行为触发式消息(引导上手、激活、留存、重新互动),并以第一方数据为核心。
步骤 1 — 收集背景信息
如果 references/learnings.md 存在,请先阅读,了解积累的知识。
询问用户:
-
你需要哪方面的 Customer.io 帮助?
- A) Journeys — 用于多渠道自动化的可视化拖放工作流构建器
- B) Campaigns — 由细分、事件或日期触发的消息
- C) Transactional Messages — 由 API 触发的电子邮件、推送或短信(密码重置、收据等)
- D) Segmentation — 基于数据(自动更新)或手动(静态)的细分
- E) Multi-channel messaging — 电子邮件、短信、推送通知、应用内消息、WhatsApp
- F) Data Pipelines — 数据摄取 API、反向 ETL、Segment 集成
- G) Custom Objects — 对人员之外的对象建模(账户、产品、订阅)
- H) Ad Audience Sync — Google、Facebook、Instagram、YouTube 受众同步
- I) Design Studio — 支持协作的拖放式电子邮件编辑器
- J) A/B & cohort testing — 测试内容、主题行、工作流分支和发送时间
- K) Broadcasts — 向细分用户一次性发送或定时发送的消息
- L) Webhooks — 在旅程步骤中向任意 API 发送数据或从中接收数据
- M) Analytics — 转化目标、队列比较、AI 驱动的洞察
- N) APIs — Track API、App API、Transactional API、Data Pipelines API
- O) Integrations — Salesforce、Segment、Snowflake、BigQuery、Zapier 等
- P) Account / Billing — 套餐、定价、用户资料上限
- Q) 其他 — 请描述具体需求
-
你的角色是什么?
- A) 开发者 / 工程师
- B) 产品 / 增长
- C) 营销 / 生命周期
- D) 管理员 / 账户所有者
- E) 创始人 / 独立运营者
- F) 其他
-
你想要实现什么?(描述你的具体目标或问题)
如果用户的请求已提供大部分背景信息,请直接跳到相关步骤。 先根据合理假设尽力回答,并明确说明这些假设;然后只在结尾询问最关键的 1–2 个澄清问题,不要把收集完整背景信息作为回答的前提。
注意:如果用户需要专门技能,请简要说明原因,并引导他们使用相应技能。
步骤 2 — 转接或直接回答
如果请求适合由专门技能处理,请转接:
- 通用电子邮件营销策略 / 最佳实践 ->
/sales-email-marketing - 跨平台电子邮件送达能力(非 Customer.io 专属) ->
/sales-deliverability - 电子邮件打开 / 点击跟踪策略 ->
/sales-email-tracking - 通过 Zapier 或中间件将 Customer.io 连接到其他工具 ->
/sales-integration - 漏斗策略 / 转化优化 ->
/sales-funnel
否则,请根据下方参考信息直接提供平台相关解答。
步骤 3 — Customer.io 平台参考
阅读 references/platform-guide.md,了解模块文档、定价、集成和数据模型的详细信息。
你不再需要平台指南的详细信息;请专注于用户的具体情况。
步骤 4 — 提供可执行的指导
根据用户的具体问题:
-
设置事件触发型营销活动:
- 确定应触发营销活动的事件(例如,
trial_started、purchase_completed、feature_activated)——确保应用通过 Track API 或 Data Pipelines 跟踪此事件 - 在 Customer.io 中,前往 Journeys > Create Journey > 选择“Event triggered”
- 选择触发事件名称——也可以添加事件数据筛选条件(例如,仅在
plan = "pro"时触发) - 如有需要,添加延迟(例如,注册 1 小时后再发送第一封引导邮件)
- 添加第一个消息操作——选择渠道(邮件、SMS、推送等)并设计消息
- 使用 Liquid 模板进行个性化设置:
{{ customer.first_name }}、{{ event.plan_name }}、{{ customer.company }} - 为后续消息添加分支逻辑——例如,“用户是否完成引导步骤?”设置“是/否”分支
- 设置转化目标事件(例如,
onboarding_completed)和时间范围,以衡量营销活动的效果 - 在草稿模式下测试工作流——使用测试档案,并通过 Track API 手动触发事件
- 准备就绪后,激活工作流
- 确定应触发营销活动的事件(例如,
-
通过 API 发送事务性邮件:
- 在 Customer.io 中创建事务性消息模板:Transactional > Create Transactional Message > Email
- 设计邮件内容——使用 Liquid 变量插入动态数据(例如,
{{ order_number }}、{{ reset_url }}) - 记下模板设置中的事务性消息 ID
- 从 Settings > API Credentials 获取 App API 密钥(这是一个 Bearer 令牌,与 Track API 的 Site ID/密钥不同)
- 通过 API 发送:
POST https://api.customer.io/v1/send/email Authorization: Bearer YOUR_APP_API_KEY Content-Type: application/json { "transactional_message_id": "YOUR_TEMPLATE_ID", "to": "[email protected]", "identifiers": { "id": "user_123" }, "message_data": { "order_number": "ORD-456", "total": "$99.00" } } - 处理响应——检查是否成功(200)或是否返回错误代码
- 在 Customer.io 的 Transactional Messages 部分监控投递情况——打开、点击和投递状态会与营销活动分析数据一同显示
- 如需在 EU 区域存储数据,请使用
https://api-eu.customer.io/v1/send/email
-
构建数据驱动型细分:
- 前往 Segments > Create Segment > Data-driven
- 使用可视化条件构建器定义条件——组合属性筛选条件、事件筛选条件和互动筛选条件
- 属性筛选条件示例:
plan等于"premium",且created_at晚于 2025-01-01 - 事件筛选条件示例:用户在过去 7 天内至少执行过 3 次
login - 互动筛选条件示例:用户在过去 30 天内打开过任意邮件
- 使用 AND/OR 分组处理复杂逻辑——例如,(plan = "premium" OR plan = "enterprise") AND (过去 14 天内有登录)
- 保存前预览细分,以查看符合条件的档案
- 将细分用作工作流触发条件——用户符合细分条件时会自动进入工作流,不再符合条件时则会退出
- Track API 或 Data Pipelines 收到新数据后,细分会实时重新评估——无需手动刷新
-
向旅程工作流添加 Webhook:
- 在旅程构建器中打开现有旅程,或创建新旅程
- 在工作流中所需的步骤添加“Send Webhook”操作
- 配置 Webhook:设置 HTTP 方法(GET、POST、PUT、PATCH、DELETE)、URL、标头和正文
- 在 Webhook 正文中使用 Liquid 模板,包含人员属性和事件数据:
{ "user_id": "{{ customer.id }}", "plan": "{{ customer.plan }}" } - 按需添加身份验证标头(例如,
Authorization: Bearer YOUR_EXTERNAL_API_KEY) - 使用场景:更新外部 CRM、触发 Slack 通知、调用自己的 API 来配置资源、将数据同步到第三方工具
- 处理 Webhook 响应——可以根据 Webhook 响应状态码对旅程进行分支(成功/失败路径)
- 在激活旅程前于草稿模式下测试 Webhook——确认外部端点收到预期的负载
-
设置 Data Pipelines 以摄取数据:
- 前往 Data Pipelines > Sources > Add Source
- 选择数据源类型——JavaScript SDK(浏览器)、服务端 SDK(Node、Python、Ruby、Go、Java、PHP)或 HTTP API
- 复制该数据源的写入密钥——它用于验证流入 Customer.io 的数据
- 在应用中安装 SDK(例如,Node.js 使用
npm install @customerio/cdp-analytics-node) - 使用写入密钥初始化并发送数据:
analytics.identify("user_123", { name: "Jane", plan: "premium" })— 创建/更新人员analytics.track("user_123", "Feature Activated", { feature: "reports" })— 跟踪事件
- Data Pipelines API 兼容 Segment 的跟踪规范——如果从 Segment 迁移,只需进行少量代码更改
- 对于反向 ETL(Snowflake/BigQuery):前往 Data Pipelines > Sources > Add Source > Warehouse,连接数据仓库凭据并配置同步计划
- 添加目标,将数据路由到 Customer.io Journeys 之外——例如,将事件数据发送到 Amplitude、Mixpanel 或 Webhook 端点
- 在 Data Pipelines 仪表板中监控数据源运行状况——跟踪事件量、错误和延迟
注意事项
根据研究尽力整理——请对照 Customer.io 当前文档核实详情。
-
Essentials 套餐起价为 $100/月,对小规模发送者来说价格不低。 与 Mailchimp(免费套餐最多支持 500 个联系人)或 SendGrid(免费套餐每天可发送 100 封邮件)不同,Customer.io 没有免费套餐,入门价格为 $100/月,可容纳 5,000 个用户档案。如果你是处于早期阶段的初创公司,或联系人少于几千人的小规模发送者,请评估 Customer.io 的事件驱动自动化是否值得这笔费用,还是选择更简单的工具更合适。超出部分每个用户档案收费 $0.009,规模扩大后也会很快累积。
-
Essentials 套餐仅支持 2 种自定义对象类型。 如果你需要建模的非个人实体超过 2 种(例如账户、产品、订阅、订单),则必须升级至 Premium(年付 $1,000/月)。在选择 Essentials 前,请仔细规划数据模型——如果你需要账户和另一种对象类型,就已经达到上限。
-
API 触发的群发受限于每 10 秒 1 个请求。 这远慢于 Track API(100 req/sec)或 Transactional API(100 req/sec)。请勿将 API 触发的群发用于高频或实时场景。如果你需要快速向许多人发送紧急的一次性消息,可以考虑通过 Transactional API 逐条发送,或提前安排群发,而不是在最后一刻通过 API 触发。
-
应用内消息需要在你的应用中集成 Customer.io SDK。 与无需任何客户端代码即可使用的电子邮件或 SMS 不同,应用内消息需要在应用中安装并初始化 Customer.io JavaScript SDK(Web)或移动 SDK(iOS/Android/React Native/Flutter)。这意味着需要投入工程资源来集成 SDK、处理消息渲染并管理用户会话。请为此预留开发时间——这并不是一个即插即用的渠道。
-
SMS 需要单独的 Twilio 账户,并会产生单独的 Twilio 费用。 Customer.io 不直接提供 SMS 基础设施——它在底层使用 Twilio。你必须创建 Twilio 账户、购买电话号码,并将 Twilio 凭据连接到 Customer.io。SMS 费用由 Twilio 根据其按消息计费的价格收取(而非 Customer.io)。这会增加账单管理的复杂性,也意味着你的消息总成本分摊给了两家供应商。
- 持续改进:如果你发现此处未涵盖的内容,请附上当天日期并追加到
references/learnings.md。
第 5 步 — 相关技能
/sales-email-marketing— 电子邮件营销策略与最佳实践(与平台无关)/sales-deliverability— 跨平台电子邮件送达率——SPF/DKIM/DMARC、预热、收件箱投递/sales-email-tracking— 电子邮件打开与点击跟踪策略/sales-integration— 通过 Zapier、webhook 或 API 将 Customer.io 连接到其他工具/sales-funnel— 漏斗策略与转化优化/sales-do— 不确定该使用哪项技能?此路由器可根据任何销售目标匹配合适的技能。安装:npx skills add sales-skills/sales --skill sales-do
示例
示例 1:构建由注册触发的入门引导滴灌序列
用户说:“我想在有人注册我们的 SaaS 产品时发送一组包含 5 封邮件的入门引导序列,并根据他们是否完成关键激活步骤设置不同路径。” 技能执行:
- 确认用户通过 Track API 或 Data Pipelines 跟踪
signed_up事件(或等效事件)——如果没有,则指导他们为该事件添加埋点 - 创建由
signed_up事件触发的新旅程 - 设计包含 5 个步骤的邮件序列及发送间隔:欢迎邮件(立即发送)、入门指南(第 1 天)、核心功能介绍(第 3 天)、激活提醒(第 5 天)、跟进邮件(第 7 天)
- 在第 3 步后添加分支逻辑:检查该用户是否执行过
activated事件——若是,则跳过激活提醒,改为发送一封“做得好”邮件;若否,则继续发送提醒 - 将
activated设为转化目标,转化窗口为 14 天 - 使用 Liquid 模板进行个性化设置:
{{ customer.first_name }}、{{ customer.company }}、{{ customer.plan }} - 在激活旅程前,使用测试资料在草稿模式下进行测试 结果:用户获得一套由行为驱动的入门引导序列,可根据用户是否完成激活进行调整,并通过转化跟踪衡量效果
示例 2:设置交易型订单确认邮件
用户说:“我们需要在客户购买后立即发送包含订单明细的订单确认邮件,并由我们的后端 API 触发。” 技能执行:
- 在 Customer.io 中创建交易型消息模板,使用 Liquid 模板处理订单数据:
{{ order_number }}、{{ items }}(使用{% for item in message_data.items %}循环)、{{ total }} - 指导用户从 Settings > API Credentials 获取其 App API key
- 展示 API 调用结构:
POST https://api.customer.io/v1/send/email,包含transactional_message_id、to、identifiers,以及包含订单详情的message_data - 建议在
identifiers中包含用户的id,以便将交易型发送关联到其资料,供分析使用 - 建议设置 webhook,或查看 Transactional Messages 仪表板以监控投递失败
- 注意:如果用户使用的是欧盟基础设施,请切换到
api-eu.customer.io结果:用户获得一套可用于生产环境的交易型订单确认邮件,由后端触发,并支持动态渲染订单明细
示例 3:将高价值客户细分同步到 Google Ads 以便排除
用户说:“我们不想再向已经付费的客户展示获客广告。Customer.io 能否将我们的付费客户细分同步到 Google Ads?” 技能执行:
- 确认用户有一个数据驱动的细分,可识别付费客户(例如,
plan不为"free",且subscription_status等于"active") - 指导用户设置 Ad Audience Sync:前往 Integrations > Ad Audiences > Google Ads
- 通过 OAuth 连接 Google Ads 账户
- 将付费客户细分映射到 Google Ads 客户列表
- 说明受众会在用户进入或离开细分时自动同步——新付费客户会被添加,流失客户会被移除
- 建议在 Google Ads 中使用此同步列表创建排除受众,以便在获客广告系列中排除现有客户 结果:系统会自动排除付费客户,从而优化用户的获客广告支出;受众名单也会随着订阅状态变化而保持最新
故障排除
事件未触发营销活动或旅程
症状:你通过 Track API 或 Data Pipelines 跟踪事件,但这些事件未触发事件触发型营销活动或旅程。
原因:最常见的原因是跟踪事件之前,Customer.io 中还不存在此人。Track API 要求先识别此人(PUT /customers/{id}),才能将事件与其关联。另一个常见原因是代码中的事件名称与配置为旅程触发条件的事件名称不一致(事件名称区分大小写)。最后,请检查旅程是否处于活动状态——草稿或已暂停的旅程不会触发。
解决方案:在 Customer.io 中查看此人的个人资料(People > 按 ID 或电子邮件搜索),确认此人已存在。确保集成代码中先调用 identify,再调用 track。仔细检查代码中的事件名称与旅程触发条件配置是否完全一致(区分大小写)。在 Journeys 列表中确认旅程状态为“Active”。使用 Activity Log 查看 Customer.io 是否收到了该事件——如果事件未显示,则问题出在集成代码或 API 身份验证上。
旅程中已配置短信,但短信未发送
症状:旅程中的电子邮件步骤正常运行,但短信步骤被跳过,或在旅程分析中显示错误。
原因:Customer.io 中的短信功能需要连接一个已启用电话号码的 Twilio 账号。如果未配置 Twilio 凭据、凭据已过期,或 Twilio 账号余额不足,短信步骤就会静默失败或被跳过。此外,此人必须有有效的电话号码属性(通常是 phone,或在设置中映射的自定义属性),且未退订短信。
解决方案:前往 Settings > Workspace Settings > SMS,确认 Twilio Account SID、Auth Token 和电话号码配置正确。发送测试短信,测试 Twilio 连接。检查此人的个人资料,确认预期属性字段中有有效电话号码。确认此人的短信订阅状态不是已退订。检查 Twilio 账号控制面板,查看是否有错误、余额不足或号码合规问题。
Data Pipelines 事件显示在来源控制面板中,但未显示在个人资料中
症状:Data Pipelines 来源显示已收到事件(事件计数不断增加),但查看 Customer.io 中的个人资料时,找不到这些事件。
原因:Data Pipelines 要求先为某人调用 identify,之后才能将 track 事件关联到其个人资料。如果你发送的 track 调用使用了从未被识别过的 userId,管道可能会收到事件,但无法将其关联到个人资料。另一个原因是未启用或未正确配置 Data Pipelines 中面向 Customer.io Journeys 的目标。
解决方案:确认在调用 analytics.track() 之前或同时,已调用 analytics.identify("user_id", { traits })。检查 Data Pipelines > Destinations,确认 Customer.io Journeys 已列为目标且处于启用状态。查看目标的事件传送日志,检查是否有错误。如果使用来自数据仓库的反向 ETL,请确认同步映射同时包含身份数据和事件数据,并检查同步计划,确保近期已运行。