跳转至

兑换通知

使用礼品卡付款的顾客,往往不知道卡里还剩多少。兑换通知填补了这个空白:每次使用礼品卡时,持卡人都会收到一封电子邮件、一条短信,或两者都收到,内容包括日期、扣除的金额、剩余余额,以及门店购买时的分店(仅限实体店交易)。

银行在银行卡消费后会这样做,顾客也期望礼品卡提供同样的服务。这还能减少“我的卡里还剩多少钱?”之类的咨询,而余额用完的消息也是吸引顾客再次光临的好时机。

购卡送礼的人也可以收到通知:参见通知对象。

在主页中打开 Customer notifications 卡片,点击 Configure notifications,然后打开 Redemption notifications 标签页。(该页面的其他标签页为 Unused balance reminders 和 Loyalty emails。)

该标签页包含通知策略:是否开启通知、何时发送、发送给谁、通过哪些渠道,以及使用何种发送方式。每条消息都在单独的页面中编辑,预览和测试发送功能也位于该页面;发送日志同样有自己的页面。

兑换通知设置


开启通知

在您点击标签页顶部的 Enable 之前,通知默认关闭,且该开关按店铺分别设置。点击保存栏中的 Save 以应用设置。

开启通知后,Gift Card Hero 会订阅您店铺的支付事件,因此无论是在收银台还是线上,每次兑换发生时它都能即时获知。关闭通知则会取消订阅;此时不会发送任何消息,也不会记录任何内容。


何时发送

在 When to notify 下有两个触发条件。默认两者都已勾选,您可以只使用其中一个,也可以两者都用:

  • On every redemption — 每次兑换后都发送一条消息,无论余额多少。订单中每使用一张礼品卡发送一条消息:用两张卡付款会发送两条。
  • When the balance reaches zero — 发送“您的卡已全部用完”的消息,即使第一个选项未勾选也会发送。

两个选项都开启时,如果某次兑换用完了卡内余额,每个渠道只发送一条消息,而不是两条——余额用完的措辞会取代普通的措辞。

只开启第二个选项时,顾客只会在最后收到一次通知。这适合礼品卡通常要分多次小额消费的店铺,否则每买一杯咖啡都发一条消息就会造成打扰。

功能开启时,如果两个触发条件都未选择,则无法保存设置:这样会订阅事件,然后丢弃每一个事件。


包含分店

勾选 Include the store location(默认勾选)后,消息中会包含分店信息。

分店信息是指销售发生时所在的 Shopify POS 门店位置;如果您的收银应用通过 REST API 兑换礼品卡,则为该应用上报的分店。线上订单没有此信息。若没有门店位置,该行会从消息中省略,而不是显示为空——纯线上店铺无需进行任何设置。

对于多分店零售商而言,这通常是邮件中最有用的一行:它告诉持卡人资金在哪里被使用,从而让意外的扣款变得容易辨认。


通知对象

默认情况下只通知持卡人。标签页中的 Who gets notified 有单独的一栏,可用于修改此设置:

  • Card holder(默认)— 礼品卡所属的人。从不修改此设置的店铺,其运作方式与以前完全相同。
  • Purchaser — 购买礼品卡的顾客,而不是持卡人。
  • Both — 持卡人和购买人各自收到一条消息。

这一功能适用于赠送礼品卡、并希望了解礼品卡是否已被使用的顾客。选择 Purchaser 或 Both 后,他们会收到每一笔消费的通知,包括部分消费,并附上已使用金额和剩余余额。

购买人遵循与持卡人相同的规则:即 何时发送 中的触发条件和 渠道 中的发送渠道。若要收到每一笔消费的通知,请保持勾选 On every redemption;如果只开启 When the balance reaches zero,购买人只会在最后收到一次通知。

此设置在您点击 Save 后的下一次兑换时生效。正在发送中的兑换仍保留开始时所选的设置。

内置的电子邮件和短信是写给持卡人的

内置电子邮件是以持卡人的口吻撰写的:“Your gift card ending in 4242 was just used”(您尾号为 4242 的礼品卡刚刚被使用),以及“You can use the remaining balance on your next order”(您可以在下次订单中使用剩余余额)。内置短信较短,但没有说明是谁消费了这张卡,因此购买人无法判断这条消息与自己送出的礼品有关。

选择 Purchaser 或 Both 时,Gift Card Hero 不会修改内置的措辞。请先按照 为购买人撰写消息 中的说明编辑邮件和短信,然后再保存设置。如果邮件通过 Klaviyo 发送,则需要改为在 Flow 中添加购买人分支——参见 Klaviyo。

谁是持卡人

礼品卡的收件人;如果没有,则为该卡所分配的客户,其次是 Gift Card Hero 自身关于该卡的记录,最后是该卡付款订单中的客户。持卡人的查找方式 中列出了完整的查找顺序。

谁是购买人

购买该礼品卡所用订单中的客户。这适用于两种礼品卡:

  • Shopify 礼品卡商品 — 订单信息从礼品卡中读取。
  • Gift Card Hero 自行发行的卡,例如当您通过普通商品出售礼品卡时——订单信息来自 Gift Card Hero 的发送计划。

购买人的电子邮件地址和电话号码为该客户的信息;如果客户没有提供,则使用订单上的信息。礼物寄送到的地址属于持卡人,绝不会属于购买人。

只有在选择 Purchaser 或 Both 时,Gift Card Hero 才会从 Shopify 读取购买人的联系方式。在选择 Card holder 期间记录的兑换不包含这些信息,因此如果您之后切换设置,购买人会在发送消息时被查找——若 Gift Card Hero 知道该卡的购买订单,则通过该订单查找。若无法查找,则视为没有购买人,见 没有购买人时。

没有购买人时

有些礼品卡没有购买人:例如在 Shopify 后台手动发行的卡、在收银台销售且未关联客户的卡,或导入的卡。

  • 选择 Purchaser 时,消息改为发送给持卡人。
  • 选择 Both 时,只发送给持卡人。

无论哪种情况,发送日志 中的购买人行都会说明这一点。

同样的回退规则也按渠道分别适用。只有电子邮件地址而没有电话号码的购买人会收到邮件,而选择 Purchaser 时,短信会发送给持卡人。

选择 Both 时

每次兑换在每个渠道上发送两条独立的消息:一条发给持卡人,一条发给购买人。两者都使用您的模板,并根据对应的 audience 渲染(见下文)。开启短信时即为两条短信,短信网关会分别计费。

如果持卡人和购买人的电子邮件地址相同(短信则为电话号码相同),则只发送一条消息,发送日志中会注明原因。

短信

短信遵循与电子邮件相同的规则。选择 Purchaser 时,短信发送到购买人的电话号码;若购买人没有电话号码,则发送到持卡人的号码。选择 Both 时,两人各自收到一条。

电子邮件和短信分别判定,因此邮件可能发送给购买人,而短信则回退发送给持卡人。

为购买人撰写消息

有三个变量可以区分不同的消息:

  • {{ audience }} — 该消息的收件对象:purchaser 或 holder。因礼品卡没有购买人而回退发送给持卡人的消息,其值为 holder。
  • {{ holder.first_name }}、{{ holder.last_name }} 和 {{ holder.email }} — Gift Card Hero 所知的持卡人信息。每条消息都会填入这些值(包括发给持卡人本人的消息),未知时为空——因此请用 default 为其设置备用值。
  • {{ customer.first_name }} 以及其他 customer 变量 — 消息的收件人。发给购买人的消息中,即为购买人。

请在主题、邮件正文和短信中根据 audience 进行分支判断。{% else %} 部分的内容就是持卡人所看到的——包括在 Purchaser 设置下、没有购买人的礼品卡回退发送给持卡人的情况——因此请在此处保留面向持卡人的措辞。

主题:

{% if audience == 'purchaser' %}Your gift was used{% else %}Your gift card was used{% endif %}

邮件正文——片段即可:

{% if audience == 'purchaser' %}
  <p>Hi {{ customer.first_name | default: 'there' }},</p>
  <p>
    {{ holder.first_name | default: 'Your recipient' }} used {{ amount }} from the gift card you gave
    (ending {{ card_last4 }}){% if branch %} at {{ branch }}{% endif %}.
    {% if depleted %}The card is now fully used.{% else %}Balance left: {{ balance }}.{% endif %}
  </p>
{% else %}
  <p>Hi {{ customer.first_name | default: 'there' }},</p>
  <p>
    Your gift card ending in {{ card_last4 }} was just used for {{ amount }}{% if branch %} at {{ branch }}{% endif %}.
    {% if depleted %}There is no balance left on it.{% else %}You have {{ balance }} left.{% endif %}
  </p>
{% endif %}
<p>{{ shop.name }}</p>

短信:

{{ shop.name }}: {% if audience == 'purchaser' %}{{ holder.first_name | default: 'Your recipient' }} used {{ amount }} from the gift card you gave (*{{ card_last4 }}){% if branch %} at {{ branch }}{% endif %}.{% else %}{{ amount }} used from gift card *{{ card_last4 }}{% if branch %} at {{ branch }}{% endif %}.{% endif %} {% if depleted %}The card is now fully used.{% else %}Balance left: {{ balance }}.{% endif %}

渲染后,发给购买人的短信内容如下:

Artcaffe: Wanjiru used KSh 1,500.00 from the gift card you gave (*4242) at Westlands. Balance left: KSh 3,500.00.

按常见数值计算,这条消息约为 110 至 120 个字符,因此可放入一个 160 字符的分段中。若名字或分店包含基本拉丁字符集之外的字符——例如 “Zoë”——整条消息会改用 70 字符的限制;参见短信模板。编辑器的预览会在您输入时显示您自定义措辞的费用。

Klaviyo

当邮件通过 Klaviyo 发送时,不使用您的模板,因此无需在 Gift Card Hero 中撰写措辞。Gift Card Redeemed 事件包含 audience(holder 或 purchaser),以及已知的持卡人 holder_first_name、holder_last_name 和 holder_email。该事件会关联到消息收件人的个人资料——对于发给购买人的消息,即关联到购买人的资料。

Flow 可以按 audience 进行筛选:使用触发器筛选,或在 Flow 内使用条件分流,为购买人发送其专属措辞。若 Flow 未对 audience 设置任何条件,则会对每个事件都运行,因此一旦购买人收到通知,就会向其发送持卡人的邮件。

选择 Both 时,Gift Card Hero 会为每次兑换发送两个事件,每人一个。完整的属性列表见 集成。


渠道

在 Channels 下,勾选通知所使用的渠道——Email、SMS,或两者都选。默认勾选 Email。各渠道独立发送:只有电子邮件地址而没有电话号码的礼品卡仍会收到邮件;网关拒绝的短信也不会延误邮件的发送。

只有在 Settings → Integrations 中连接短信服务提供商后,才能勾选 SMS——参见 集成。该行会显示服务提供商名称以及短信所用的发件人 ID。短信通过您自己的网关账户发送,由网关按条收费;短信编辑器会显示每条消息的费用。

功能开启时,如果两个渠道都未勾选,则无法保存设置。

发送方式

在 Email 下,选择用于发送邮件的通道:

  • Gift Card Hero email — 默认选项。我们渲染邮件模板并通过我们的邮件服务器发送。无需任何设置,但邮件不会来自您自己的域名。
  • Your mail server (SMTP) — 相同的邮件,通过您自己的邮件服务器发送,因此会从您自己的域名发出。在 Settings → Integrations 中添加服务器后即可选择。
  • Klaviyo — Gift Card Hero 自身不发送任何内容,而是向 Klaviyo 发送 Gift Card Redeemed 事件,由您在 Klaviyo 中构建的 Flow 发送邮件。此模式下不使用邮件模板,在该 Flow 创建之前,您的顾客不会收到任何邮件。选择 Klaviyo 后,其下方会出现 Send a test event 链接:点击后会打开一个小表单,推送一个填满所有属性的示例事件,以便您据此构建 Flow——参见 集成。

每种通知各自选择发送通道。提醒邮件与兑换邮件可以通过不同的通道发送——Settings → Integrations 仅保存凭据。设置方法参见集成。

如果发送消息时所选的发送方式不可用——例如 Klaviyo 已断开连接,或邮件服务器设置不完整——则邮件会改为通过 Gift Card Hero email 发送。

短信没有可供选择的发送方式:它始终通过在 Integrations 中连接的服务提供商发送。


消息

Messages 部分以一行显示每条消息——包括邮件主题、顾客看到的短信内容、每条消息使用的是内置版本还是您的自定义版本,以及发送方式(或未发送的原因:渠道已关闭、由 Klaviyo 发送,或未连接网关)。每行上的 Edit template 可打开其编辑器。

每个编辑器在标题下方显示消息通过哪种方式发送,并附有 Change 链接,可前往选择发送方式。右侧列出可用变量,并说明您使用的是内置消息还是自定义消息;点击 Reset to built-in 可恢复为我们的内置版本。

邮件模板

如果模板保持内置版本,顾客收到的就是我们的版本,其中已包含普通措辞和余额用完时的措辞。该模板是写给持卡人的:如果您也要通知购买人,请参见通知对象。编辑后,将使用您自己的版本——此后,即使我们对内置版本进行改进,也不会生效。清空某个字段后,系统会将其视为“使用内置版本”。

可用变量:

变量 含义
{{ amount }} 从卡中扣除的金额,采用您店铺的货币格式
{{ balance }} 本次兑换后的剩余余额
{{ date }} 兑换发生的时间
{{ branch }} 门店位置,线上订单则为空
{{ card_last4 }} 礼品卡代码的最后四位字符
{{ order_name }} 该卡付款所对应的订单,例如 #1001
{{ depleted }} 本次兑换用完卡内余额时为 true
{{ customer.first_name }} 消息收件人的名字(已知时)——持卡人,或发给购买人的消息中的购买人
{{ audience }} 消息的收件对象:holder 或 purchaser
{{ holder.first_name }} 持卡人的名字(已知时)——每条消息都会填入,包括发给购买人的消息
{{ holder.last_name }} 持卡人的姓氏(已知时)
{{ holder.email }} 持卡人的电子邮件地址(已知时)
{{ shop.name }} 您的店铺名称

{{ customer.last_name }}、{{ customer.email }} 和 {{ customer.phone }} 在已知时同样会被填入,且与 customer.first_name 指向同一个人。为购买人撰写消息 中说明了如何使用 audience 和 holder 变量。正文可以是完整的 HTML 文档,也可以只是一个片段。模板只能使用这些变量以及基本的店铺信息(shop.name、shop.email、shop.domain、shop.currency);{% include %} 和 {% render %} 标签不可用。

对可能缺失的内容都要加上条件判断,以确保邮件在任何情况下都能正确显示:

{% if branch %}Used at {{ branch }}.{% endif %}

{% if depleted %}
  Your card is now fully used.
{% else %}
  You have {{ balance }} left.
{% endif %}

兑换邮件编辑器

Preview 会使用示例数据渲染模板,显示效果与顾客所见完全一致。Send test email 会打开一个小表单,其中包含收件地址(预先填入您店铺的联系邮箱);测试邮件会通过与正式通知相同的通道发送,因此也能验证您的 SMTP 设置是否可以正常投递。主题会标注 [Test]。每家店铺每小时最多可发送 20 封测试邮件,所有编辑器共用此限额。

短信模板

编辑器(“Redemption SMS”)列出 {{ amount }}、{{ balance }}、{{ date }}、{{ branch }}、{{ card_last4 }}、{{ depleted }} 和 {{ shop.name }};邮件中的其他变量,例如 {{ order_name }}、{{ customer.first_name }}、{{ audience }} 和 {{ holder.first_name }},同样可以使用。规则与邮件相同:保留内置短信,您将使用我们的版本;编辑后,则使用您自己的版本。短信在渲染前最多可包含 2,000 个字符。

内置短信为一条消息的长度,普通兑换时内容如下:

Artcaffe: KSh 1,500.00 used from gift card *4242 at Westlands. Balance left: KSh 3,500.00.

卡内余额用完时,内容如下:

Artcaffe: KSh 1,500.00 used from gift card *4242 at Westlands. The card is now fully used.

在编辑器下方,预览会显示顾客所看到的消息——包括普通措辞和余额用完时的措辞——并且每条消息的费用会随您的输入实时更新。短信按分段计费:纯文本为 160 个字符一段;一旦包含基本拉丁字符集之外的字符(例如表情符号、弯引号或某些带重音的字母),则改为 70 个字符一段,因此一处小小的修改就可能使每条消息的费用翻倍。较长的短信会被拆分为每段 153 个字符(包含此类字符时为每段 67 个字符)。计数基于渲染后的文本,而非模板,因此标签本身不计入。

Send test SMS(在连接短信服务提供商之前处于禁用状态)会打开一个小表单,用于输入接收号码。测试短信会使用示例数据渲染,并通过您的网关发送——因此也能验证网关的投递能力,并让您在真实手机上看到消息。本地号码将按网关所在国家/地区的号码格式解析。将发送并计费一条真实短信。


发送日志

标签页上的 Delivery log 部分汇总了最近七天的情况——发送成功、发送失败和未发送的兑换数量——并列出最近的一次兑换。点击 View delivery log 可在单独的页面中打开完整日志。

日志列出了所有获取到的兑换记录,以及每条消息的最终结果。列包括 Date、Gift card、Redeemed、Balance left、Branch,以及 Email 和 SMS 各一列——显示消息发送给了谁以及最终结果。通过 REST API 进行的兑换会在分店下方显示 "REST API" 及其参考编号。可按礼品卡的末几位字符、电子邮件地址、电话号码或订单名称进行搜索;也可按状态、渠道和时间段(最近 7 天、30 天或 90 天,或全部时间)进行筛选。点击礼品卡即可在 Shopify 中打开。

发送日志

各渠道的状态:

  • Sending —— 消息仍在发送中。
  • Sent —— 消息已发出。
  • Failed —— 发送被拒绝。将鼠标悬停在标签上可查看原因;SMTP 密码错误、地址被拒绝以及未注册的短信发件人 ID 都会显示在这里。失败的渠道会自动重试几次——另一渠道不会被重新发送。
  • Not sent —— 兑换已记录,但该渠道被有意未发送,并在旁边注明原因。最常见的原因是 "no email address (or phone number) is known for this gift card"(未知该礼品卡的电子邮件地址或电话号码),或在仅发送余额用完通知的店铺中,卡内仍有余额。

未勾选的渠道显示为破折号。

在地址或号码下方,日志会注明来源——"sent to, per the gift card"(按礼品卡中的收件人发送)、"assigned to, per the gift card"(按礼品卡中的分配对象发送)、"from the gift card record"(来自礼品卡记录)、"from the delivery schedule"(来自发送计划)、"from the order customer"(来自订单客户),或者当消息发送给购买人时显示 "purchaser"。正是这一行区分了“未发送任何内容”与“发给了错误的人”:如果礼品卡从未记录收件人,则会回退使用其付款订单中的客户,而这一行正是帮您识别此情况的依据。

购买人行

当购买人有自己的消息,或其消息被跳过时,渠道下方会出现一行标记为 Purchaser 的内容。其中显示购买人的地址或号码(未知时显示破折号)、状态,以及若消息未能发出,则显示原因。

其上方的一行为主消息:通常为持卡人的消息,但在 Purchaser 设置下则为购买人的消息。选择 Purchaser 时,只有当消息不得不改为发送给持卡人时,才会出现第二行。

您可能在购买人行中看到以下原因,它们显示在状态下方:

  • "No purchaser is known for this gift card — it was issued without an order, or the order has no customer" —— 该礼品卡没有购买人。选择 Both 时,只通知了持卡人。
  • "No email address is known for the purchaser",或电话号码对应的同类提示 —— 选择 Both 时,购买人已知,但在该渠道上没有地址,因此只通知了持卡人。
  • "No email address is known for the purchaser — sent to the card holder instead",或电话号码对应的同类提示 —— 选择 Purchaser 时,礼品卡没有购买人,或购买人在该渠道上没有地址,消息改为发送给持卡人。主消息行会显示消息的实际发送去向。
  • "The purchaser is the card holder — one message sent" —— 选择 Both 时,两者共用同一地址,因此只发出了一条消息。
  • "Could not look up who bought the card" —— 发给购买人的消息状态为 Failed,因为 Gift Card Hero 无法连接 Shopify 查找订单。选择 Both 时,该提示显示在购买人行中;选择 Purchaser 时,则显示在主消息行中,因为那就是购买人的消息。此情况不会被视为“没有购买人”:该消息会单独重试,同时不会改为发送给持卡人。

选择 Purchaser 时,如果持卡人也无法联系,则上面前两种提示不会带有 "sent to the card holder instead" 这一后缀——该渠道上没有任何消息发出。

Not sent 的购买人行不会改变兑换的结果:如果持卡人的消息已发出,则该兑换计为已发送。Failed 的购买人行则会改变结果——该兑换计为失败并会重试,且只会重新发送失败的那条消息。已经发出的消息不会重复发送。

搜索也可以按购买人的电子邮件地址或电话号码查找兑换记录。状态筛选器与渠道结合使用时,也会查看购买人的消息,因此选择 SMS 和 Failed 同样能找到发送失败的购买人短信。

没有余额信息的消息

Gift Card Hero 会在礼品卡被消费的那一刻读取该卡。但有时 Shopify 不能及时响应——通常是因为店铺同时发出大量请求。此时,系统会在消息发送前重新读取该卡,并且日志会在余额下方显示 "The card could not be read when it was spent";如果 Shopify 仍然没有响应,则该兑换显示 Failed,并附有 "Could not read the gift card",随后进行重试。后一次读取提供了余额信息,因此如果卡在两次读取之间又被消费,显示的剩余余额可能会比本次消费后实际剩余的略少。若开启了 Force gift cards to be onetime,则到那时卡内余额已被清空——Shopify 在稍后的第二次尝试中作出响应时,卡内可能已经是这种状态——因此余额显示为 Unknown,消息会在没有余额的情况下发送:内置邮件和短信不包含余额,Klaviyo 事件也没有 balance。若要在您自己的模板中实现相同效果,请将余额包裹在 {% if balance != blank %}…{% endif %} 中。


如何找到持卡人

持卡人按以下顺序查找:

  1. Shopify 中礼品卡的收件人 —— 礼品卡所发送的对象,直接设置在卡上,因此适用于从 Shopify 后台或收银台发行的礼品卡。
  2. Shopify 中礼品卡所分配的客户 —— 同样从卡上读取。
  3. Gift Card Hero 中的礼品卡记录 —— 卡片投递到的地址(仅限电子邮件;该记录不包含电话号码)。
  4. 发送计划 —— 针对排队等待将来发送的礼品卡。
  5. 该卡付款订单中的客户 —— 最后的备选方案,即下单的人,不一定是持卡人。(购买该卡所用的订单属于购买人——参见谁是购买人。)对于电话号码,此方式还会查看结账时输入的号码。

电子邮件和电话号码分别按此列表依次查找,因此二者可能来自不同来源——例如邮件来自礼品卡,号码来自订单——日志会注明具体来源。

如果所有来源都无法获得地址或号码,则该渠道会被记录为未发送。在 Shopify 中为该卡分配一个带有电话号码的收件人,即可为该卡之后的每次兑换解决此问题。

这就是 holder 模板变量所描述的人。购买人的查找方式不同——参见谁是购买人。


注意事项

  • 退款、作废和失败的付款会被忽略——只有礼品卡的成功付款才会触发发送。
  • 测试模式下的订单不会产生任何顾客消息。
  • Shopify 重复发送的事件不会再次触发消息;每次兑换在每个渠道上、针对每人,最多只通知一次——选择 Both 时,持卡人和购买人各收到一次。
  • 这些是关于顾客自身礼品卡的交易性消息,而非营销内容,因此适用于提醒的营销同意筛选在此不适用。
  • Gift Card Hero 没有自己的短信服务提供商:如果短信渠道已开启,而该服务提供商之后已在 Integrations 中被移除,则短信会被记录为未发送,邮件仍会照常发送。