Shopify 知识库 · 概念
客户分群:Segments、标签与营销对象
说明 Shopify 客户分群(Segments,用 ShopifyQL 条件描述的动态名单)与客户标签、客户 metafield 的分工,分群在折扣资格与营销邮件中的用法和数值上限,营销同意状态如何限定可触达对象,以及使用客户数据时的隐私边界。
客户分群(Segments)是按条件自动维护的客户名单:官方页称其为“dynamic, rule-based customer lists”,顾客满足条件即被加入,不满足即被移出。它解决的是“把一批具有相似特征的客户圈出来,用于分析、发营销邮件或限定折扣资格”;它不解决“这些人是否同意被联系”(那是营销同意状态,见隐私与同意),也不是给单个客户贴的手工标记(那是客户标签)。
本库哪些内容依赖它
- 邮件订阅邀请与订阅获取模块:订阅者会进入 “Email subscribers” 分段,后续营销对象由此产生;
- 促销信息与促销兑换模块:面向特定客户群的折扣资格;
- 忠诚与奖励:积分、生日等数据若存进客户 metafield,可用于分群条件;
- 折扣:类型、组合规则与结账展示:折扣里的分群上限与新顾客边界;
- B2B:公司、目录与数量规则:
companies过滤器只对 Plus 开放。
本文是该平台机制的权威来源,其他文章只写各自页面语境下的用法。
核心对象与概念
| 对象 | 含义 | 备注 |
|---|---|---|
| 分群(segment) | 由 ShopifyQL 的 WHERE 条件定义的动态客户名单 | Admin API 的 Segment 有 name、query、创建与最后编辑时间;成员可同时属于多个分群,一个分群只含单个店铺的成员 |
| 过滤器(filter) | 分群条件的基本单元:过滤器名称、运算符、值 | 组成部分页给出全部运算符与连接词 |
| 客户标签(tag) | 手工或批量打在单个客户资料上的文本 | 可作为分群条件,但标签本身不是分群 |
| 客户 metafield | 在客户资源上自定义的结构化字段 | 分群只支持特定类型,详见下文 |
| 营销同意状态 | 邮件、短信、WhatsApp 各自的订阅状态 | 分群可按状态筛选;发送时另有订阅门槛 |
标签与分群的区别:标签是数据,附着在每个客户身上,由人或应用写入;分群是查询,结果随数据变化。官方标签页写明标签既可整理客户列表,也可用来创建分群。标签页没有说明标签在 Flow、B2B 或客户列表筛选中的用法,本文不展开。注意本站的浏览器采集、服务端 GTM 与标签网关讲的是 Google 标签,与客户标签无关。
在哪里配置
- 创建:Admin 的 Customers 页或 Segments 页,点 Create segment;官方页列出四种起点:模板、已有分群、直接编辑 ShopifyQL、Sidekick 生成(AI 生成的描述需先审阅再保存)。默认查询为
FROM customers SHOW customer_name, note, subscription_status, location, orders, amount_spent WHERE [filters, operators, values] ORDER BY updated_at,FROM与SHOW不可改,只能改WHERE。编辑器用 Run query 测试,匹配人数显示在编辑器上方。 - 编辑与删除:Customers > Segments > 选分群,改后点 Apply 测试,再 Save segment 与 Save changes;删除走 More actions > Delete > Delete segment。
- 导出:可导出 CSV,有“CSV for Excel, Numbers, and other spreadsheet programs”与“Plain CSV file”两种格式。
- 用于折扣:Customers > Segments > 选分群 > Use segment > Discount,可选 Amount off products、Amount off order、Buy X get Y、Free shipping。
- 用于营销邮件:官方页称 Shopify Messaging 用于向所选分群的客户发送邮件营销活动。Shopify Messaging 是 Shopify Email 的现名(见营销消息);分群过滤器里仍以
shopify_email.EVENT命名邮件事件。 - 标签:客户资料的 Tags 区添加或点 X 移除;批量编辑可加或用 Remove tags 移除。
- 客户 metafield:定义入口见自定义数据;分群只能使用已建立定义的 metafield。
与主题、Liquid 和 API 的连接
- Liquid:
customer全局对象只在顾客登录时存在,否则为nil。可读customer.tags(字符串数组)、customer.metafields、customer.accepts_marketing(布尔)。本次未读到店面 Liquid 中读取“某人是否属于某分群”的入口。 - Admin API:
segment与segments查询,segmentCreate、segmentUpdate、segmentDelete变更;需read_customers与write_customers权限。Customer.tags是逗号分隔的标签列表;tagsAdd支持 Customer、Order、Product 等资源。营销状态旧字段acceptsMarketing、emailMarketingConsent、smsMarketingConsent已标为弃用,改用customerEmailMarketingConsentUpdate与customerSmsMarketingConsentUpdate。 - 折扣:开发文档写明可通过
discountCodeBasicCreate把折扣应用到指定分群。 - 旧接口:官方页称分群取代已弃用的
SavedSearch,仍用customerSavedSearches的应用需迁移,否则商家新建的分群不会同步给它们。
限制、数值与易错点
核验于 2026-09-29,逐条标来源。
- 运算符与连接词(组成部分页):
=、!=、>、<、<=、>=、BETWEEN、CONTAINS、NOT CONTAINS、MATCHES、NOT_MATCHES、IS NULL、IS NOT NULL;函数类条件须配MATCHES或NOT_MATCHES;AND先于OR执行,需要时加括号。 - 条件数量:segment query language 参考页称一个查询最多 10 个子句,超出返回错误;列表参数最多 500 个 ID(摘要级读取)。
- API 查询上限:分群概览页与管理页写明单次最多查询 250 个分群,
first与last最大 250;这是 API 分页上限,不是店铺可创建的分群数量上限,后者官方页未读到。 - 过滤器的前提(Shopify 过滤器页):
predicted_spend_tier仅在店铺销售超过 100 笔后可用;companies仅 Shopify Plus 可用,条目填公司 ID 而非名称;product_subscription_status需要订阅应用;customer_account_status只针对旧版账户;邮件与店面事件类过滤器的数据窗口为 26 个月,店面事件数据始于 2023 年 5 月(摘要级读取)。 - 标签:标签不区分大小写,用
customer_tags CONTAINS 'GoldStatus'这类写法;segment query language 页另写“标签是否存在不做校验”,拼错的标签不会报错,只会匹配不到人;合并客户资料时合并后的标签总数不得超过 250 个;单个标签的长度上限官方页未写。 - metafield 过滤:只支持 date and time、number、text、true or false 四类;须先有 metafield 定义。写法两处并列:帮助页写作
customer.[namespace].[key](例customer.points_balance >= 100),开发文档页的示例是metafields.facts.birth_date。哪种适用于哪个入口未核验,以查询编辑器实际报错为准。metafield 定义页还写明最多 250 个定义,是否按资源类型分别计数未读到。 - 折扣里的分群上限:折扣管理页写明自动折扣单个折扣最多 5 个客户分群,折扣码最多 100 个。折扣 FAQ 写明:针对特定分群的折扣只对老客户生效,首次结账的新顾客还没有客户资料,要等首单完成后才进入分群。
- 营销同意不等于可触达:邮件订阅者管理页写明只有选择接收的人才能收到邮件,“Email subscribers” 分段是同意接收营销邮件的客户;点击 Unsubscribe、标记为垃圾邮件或在账户中退出的人会被移出。管理分群页同样写明只有邮件订阅者会收到 Shopify Messaging 活动。因此“分群里有他”不代表“可以给他发”。
- 合并资料的同意状态:客户营销同意页写明,两个资料合并时只要有一个订阅了邮件与短信,合并后即为订阅。
- 数据口径:测试订单与已删除订单不计入分群计算;分群列表的人数在打开分群详情页或有应用(如 Shopify Messaging)使用该分群时才更新,所以列表页的数字可能滞后。
- 状态取值:
email_subscription_status列出 SUBSCRIBED、NOT_SUBSCRIBED、UNSUBSCRIBED、PENDING、INVALID、REDACTED;sms_subscription_status列出 SUBSCRIBED、UNSUBSCRIBED、PENDING、NOT_SUBSCRIBED、REDACTED;两个过滤器的运算符只有=、!=与空值判断。
隐私边界
- 分群是客户个人数据的子集:导出 CSV 与在第三方应用中使用分群,都会把邮箱、姓名等数据带出后台。导出前应明确用途与接收方(这是本文建议,不是官方条文)。
- 用哪些数据分群、能否据此发送营销、是否需要额外同意,各地区要求不同,需要合规确认;官方页也提示自动化同意设置不能替代法律意见,见隐私与同意。
- 不要把客户的敏感属性(例如健康、宗教)写进标签或 metafield 再用来分群;Storefront API 读取客户 metafield 需要令牌,Customer Accounts API 的 metafield 访问由定义设置控制,详见自定义数据。
- 后台员工能否看到客户与分群取决于其权限;本次未读到具体权限项,按店铺、组织与权限先确认角色。客户登录账户体验见客户账户。
验证一次
- 在测试店铺建 3 位测试客户:一位订阅邮件并带标签,一位未订阅带同一标签,一位无标签;
- 新建分群
customer_tags CONTAINS '<标签>',点 Run query,确认匹配 2 人;再加AND email_subscription_status = 'SUBSCRIBED',确认变为 1 人; - 把标签改成大小写不同的写法,确认结果不变;再故意拼错标签,确认不报错、匹配 0 人;
- 如已定义客户 metafield,用其建一个分群,分别试两种写法,记录哪种被接受;
- 用该分群创建折扣,资格选 Customer segments;用一位新邮箱走结账,确认首单前折扣不适用,首单完成后才进入分群;
- 在 Shopify Messaging 里选该分群建活动(不发送),核对收件人数是否只含订阅者;
- 记录:查询文本、客户资料状态、店铺时间、看到的人数与实际收件人数。
待继续完善
- 店铺可创建的分群数量上限、分群成员的刷新时延;
- Shopify Messaging 创建页的收件人选项、是否有发送量限制(该页本次未读到细节);
- 员工权限对客户与分群的影响;
- 两种 metafield 写法各自适用的入口;
- 短信与 WhatsApp 营销的发送对象规则;
- 各地区营销与数据使用要求,全部需要合规确认。