sales-customerio
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCustomer.io Platform Help
Customer.io 平台帮助
Help the user with Customer.io platform questions — from behavior-triggered journeys and campaigns through transactional messaging, segmentation, multi-channel delivery (email, SMS, push, in-app, WhatsApp), Data Pipelines, Custom Objects, Ad Audience Sync, and analytics. Customer.io is a customer engagement and marketing automation platform for data-driven, event-based messaging across the entire customer lifecycle. Founded in 2012 by Colin Nederkoorn and John Allison, Customer.io serves 9,000+ brands with $100M+ ARR and differentiates through event-driven automation for product-led companies — while Mailchimp/SendGrid focus on marketing email, Customer.io excels at behavior-triggered messaging (onboarding, activation, retention, re-engagement) with first-party data at the center.
为用户解答 Customer.io 平台相关问题——覆盖行为触发的 Journeys 和营销活动、事务性消息、受众分群、多渠道投放(邮件、短信、推送、应用内消息、WhatsApp)、数据管道、自定义对象、广告受众同步以及数据分析。Customer.io 是一款客户互动与营销自动化平台,可在整个客户生命周期内发送数据驱动、基于事件的消息。该平台由 Colin Nederkoorn 和 John Allison 于 2012 年创立,为 9000 多个品牌提供服务,ARR 超过 1 亿美元,核心差异化优势是为产品驱动型公司提供事件驱动的自动化能力:Mailchimp/SendGrid 专注于营销邮件,而 Customer.io 擅长以第一方数据为核心的行为触发消息(用户 Onboarding、激活、留存、召回)。
Step 1 — Gather context
步骤 1 — 收集上下文信息
Ask the user:
-
What area of Customer.io do you need help with?
- A) Journeys — visual drag-and-drop workflow builder for multi-channel automation
- B) Campaigns — segment-triggered, event-triggered, or date-triggered messaging
- C) Transactional Messages — API-triggered email, push, or SMS (password resets, receipts, etc.)
- D) Segmentation — data-driven (auto-updating) or manual (static) segments
- E) Multi-channel messaging — email, SMS, push notifications, in-app messages, WhatsApp
- F) Data Pipelines — data ingestion API, reverse ETL, Segment integration
- G) Custom Objects — modeling relationships beyond people (accounts, products, subscriptions)
- H) Ad Audience Sync — Google, Facebook, Instagram, YouTube audience sync
- I) Design Studio — collaborative drag-and-drop email editor
- J) A/B & cohort testing — testing content, subject lines, workflow branches, send times
- K) Broadcasts — one-time or scheduled messages to segments
- L) Webhooks — sending/receiving data to any API within journey steps
- M) Analytics — conversion goals, cohort comparison, AI-powered insights
- N) APIs — Track API, App API, Transactional API, Data Pipelines API
- O) Integrations — Salesforce, Segment, Snowflake, BigQuery, Zapier, etc.
- P) Account / Billing — plans, pricing, profile limits
- Q) Something else — describe it
-
What's your role?
- A) Developer / engineer
- B) Product / growth
- C) Marketing / lifecycle
- D) Admin / account owner
- E) Founder / solo operator
- F) Other
-
What are you trying to accomplish? (describe your specific goal or question)
If the user's request already provides most of this context, skip directly to the relevant step. Lead with your best-effort answer using reasonable assumptions (stated explicitly), then ask only the most critical 1-2 clarifying questions at the end — don't gate your response behind gathering complete context.
Note: If the user needs a specialized skill, route them there with a brief explanation of why that skill is a better fit.
向用户询问以下信息:
-
你需要 Customer.io 哪个模块的帮助?
- A) Journeys — 用于多渠道自动化的可视化拖拽工作流构建器
- B) Campaigns — 受众分群触发、事件触发或日期触发的消息
- C) 事务性消息 — API 触发的邮件、推送或短信(密码重置、支付凭证等)
- D) 受众分群 — 数据驱动(自动更新)或手动(静态)的受众分组
- E) 多渠道消息 — 邮件、短信、推送通知、应用内消息、WhatsApp
- F) 数据管道 — 数据接入 API、反向 ETL、Segment 集成
- G) 自定义对象 — 对用户之外的实体建模(账号、产品、订阅等)
- H) 广告受众同步 — Google、Facebook、Instagram、YouTube 受众同步
- I) 设计工作室 — 支持协作的拖拽式邮件编辑器
- J) A/B 与 cohort 测试 — 测试内容、主题行、工作流分支、发送时间
- K) 广播消息 — 向受众分群发送一次性或定时消息
- L) Webhook — 在 Journey 步骤内向任意 API 发送/接收数据
- M) 数据分析 — 转化目标、队列对比、AI 赋能洞察
- N) APIs — Track API、App API、事务性 API、数据管道 API
- O) 集成 — Salesforce、Segment、Snowflake、BigQuery、Zapier 等
- P) 账号/账单 — 套餐、定价、用户数上限
- Q) 其他问题 — 请描述
-
你的角色是什么?
- A) 开发者/工程师
- B) 产品/增长
- C) 营销/生命周期运营
- D) 管理员/账号所有者
- E) 创始人/独立运营者
- F) 其他
-
你希望实现什么目标?(描述你的具体目标或问题)
如果用户的请求已经提供了大部分上下文信息,可以直接跳到相关步骤。 优先基于合理假设(需明确说明)给出你能提供的最优解答,最后仅询问1-2个最关键的澄清问题,不要以收集完整上下文为由延迟回复。
注意:如果用户需要专项技能能力,可引导用户使用对应技能并简要说明该技能更适配的原因。
Step 2 — Route or answer directly
步骤 2 — 引导至对应技能或直接解答
If the request maps to a specialized skill, route:
- General email marketing strategy / best practices ->
/sales-email-marketing - Cross-platform email deliverability (not Customer.io-specific) ->
/sales-deliverability - Email open/click tracking strategy ->
/sales-email-tracking - Connecting Customer.io to other tools via Zapier or middleware ->
/sales-integration - Funnel strategy / conversion optimization ->
/sales-funnel
Otherwise, answer directly from platform knowledge using the reference below.
如果用户的请求适配专项技能,引导至对应技能:
- 通用邮件营销策略/最佳实践 ->
/sales-email-marketing - 跨平台邮件送达率(非 Customer.io 专属问题) ->
/sales-deliverability - 邮件打开/点击追踪策略 ->
/sales-email-tracking - 通过 Zapier 或中间件连接 Customer.io 与其他工具 ->
/sales-integration - 漏斗策略/转化优化 ->
/sales-funnel
否则,使用下方参考资料中的平台知识直接解答。
Step 3 — Customer.io platform reference
步骤 3 — Customer.io 平台参考资料
Provide module-by-module guidance based on the user's area:
根据用户咨询的模块提供针对性指导:
Journeys
Journeys
- What it is: Visual drag-and-drop workflow builder for multi-channel automation — the core of Customer.io's campaign orchestration
- Triggers: Segments (person enters/exits), events (behavioral), dates (attribute-based), form submissions, webhooks, API calls
- Branching logic: True/false branches based on attribute conditions, segment membership, event data, or random split (for A/B testing)
- Time controls: Delays (wait X minutes/hours/days), wait-until (pause until a condition is met or a date is reached), time windows (send only during business hours)
- Actions: Send email, send SMS, send push notification, send in-app message, send WhatsApp message, send webhook, update attribute, add/remove from segment, add to another journey
- Multi-channel within a single journey: Combine email, SMS, push, in-app, and webhooks in one workflow — e.g., send email, wait 2 days, if no open then send push notification
- Draft mode: Build and test journeys before activating — preview each step, send test messages
- 功能定义:用于多渠道自动化的可视化拖拽工作流构建器,是 Customer.io 活动编排的核心模块
- 触发条件:受众分群(用户进入/退出)、事件(行为触发)、日期(基于属性)、表单提交、Webhook、API 调用
- 分支逻辑:基于属性条件、分群成员身份、事件数据或随机拆分(用于 A/B 测试)的真假分支
- 时间控制:延迟(等待X分钟/小时/天)、等待条件(暂停直到满足某个条件或到达某个日期)、时间窗口(仅在工作时间发送)
- 支持动作:发送邮件、发送短信、发送推送通知、发送应用内消息、发送 WhatsApp 消息、发送 Webhook、更新属性、添加/移除出分群、加入其他 Journey
- 单 Journey 内多渠道支持:在一个工作流中整合邮件、短信、推送、应用内消息和 Webhook,例如:发送邮件,等待2天,如果未打开则发送推送通知
- 草稿模式:激活前可构建并测试 Journeys,预览每个步骤,发送测试消息
Campaigns
Campaigns
- Segment-triggered: Automatically send when a person matches segment criteria (enters the segment)
- Event-triggered: Fire when a specific event is tracked for a person (e.g., ,
purchase_completed)trial_started - Date-triggered: Send based on a date attribute (e.g., subscription renewal date, birthday)
- Workflow vs. single-send: Campaigns can be single messages or multi-step workflows (journeys)
- Conversion tracking: Set a conversion goal event and window to measure campaign effectiveness
- 分群触发:当用户匹配分群条件(进入分群)时自动发送
- 事件触发:为用户追踪到特定事件时触发(例如 、
purchase_completed)trial_started - 日期触发:基于日期属性发送(例如订阅续费日期、生日)
- 工作流 vs 单次发送:Campaigns 可以是单条消息,也可以是多步骤工作流(即 Journeys)
- 转化追踪:设置转化目标事件和窗口期,衡量活动效果
Transactional Messages
事务性消息
- Purpose: API-triggered messages for time-sensitive, user-initiated actions — password resets, receipts, shipping notifications, verification codes
- Endpoint: (Bearer token authentication, 100 req/sec)
POST https://api.customer.io/v1/send/email - Channels: Email, push notifications, SMS
- Templates: Create transactional message templates in the UI, trigger via API with dynamic data
- Tracking: Transactional messages appear in the same analytics as campaign messages — opens, clicks, deliveries
- Key difference from campaigns: Transactional messages are triggered by your application code via API, not by segments or events within Customer.io
- 用途:API 触发的消息,用于时间敏感、用户发起的动作——密码重置、支付凭证、物流通知、验证码
- 接口地址:(Bearer token 认证,100次请求/秒)
POST https://api.customer.io/v1/send/email - 支持渠道:邮件、推送通知、短信
- 模板:在 UI 中创建事务性消息模板,通过 API 传入动态数据触发
- 数据追踪:事务性消息会和活动消息一样展示在分析报表中——打开量、点击量、投递量
- 与 Campaigns 的核心差异:事务性消息由你的应用代码通过 API 触发,而非 Customer.io 内部的分群或事件触发
Segmentation
受众分群
- Data-driven segments: Auto-updating segments based on person attributes, event history, and engagement data — people are automatically added/removed as their data changes
- Manual segments: Static lists — people are added/removed explicitly via UI or API
- Segment conditions: Combine attribute filters (e.g., ), event filters (e.g., "performed
plan = "premium"in last 7 days"), engagement filters (e.g., "opened email in last 30 days"), and relationship filters (e.g., "related account has attribute X")login - Nested logic: AND/OR grouping for complex segment definitions
- Segment-triggered workflows: Segments serve as the primary entry trigger for campaigns and journeys
- Real-time evaluation: Data-driven segments re-evaluate as new data arrives — no manual refresh needed
- 数据驱动分群:基于用户属性、事件历史和互动数据自动更新的分群,用户数据变化时会自动被加入/移除分群
- 手动分群:静态列表,用户需要通过 UI 或 API 显式添加/移除
- 分群条件:可组合属性过滤(例如 )、事件过滤(例如「过去7天内至少执行过 3 次
plan = "premium"操作」)、互动过滤(例如「过去30天内打开过任意邮件」)和关系过滤(例如「关联账号有属性X」)login - 嵌套逻辑:支持 AND/OR 分组,可定义复杂的分群规则
- 分群触发工作流:分群是 Campaigns 和 Journeys 的主要入口触发条件
- 实时评估:新数据到达时数据驱动分群会自动重新评估,无需手动刷新
Multi-channel messaging
多渠道消息
- Email: Full HTML email with Design Studio editor, Handlebars-style Liquid templating, AMP support
- SMS: Powered by Twilio — requires a separate Twilio account connected to Customer.io. Supports two-way SMS with keyword handling (STOP, HELP)
- Push notifications: iOS (APNs), Android (FCM), and web push. Requires SDK integration in your mobile app or website
- In-app messages: Rich messages displayed within your app — requires Customer.io SDK integration. Supports images, buttons, carousels
- WhatsApp: Send WhatsApp messages via Meta Business API integration
- Channel preference management: Respect user channel preferences and subscription status per channel
- 邮件:支持 Design Studio 编辑器编辑的全 HTML 邮件、Handlebars 风格的 Liquid 模板、AMP 支持
- 短信:由 Twilio 提供能力——需要将独立的 Twilio 账号关联到 Customer.io,支持带关键词处理的双向短信(STOP、HELP)
- 推送通知:iOS(APNs)、Android(FCM)和网页推送,需要在你的移动端应用或网站中集成 SDK
- 应用内消息:展示在你的应用内的富媒体消息——需要集成 Customer.io SDK,支持图片、按钮、轮播图
- WhatsApp:通过 Meta Business API 集成发送 WhatsApp 消息
- 渠道偏好管理:遵守用户的渠道偏好和各渠道的订阅状态
Data Pipelines
数据管道
- What it is: Customer.io's primary data ingestion layer — recommended for all new integrations
- Sources: JavaScript SDK, server-side SDKs (Node, Python, Ruby, Go, Java, PHP), HTTP API, Segment integration, reverse ETL (Snowflake, BigQuery)
- Destinations: Route data from your sources to Customer.io Journeys and to third-party tools
- Reverse ETL: Pull data from your data warehouse (Snowflake, BigQuery) into Customer.io — sync audiences, attributes, and events from your warehouse
- Segment compatibility: Data Pipelines API is compatible with Segment's tracking spec — easy migration from Segment
- Recommended for new setups: Customer.io recommends Data Pipelines over the Track API for new integrations
- 功能定义:Customer.io 的核心数据接入层,推荐所有新集成使用
- 数据源:JavaScript SDK、服务端 SDK(Node、Python、Ruby、Go、Java、PHP)、HTTP API、Segment 集成、反向 ETL(Snowflake、BigQuery)
- 数据目的地:将数据源的数据路由到 Customer.io Journeys 和第三方工具
- 反向 ETL:从你的数据仓库(Snowflake、BigQuery)拉取数据到 Customer.io,同步受众、属性和事件
- Segment 兼容性:数据管道 API 与 Segment 的追踪规范兼容,从 Segment 迁移只需极少代码改动
- 新搭建场景推荐:Customer.io 推荐新集成优先使用数据管道,而非 Track API
Custom Objects
自定义对象
- What it is: Model relationships beyond people — accounts, companies, products, subscriptions, orders, etc.
- Relationship types: People can be related to custom objects, and custom objects can be related to other custom objects
- Use cases: Trigger messages based on account-level attributes, personalize with product data, segment by subscription status
- Limits: 2 object types on Essentials plan, 10 on Premium/Enterprise
- Events on objects: Track events on custom objects, not just people — e.g., track on a subscription object
subscription_renewed
- 功能定义:对用户之外的实体关系建模——账号、公司、产品、订阅、订单等
- 关系类型:用户可以关联到自定义对象,自定义对象也可以关联到其他自定义对象
- 使用场景:基于账号级属性触发消息、使用产品数据个性化内容、基于订阅状态分群
- 配额限制:Essentials 套餐支持2种对象类型,Premium/企业套餐支持10种
- 对象事件:可以追踪自定义对象的事件,而不仅限于用户事件——例如在订阅对象上追踪 事件
subscription_renewed
Ad Audience Sync
广告受众同步
- Supported platforms: Google Ads, Facebook, Instagram, YouTube
- How it works: Sync Customer.io segments to ad platform audiences — keep ad targeting aligned with your lifecycle segments
- Use cases: Suppress existing customers from acquisition ads, retarget churned users, create lookalike audiences from high-value segments
- Sync frequency: Audiences sync automatically as segment membership changes
- 支持平台:Google Ads、Facebook、Instagram、YouTube
- 运行逻辑:将 Customer.io 分群同步到广告平台受众,让广告定向与你的生命周期分群保持一致
- 使用场景:排除现有客户看到拉新广告、召回流失用户、基于高价值分群创建相似受众
- 同步频率:分群成员身份变化时受众会自动同步
Design Studio
设计工作室
- Drag-and-drop editor: Visual email builder with pre-built content blocks (text, image, button, divider, social, etc.)
- Collaborative editing: Multiple team members can work on email designs
- Reusable layouts: Create layout templates that can be shared across campaigns
- Code editor: Switch to raw HTML/CSS for full control
- Liquid templating: Use Liquid syntax for dynamic content, conditional logic, and loops within email templates
- 拖拽式编辑器:可视化邮件搭建工具,内置预制内容块(文本、图片、按钮、分割线、社交图标等)
- 协作编辑:多个团队成员可以同时编辑邮件设计
- 可复用布局:创建可在多个活动中共享的布局模板
- 代码编辑器:可切换到原生 HTML/CSS 实现完全自定义
- Liquid 模板:在邮件模板中使用 Liquid 语法实现动态内容、条件逻辑和循环
A/B & Cohort Testing
A/B 与 Cohort 测试
- Content testing: Test different email subject lines, body content, send times, or channels
- Workflow branch testing: Split journey paths to test different automation sequences
- Random split: Divide audience into test groups with configurable percentages
- Winning criteria: Define conversion goals and automatically select the winner
- Cohort comparison: Compare performance across user cohorts over time
- 内容测试:测试不同的邮件主题行、正文内容、发送时间或渠道
- 工作流分支测试:拆分 Journey 路径,测试不同的自动化序列
- 随机拆分:将受众按 configurable 的百分比划分为测试组
- 获胜标准:定义转化目标,自动选择获胜版本
- 队列对比:对比不同用户队列随时间的表现
Broadcasts
广播消息
- One-time sends: Send a single message to a segment immediately or at a scheduled time
- Scheduled broadcasts: Set a future date/time for delivery
- API-triggered broadcasts: Trigger a broadcast send via API — useful for programmatic one-time sends
- Newsletter use case: Use broadcasts for newsletters, product announcements, or one-time promotions
- Rate limit: API-triggered broadcasts are limited to 1 request per 10 seconds
- 一次性发送:立即或在指定时间向分群发送单条消息
- 定时广播:设置未来的发送日期/时间
- API 触发广播:通过 API 触发广播发送,适合程序化的一次性发送
- 通讯场景适用:广播适合发送新闻通讯、产品公告或一次性促销活动
- 速率限制:API 触发广播的限制为每10秒1次请求
Analytics
数据分析
- Conversion goals: Set an event as the conversion goal for a campaign — track the percentage of recipients who convert within the goal window
- Cohort comparison: Compare campaign performance across different user segments or time periods
- AI-powered insights: Automated recommendations for improving campaign performance (send time optimization, content suggestions)
- Delivery metrics: Opens, clicks, conversions, unsubscribes, bounces, spam complaints per campaign and message
- Journey analytics: Step-by-step performance metrics for each node in a journey — see where people drop off or convert
- Revenue attribution: Track revenue attributed to specific campaigns when revenue events are configured
- 转化目标:将某个事件设置为 Campaign 的转化目标,追踪目标窗口期内转化的收件人占比
- 队列对比:对比不同用户分群或时间段的 Campaign 表现
- AI 赋能洞察:自动给出优化 Campaign 表现的建议(发送时间优化、内容建议)
- 投递指标:每个 Campaign 和消息的打开量、点击量、转化量、退订量、退信量、垃圾邮件投诉量
- Journey 分析:Journey 中每个节点的逐步骤表现指标,查看用户在哪个环节流失或转化
- 收入归因:配置收入事件后,可追踪特定 Campaign 带来的收入
Data model
数据模型
| Object | Description | Key fields |
|---|---|---|
| Person | A profile representing a user/contact | id (or email), attributes (custom key-value), created_at, unsubscribed |
| Event | Behavioral data tracked for a person or object | name, timestamp, data (custom properties), person_id |
| Segment | Group of people matching criteria | id, name, type (data-driven/manual), conditions |
| Campaign | Triggered messaging workflow | id, name, type (segment/event/date), state (draft/active/paused), tags |
| Broadcast | One-time or scheduled message send | id, name, segment_id, send_at, state |
| Transactional Message | API-triggered message template | id, name, type (email/push/sms), body, subject |
| Custom Object | Non-person entity (account, product, etc.) | object_type_id, id, attributes, relationships |
| Message Template | Reusable message design | id, name, type, body, subject, from |
| Webhook | Outbound HTTP call within a journey | url, method, headers, body |
| Data Pipeline Source | Data ingestion source configuration | id, name, type (SDK/API/warehouse), write_key |
| Data Pipeline Destination | Data routing destination | id, name, type, configuration |
| 对象 | 描述 | 关键字段 |
|---|---|---|
| Person | 代表用户/联系人的 profile | id(或 email)、attributes(自定义键值对)、created_at、unsubscribed |
| Event | 为用户或对象追踪的行为数据 | name、timestamp、data(自定义属性)、person_id |
| Segment | 匹配条件的用户分组 | id、name、type(数据驱动/手动)、conditions |
| Campaign | 触发式消息工作流 | id、name、type(分群/事件/日期)、state(草稿/激活/暂停)、tags |
| Broadcast | 一次性或定时消息发送 | id、name、segment_id、send_at、state |
| Transactional Message | API 触发的消息模板 | id、name、type(邮件/推送/短信)、body、subject |
| Custom Object | 非用户实体(账号、产品等) | object_type_id、id、attributes、relationships |
| Message Template | 可复用的消息设计 | id、name、type、body、subject、from |
| Webhook | Journey 内的出站 HTTP 调用 | url、method、headers、body |
| Data Pipeline Source | 数据接入源配置 | id、name、type(SDK/API/数仓)、write_key |
| Data Pipeline Destination | 数据路由目的地 | id、name、type、configuration |
API quick reference
API 快速参考
- Track API: — Basic Auth (Site ID as username, API key as password), 100 req/sec rate limit
https://track.customer.io/api/v1/- — identify/update a person
PUT /customers/{id} - — track an event for a person
POST /customers/{id}/events - — delete a person
DELETE /customers/{id} - — track anonymous events
POST /events
- App API: — Bearer token authentication, 10 req/sec rate limit
https://api.customer.io/v1/api/- — list campaigns
GET /campaigns - — list segments
GET /segments - — export customer data
POST /exports/customers - — get person attributes
GET /customers/{id}/attributes - — suppress a person
POST /customers/{id}/suppress
- Transactional API: — Bearer token, 100 req/sec
POST https://api.customer.io/v1/send/email - API-triggered broadcasts: — 1 req/10sec
POST https://api.customer.io/v1/api/campaigns/{id}/triggers - Data Pipelines API: Newer ingestion API, recommended for new setups — compatible with Segment tracking spec
- EU region: Use and
track-eu.customer.iosubdomains for EU data residencyapi-eu.customer.io - SDKs: JavaScript (browser), Node.js, Python, Ruby, Go, Java, PHP, iOS (Swift), Android (Kotlin), React Native, Flutter
- Docs: customer.io/docs
- Track API:— Basic Auth(用户名是 Site ID,密码是 API key),速率限制 100次请求/秒
https://track.customer.io/api/v1/- — 识别/更新用户
PUT /customers/{id} - — 为用户追踪事件
POST /customers/{id}/events - — 删除用户
DELETE /customers/{id} - — 追踪匿名事件
POST /events
- App API:— Bearer token 认证,速率限制 10次请求/秒
https://api.customer.io/v1/api/- — 列出所有 Campaigns
GET /campaigns - — 列出所有分群
GET /segments - — 导出用户数据
POST /exports/customers - — 获取用户属性
GET /customers/{id}/attributes - — 禁止向用户发消息
POST /customers/{id}/suppress
- 事务性 API:— Bearer token,100次请求/秒
POST https://api.customer.io/v1/send/email - API 触发广播:— 每10秒1次请求
POST https://api.customer.io/v1/api/campaigns/{id}/triggers - 数据管道 API:更新的数据接入 API,推荐新集成使用,兼容 Segment 追踪规范
- 欧盟区域:欧盟数据驻留请使用 和
track-eu.customer.io子域名api-eu.customer.io - SDKs:JavaScript(浏览器端)、Node.js、Python、Ruby、Go、Java、PHP、iOS(Swift)、Android(Kotlin)、React Native、Flutter
- 文档:customer.io/docs
Integrations
集成
| Category | Tools |
|---|---|
| CRM | Salesforce (bi-directional sync — sync contacts, leads, accounts between Salesforce and Customer.io) |
| Data infrastructure | Segment (source/destination), Snowflake (reverse ETL), BigQuery (reverse ETL) |
| Automation | Zapier (triggers and actions), webhooks (send/receive within journeys) |
| SMS | Twilio (powers Customer.io SMS — requires separate Twilio account) |
| Advertising | Google Ads, Facebook, Instagram, YouTube (Ad Audience Sync) |
| Data Pipelines | Primary integration method for new setups — supports 100+ sources and destinations |
| Other | Slack (notifications), Heap, Mixpanel, Amplitude (event data via Data Pipelines) |
| 分类 | 工具 |
|---|---|
| CRM | Salesforce(双向同步——在 Salesforce 和 Customer.io 之间同步联系人、线索、账号) |
| 数据基础设施 | Segment(源/目的地)、Snowflake(反向 ETL)、BigQuery(反向 ETL) |
| 自动化 | Zapier(触发和动作)、Webhook(在 Journeys 内发送/接收) |
| 短信 | Twilio(为 Customer.io 短信提供能力——需要独立的 Twilio 账号) |
| 广告 | Google Ads、Facebook、Instagram、YouTube(广告受众同步) |
| 数据管道 | 新搭建场景的主要集成方式——支持100+源和目的地 |
| 其他 | Slack(通知)、Heap、Mixpanel、Amplitude(通过数据管道传入事件数据) |
Pricing (USD, as of March 2026 — verify current pricing at customer.io)
定价(美元,2026年3月数据——请以 customer.io 上的当前定价为准)
| Plan | Price | Profiles | Key gated features |
|---|---|---|---|
| Essentials | $100/mo | 5,000 profiles, 1M emails | 2 custom object types, basic integrations, standard support |
| Premium | $1,000/mo (annual) | Custom profiles/volume | 10 custom object types, HIPAA compliance, premium integrations, 90-day onboarding |
| Enterprise | Custom | Custom | Dedicated infrastructure, audit logging, dedicated CSM, priority support |
Additional costs:
- Extra profiles on Essentials: $0.009/profile
- SMS requires a separate Twilio account (Twilio pricing applies)
| 套餐 | 价格 | 用户数 | 核心限制功能 |
|---|---|---|---|
| Essentials | 100美元/月 | 5000个用户,100万封邮件 | 2种自定义对象类型、基础集成、标准支持 |
| Premium | 1000美元/月(按年付费) | 自定义用户数/发送量 | 10种自定义对象类型、HIPAA 合规、高级集成、90天 Onboarding 支持 |
| 企业版 | 定制价格 | 定制 | 专属基础设施、审计日志、专属 CSM、优先级支持 |
额外费用:
- Essentials 套餐超出的用户数:每个0.009美元
- 短信需要独立的 Twilio 账号,按 Twilio 定价收费
Step 4 — Actionable guidance
步骤 4 — 可落地的指导
Based on the user's specific question:
-
Setting up an event-triggered campaign:
- Identify the event that should trigger the campaign (e.g., ,
trial_started,purchase_completed) — make sure your application is tracking this event via the Track API or Data Pipelinesfeature_activated - In Customer.io, go to Journeys > Create Journey > choose "Event triggered"
- Select the trigger event name — optionally add event data filters (e.g., only trigger when )
plan = "pro" - Add a delay if needed (e.g., wait 1 hour after signup before sending the first onboarding email)
- Add your first message action — select the channel (email, SMS, push, etc.) and design the message
- Use Liquid templating to personalize: ,
{{ customer.first_name }},{{ event.plan_name }}{{ customer.company }} - Add branching logic for follow-ups — e.g., "Did user complete onboarding step?" true/false branch
- Set a conversion goal event (e.g., ) with a time window to measure campaign effectiveness
onboarding_completed - Test the journey in draft mode — use a test profile and manually trigger the event via the Track API
- Activate the journey when ready
- Identify the event that should trigger the campaign (e.g.,
-
Sending transactional email via the API:
- Create a transactional message template in Customer.io: Transactional > Create Transactional Message > Email
- Design the email content — use Liquid variables for dynamic data (e.g., ,
{{ order_number }}){{ reset_url }} - Note the transactional message ID from the template settings
- Get your App API key from Settings > API Credentials (this is a Bearer token, different from the Track API Site ID/key pair)
- Send via 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": "recipient@example.com", "identifiers": { "id": "user_123" }, "message_data": { "order_number": "ORD-456", "total": "$99.00" } } - Handle the response — check for success (200) or error codes
- Monitor delivery in Customer.io's Transactional Messages section — opens, clicks, and delivery status appear alongside campaign analytics
- For EU data residency, use
https://api-eu.customer.io/v1/send/email
-
Building data-driven segments:
- Go to Segments > Create Segment > Data-driven
- Define conditions using the visual condition builder — combine attribute filters, event filters, and engagement filters
- Attribute filter example: equals
planAND"premium"is after 2025-01-01created_at - Event filter example: Person has performed at least 3 times in the last 7 days
login - Engagement filter example: Person has opened any email in the last 30 days
- Use AND/OR grouping for complex logic — e.g., (plan = "premium" OR plan = "enterprise") AND (last login within 14 days)
- Preview the segment to see matching profiles before saving
- Use the segment as a journey trigger — people automatically enter the journey when they match the segment criteria and exit when they no longer match
- Segments re-evaluate in real time as new data arrives via Track API or Data Pipelines — no manual refresh needed
-
Adding a webhook to a journey workflow:
- Open an existing journey or create a new one in the journey builder
- Add a "Send Webhook" action at the desired step in the workflow
- Configure the webhook: set the HTTP method (GET, POST, PUT, PATCH, DELETE), URL, headers, and body
- Use Liquid templating in the webhook body to include person attributes and event data:
{ "user_id": "{{ customer.id }}", "plan": "{{ customer.plan }}" } - Add authentication headers as needed (e.g., )
Authorization: Bearer YOUR_EXTERNAL_API_KEY - Use cases: update an external CRM, trigger a Slack notification, call your own API to provision a resource, sync data to a third-party tool
- Handle webhook responses — you can branch the journey based on the webhook response status code (success/failure paths)
- Test the webhook in draft mode before activating the journey — verify your external endpoint receives the expected payload
-
Setting up Data Pipelines for data ingestion:
- Go to Data Pipelines > Sources > Add Source
- Choose your source type — JavaScript SDK (browser), server-side SDK (Node, Python, Ruby, Go, Java, PHP), or HTTP API
- Copy the write key for your source — this authenticates data flowing into Customer.io
- Install the SDK in your application (e.g., for Node.js)
npm install @customerio/cdp-analytics-node - Initialize with your write key and send data:
- — creates/updates a person
analytics.identify("user_123", { name: "Jane", plan: "premium" }) - — tracks an event
analytics.track("user_123", "Feature Activated", { feature: "reports" })
- Data Pipelines API is compatible with Segment's tracking spec — if migrating from Segment, minimal code changes are needed
- For reverse ETL (Snowflake/BigQuery): go to Data Pipelines > Sources > Add Source > Warehouse, connect your warehouse credentials, and configure sync schedules
- Add destinations to route data beyond Customer.io Journeys — e.g., send event data to Amplitude, Mixpanel, or a webhook endpoint
- Monitor source health in the Data Pipelines dashboard — track event volume, errors, and latency
根据用户的具体问题提供对应指导:
-
搭建事件触发的 Campaign:
- 确定触发 Campaign 的事件(例如 、
trial_started、purchase_completed)——确保你的应用通过 Track API 或数据管道追踪了该事件feature_activated - 在 Customer.io 中进入 Journeys > 创建 Journey > 选择「事件触发」
- 选择触发事件名称——可选添加事件数据过滤条件(例如仅当 时触发)
plan = "pro" - 按需添加延迟(例如注册后等待1小时再发送第一封 Onboarding 邮件)
- 添加第一个消息动作——选择渠道(邮件、短信、推送等)并设计消息内容
- 使用 Liquid 模板实现个性化:、
{{ customer.first_name }}、{{ event.plan_name }}{{ customer.company }} - 添加后续跟进的分支逻辑——例如「用户是否完成了 Onboarding 步骤?」的真假分支
- 设置转化目标事件(例如 )和时间窗口,衡量 Campaign 效果
onboarding_completed - 在草稿模式下测试 Journey——使用测试 profile,通过 Track API 手动触发事件
- 准备就绪后激活 Journey
- 确定触发 Campaign 的事件(例如
-
通过 API 发送事务性邮件:
- 在 Customer.io 中创建事务性消息模板:事务性消息 > 创建事务性消息 > 邮件
- 设计邮件内容——使用 Liquid 变量承载动态数据(例如 、
{{ order_number }}){{ reset_url }} - 记录模板设置中的事务性消息 ID
- 从设置 > API 凭证中获取你的 App API key(这是 Bearer token,与 Track API 的 Site ID/key 对不同)
- 通过 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": "recipient@example.com", "identifiers": { "id": "user_123" }, "message_data": { "order_number": "ORD-456", "total": "$99.00" } } - 处理响应——检查成功(200)或错误码
- 在 Customer.io 的事务性消息板块监控投递情况——打开量、点击量和投递状态会和 Campaign 分析一起展示
- 欧盟数据驻留请使用
https://api-eu.customer.io/v1/send/email
-
构建数据驱动的受众分群:
- 进入分群 > 创建分群 > 数据驱动
- 使用可视化条件构建器定义条件——组合属性过滤、事件过滤和互动过滤
- 属性过滤示例:等于
plan且"premium"晚于 2025-01-01created_at - 事件过滤示例:用户过去7天内至少执行过3次 操作
login - 互动过滤示例:用户过去30天内打开过任意邮件
- 使用 AND/OR 分组实现复杂逻辑——例如(plan = "premium" OR plan = "enterprise")AND(最近14天内登录过)
- 保存前预览分群,查看匹配的用户
- 将分群用作 Journey 触发条件——用户匹配分群条件时自动进入 Journey,不再匹配时自动退出
- 新数据通过 Track API 或数据管道到达时,分群会实时重新评估,无需手动刷新
-
在 Journey 工作流中添加 Webhook:
- 在 Journey 构建器中打开现有 Journey 或创建新 Journey
- 在工作流的目标步骤添加「发送 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 响应状态码拆分 Journey 路径(成功/失败路径)
- 激活 Journey 前在草稿模式下测试 Webhook——确认外部端点收到预期的 payload
-
配置数据管道实现数据接入:
- 进入数据管道 > 数据源 > 添加数据源
- 选择数据源类型——JavaScript SDK(浏览器端)、服务端 SDK(Node、Python、Ruby、Go、Java、PHP)或 HTTP API
- 复制数据源的 write key——用于认证流入 Customer.io 的数据
- 在你的应用中安装 SDK(例如 Node.js 环境执行 )
npm install @customerio/cdp-analytics-node - 使用 write key 初始化并发送数据:
- — 创建/更新用户
analytics.identify("user_123", { name: "Jane", plan: "premium" }) - — 追踪事件
analytics.track("user_123", "Feature Activated", { feature: "reports" })
- 数据管道 API 与 Segment 的追踪规范兼容——如果从 Segment 迁移,只需极少代码改动
- 反向 ETL(Snowflake/BigQuery)场景:进入数据管道 > 数据源 > 添加数据源 > 数仓,连接数仓凭证,配置同步 schedule
- 添加数据目的地,将数据路由到 Customer.io Journeys 之外的系统——例如发送事件数据到 Amplitude、Mixpanel 或 Webhook 端点
- 在数据管道仪表盘监控数据源健康状态——追踪事件量级、错误和延迟
Gotchas
注意事项
Best-effort from research — verify details against current Customer.io documentation.
-
Essentials plan starts at $100/mo, which is steep for small senders. Unlike Mailchimp (free tier up to 500 contacts) or SendGrid (free tier for 100 emails/day), Customer.io has no free plan and the entry point is $100/mo for 5,000 profiles. If you are a very early-stage startup or small sender with fewer than a few thousand contacts, evaluate whether Customer.io's event-driven automation justifies the cost versus simpler tools. The $0.009/profile overage also adds up quickly at scale.
-
Only 2 custom object types are available on the Essentials plan. If you need to model more than 2 non-person entities (e.g., accounts, products, subscriptions, orders), you must upgrade to Premium ($1,000/mo annual). Plan your data model carefully before committing to Essentials — if you need accounts and one more object type, you are already at the limit.
-
API-triggered broadcasts are rate-limited to 1 request per 10 seconds. This is significantly slower than the Track API (100 req/sec) or Transactional API (100 req/sec). Do not use API-triggered broadcasts for high-frequency or real-time use cases. If you need to send urgent one-time messages to many people quickly, consider using the Transactional API for individual sends or schedule the broadcast in advance rather than triggering it via API at the last moment.
-
In-app messages require Customer.io SDK integration in your application. Unlike email or SMS which work without any client-side code, in-app messages need the Customer.io JavaScript SDK (web) or mobile SDK (iOS/Android/React Native/Flutter) installed and initialized in your app. This means engineering work to integrate the SDK, handle message rendering, and manage the user session. Budget development time for this — it is not a plug-and-play channel.
-
SMS requires a separate Twilio account and incurs separate Twilio charges. Customer.io does not provide SMS infrastructure directly — it uses Twilio under the hood. You must create a Twilio account, purchase a phone number, and connect your Twilio credentials to Customer.io. SMS costs are billed by Twilio (not Customer.io) based on Twilio's per-message pricing. This adds billing complexity and means your total messaging cost is split across two vendors.
基于研究的最优参考——请以 Customer.io 当前官方文档的细节为准。
-
Essentials 套餐起价100美元/月,对于低发送量的小型用户来说成本较高。 不同于 Mailchimp(最多500个联系人的免费 tier)或 SendGrid(每天100封邮件的免费 tier),Customer.io 没有免费套餐,入门级100美元/月仅支持5000个用户。如果你是非常早期的创业公司或联系人只有几千的小型发送方,需要评估 Customer.io 的事件驱动自动化能力是否足以覆盖比简单工具更高的成本。超出用户数的每个用户0.009美元的额外费用在规模扩大时也会快速累积。
-
Essentials 套餐仅支持2种自定义对象类型。 如果你需要为超过2种非用户实体建模(例如账号、产品、订阅、订单),必须升级到 Premium 套餐(1000美元/月按年付费)。在选择 Essentials 套餐前请仔细规划你的数据模型——如果你需要账号和另一种对象类型,就已经达到配额上限了。
-
API 触发广播的速率限制为每10秒1次请求。 这远低于 Track API(100次/秒)或事务性 API(100次/秒)的速率。不要将 API 触发广播用于高频或实时场景。如果你需要快速向大量用户发送紧急一次性消息,考虑使用事务性 API 单独发送,或提前调度广播而非最后一刻通过 API 触发。
-
应用内消息需要在你的应用中集成 Customer.io SDK。 不同于无需客户端代码即可使用的邮件或短信,应用内消息需要在你的应用中安装并初始化 Customer.io JavaScript SDK(网页端)或移动端 SDK(iOS/Android/React Native/Flutter)。这意味着需要工程资源来集成 SDK、处理消息渲染和管理用户会话,需要提前规划开发时间,它不是即插即用的渠道。
-
短信需要独立的 Twilio 账号,会产生单独的 Twilio 费用。 Customer.io 不直接提供短信基础设施,底层使用 Twilio 能力。你需要创建 Twilio 账号、购买手机号,并将 Twilio 凭证关联到 Customer.io。短信费用由 Twilio(而非 Customer.io)按 Twilio 的单条消息定价计费,这会增加账单复杂度,意味着你的总消息成本会拆分到两个服务商。
Step 5 — Related skills
步骤 5 — 相关技能
- — Email marketing strategy and best practices (platform-agnostic)
/sales-email-marketing - — Cross-platform email deliverability — SPF/DKIM/DMARC, warmup, inbox placement
/sales-deliverability - — Email open and click tracking strategy
/sales-email-tracking - — Connect Customer.io to other tools via Zapier, webhooks, or API
/sales-integration - — Funnel strategy and conversion optimization
/sales-funnel - — Not sure which skill to use? The router matches any sales objective to the right skill. Install:
/sales-donpx skills add sales-skills/sales --skills sales-do
- — 邮件营销策略和最佳实践(平台无关)
/sales-email-marketing - — 跨平台邮件送达率——SPF/DKIM/DMARC、预热、收件箱放置
/sales-deliverability - — 邮件打开和点击追踪策略
/sales-email-tracking - — 通过 Zapier、Webhook 或 API 连接 Customer.io 与其他工具
/sales-integration - — 漏斗策略和转化优化
/sales-funnel - — 不确定使用哪个技能?路由会将任意销售目标匹配到合适的技能。安装命令:
/sales-donpx skills add sales-skills/sales --skills sales-do
Examples
示例
Example 1: Building an onboarding drip sequence triggered by signup
示例1:搭建注册触发的 Onboarding drip 序列
User says: "I want to send a 5-email onboarding sequence when someone signs up for our SaaS product, with different paths based on whether they complete key activation steps."
Skill does:
- Confirms the user is tracking a event (or equivalent) via the Track API or Data Pipelines — if not, guides them through instrumenting the event
signed_up - Creates a new journey triggered by the event
signed_up - Designs a 5-step email sequence with delays: welcome email (immediate), getting started guide (day 1), key feature walkthrough (day 3), activation nudge (day 5), check-in (day 7)
- Adds branching logic after step 3: checks if the person has performed the event — true branch skips the activation nudge and sends a "great job" email instead; false branch continues with the nudge
activated - Sets as the conversion goal with a 14-day window
activated - Uses Liquid templating for personalization: ,
{{ customer.first_name }},{{ customer.company }}{{ customer.plan }} - Tests the journey with a test profile in draft mode before activating Result: User has a behavior-driven onboarding sequence that adapts based on whether the user activates, with conversion tracking to measure effectiveness
用户提问:「我希望在用户注册我们的 SaaS 产品时发送5封邮件的 Onboarding 序列,根据用户是否完成关键激活步骤走不同分支。」
技能响应:
- 确认用户通过 Track API 或数据管道追踪了 事件(或等价事件)——如果没有,指导用户埋点该事件
signed_up - 创建由 事件触发的新 Journey
signed_up - 设计带延迟的5步邮件序列:欢迎邮件(立即发送)、入门指南(第1天)、核心功能演示(第3天)、激活提醒(第5天)、跟进问候(第7天)
- 在第3步后添加分支逻辑:检查用户是否执行了 事件——真分支跳过激活提醒,改为发送「做得好」邮件;假分支继续发送提醒
activated - 将 设置为14天窗口期的转化目标
activated - 使用 Liquid 模板实现个性化:、
{{ customer.first_name }}、{{ customer.company }}{{ customer.plan }} - 激活前在草稿模式下用测试 profile 测试 Journey 结果:用户得到了基于行为的 Onboarding 序列,可根据用户是否激活适配路径,同时通过转化追踪衡量效果
Example 2: Setting up transactional order confirmation emails
示例2:配置事务性订单确认邮件
User says: "We need to send order confirmation emails with line items immediately after purchase, triggered from our backend API."
Skill does:
- Creates a transactional message template in Customer.io with Liquid templating for order data: ,
{{ order_number }}(looped with{{ items }}),{% for item in message_data.items %}{{ total }} - Guides the user through getting their App API key from Settings > API Credentials
- Shows the API call structure: with
POST https://api.customer.io/v1/send/email,transactional_message_id,to, andidentifierscontaining the order detailsmessage_data - Recommends including the person's in
idso the transactional send is associated with their profile for analyticsidentifiers - Advises setting up a webhook or checking the Transactional Messages dashboard to monitor delivery failures
- Notes: if the user is on EU infrastructure, switch to Result: User has production-ready transactional order confirmation emails triggered from their backend with dynamic line-item rendering
api-eu.customer.io
用户提问:「我们需要在用户购买后立即发送带商品明细的订单确认邮件,从我们的后端 API 触发。」
技能响应:
- 在 Customer.io 中创建事务性消息模板,使用 Liquid 模板承载订单数据:、
{{ order_number }}(通过{{ items }}循环展示)、{% for item in message_data.items %}{{ total }} - 指导用户从设置 > API 凭证中获取 App API key
- 展示 API 调用结构:,包含
POST https://api.customer.io/v1/send/email、transactional_message_id、to和承载订单详情的identifiersmessage_data - 建议在 中传入用户的
identifiers,这样事务性发送会关联到用户 profile 用于分析id - 建议配置 Webhook 或查看事务性消息仪表盘监控投递失败情况
- 提醒:如果用户使用欧盟基础设施,切换到 结果:用户得到了可生产环境使用的事务性订单确认邮件,可从后端触发,支持动态商品明细渲染
api-eu.customer.io
Example 3: Syncing a high-value customer segment to Google Ads for suppression
示例3:同步高价值客户分群到 Google Ads 进行排除
User says: "We want to stop showing acquisition ads to people who are already paying customers. Can Customer.io sync our paying customer segment to Google Ads?"
Skill does:
- Confirms the user has a data-driven segment that identifies paying customers (e.g., is not
planAND"free"equalssubscription_status)"active" - Walks through setting up Ad Audience Sync: go to Integrations > Ad Audiences > Google Ads
- Connects the Google Ads account via OAuth
- Maps the paying customer segment to a Google Ads customer list
- Explains that the audience syncs automatically as people enter/exit the segment — new paying customers are added and churned customers are removed
- Recommends creating an exclusion audience in Google Ads using this synced list to suppress existing customers from acquisition campaigns Result: User's acquisition ad spend is optimized by automatically excluding paying customers, with the audience staying current as subscription status changes
用户提问:「我们希望停止向已经付费的用户展示拉新广告。Customer.io 可以将我们的付费客户分群同步到 Google Ads 吗?」
技能响应:
- 确认用户已有识别付费客户的数据驱动分群(例如 不是
plan且"free"等于subscription_status)"active" - 引导用户配置广告受众同步:进入集成 > 广告受众 > Google Ads
- 通过 OAuth 连接 Google Ads 账号
- 将付费客户分群映射到 Google Ads 客户列表
- 解释分群成员进入/退出时受众会自动同步——新付费客户会被添加,流失客户会被移除
- 建议在 Google Ads 中使用该同步列表创建排除受众,将现有客户排除在拉新 Campaign 之外 结果:通过自动排除付费客户优化了用户的拉新广告投入,受众列表会随订阅状态变化自动更新
Troubleshooting
故障排查
Events not triggering campaigns or journeys
事件没有触发 Campaigns 或 Journeys
Symptom: You are tracking events via the Track API or Data Pipelines, but event-triggered campaigns or journeys are not firing for those events.
Cause: The most common cause is that the person does not exist in Customer.io before the event is tracked. The Track API requires that a person is identified () before events can be associated with them. Another common cause is a mismatch between the event name in your code and the event name configured as the journey trigger (event names are case-sensitive). Finally, check that the journey is in an active state — draft or paused journeys will not trigger.
Solution: Verify the person exists by checking their profile in Customer.io (People > search by ID or email). Ensure you call identify before track in your integration code. Double-check the event name matches exactly (case-sensitive) between your code and the journey trigger configuration. Confirm the journey status is "Active" in the Journeys list. Use the Activity Log to see if Customer.io received the event at all — if the event does not appear, the issue is in your integration code or API authentication.
PUT /customers/{id}症状:你通过 Track API 或数据管道追踪了事件,但事件触发的 Campaigns 或 Journeys 没有被触发。
原因:最常见的原因是事件追踪前 Customer.io 中不存在该用户。Track API 要求事件关联的用户已经被识别()。另一个常见原因是你代码中的事件名和 Journey 触发配置的事件名不匹配(事件名区分大小写)。最后请检查 Journey 是否处于激活状态——草稿或暂停的 Journey 不会触发。
解决方案:在 Customer.io 中查看用户 profile 确认用户存在(用户 > 按 ID 或邮箱搜索)。确保你在集成代码中先调用 identify 再调用 track。双重检查代码和 Journey 触发配置中的事件名完全一致(区分大小写)。在 Journeys 列表中确认 Journey 状态是「Active」。使用活动日志查看 Customer.io 是否收到了该事件——如果事件没有出现,问题出在你的集成代码或 API 认证。
PUT /customers/{id}SMS messages not sending despite being configured in a journey
Journey 中配置了短信但没有发送
Symptom: Email steps in a journey work correctly, but SMS steps are skipped or show errors in the journey analytics.
Cause: SMS in Customer.io requires a connected Twilio account with an active phone number. If Twilio credentials are not configured, expired, or the Twilio account has insufficient funds, SMS steps will fail silently or be skipped. Additionally, the person must have a valid phone number attribute (typically or a custom attribute mapped in settings) and must not have unsubscribed from SMS.
Solution: Go to Settings > Workspace Settings > SMS to verify your Twilio Account SID, Auth Token, and phone number are correctly configured. Test the Twilio connection by sending a test SMS. Check the person's profile to confirm they have a valid phone number in the expected attribute field. Verify the person's SMS subscription status is not unsubscribed. Check your Twilio account dashboard for any errors, insufficient balance, or number compliance issues.
phone症状:Journey 中的邮件步骤正常运行,但短信步骤被跳过或在 Journey 分析中显示错误。
原因:Customer.io 中的短信需要关联有有效手机号的 Twilio 账号。如果 Twilio 凭证未配置、过期或 Twilio 账号余额不足,短信步骤会静默失败或被跳过。此外,用户需要有有效的手机号属性(通常是 或设置中映射的自定义属性),且没有退订短信。
解决方案:进入设置 > 工作区设置 > 短信,确认 Twilio Account SID、Auth Token 和手机号配置正确。发送测试短信验证 Twilio 连接。查看用户 profile,确认用户的目标属性字段中有有效的手机号。验证用户的短信订阅状态不是退订。查看 Twilio 账号仪表盘是否有错误、余额不足或号码合规问题。
phoneData Pipelines events appearing in the source dashboard but not in person profiles
数据管道事件在数据源仪表盘展示但没有出现在用户 profile 中
Symptom: The Data Pipelines source shows events being received (event count is increasing), but when you look at individual person profiles in Customer.io, the events do not appear.
Cause: Data Pipelines requires that an call is made for a person before events are associated with their profile. If you are sending calls with a that has never been identified, the events may be received by the pipeline but not associated with a person profile. Another cause is that the Data Pipelines destination for Customer.io Journeys is not enabled or is misconfigured.
Solution: Verify that you are calling before or alongside your calls. Check Data Pipelines > Destinations to confirm that Customer.io Journeys is listed as a destination and is enabled. Review the destination's event delivery logs for any errors. If using reverse ETL from a warehouse, verify that the sync mapping includes both identity and event data, and check the sync schedule to ensure it has run recently.
identifytracktrackuserIdanalytics.identify("user_id", { traits })analytics.track()症状:数据管道数据源显示收到了事件(事件数在增长),但你查看 Customer.io 中的单个用户 profile 时,没有看到这些事件。
原因:数据管道要求 事件关联到用户 profile 前,已经为该用户调用过 。如果你发送的 调用携带的 从未被识别过,事件可能会被管道接收,但不会关联到用户 profile。另一个原因是 Customer.io Journeys 的数据管道目的地未启用或配置错误。
解决方案:确认你在调用 之前或同时调用了 。查看数据管道 > 目的地,确认 Customer.io Journeys 已列为目的地且已启用。查看目的地的事件投递日志是否有错误。如果使用数仓的反向 ETL,确认同步映射同时包含身份和事件数据,检查同步 schedule 确认近期已运行过。
trackidentifytrackuserIdanalytics.track()analytics.identify("user_id", { traits })