如何将 Typeform 与 Shopify Flow 连接起来

如何将 Typeform 与 Shopify Flow 连接起来

复制页面

通过支持 HMAC 验证的 Webhook 将 Typeform 与 Shopify Flow 连接起来。根据表单回复触发标签、备注和元字段的更新。

每当有人填写完您的表单之一时,Typeform 就会发送一个 Webhook,其负载中包含所有答案。Workflow Webhooks 会将该调用转换为 Shopify Flow 触发器,以便您的商店能够对此做出响应:为客户添加标签、添加订单备注、发送内部邮件、更新元字段 - - 任何 Shopify Flow 能做的事情。

本指南详细介绍了整个流程 - - Typeform 发送请求,Workflow Webhooks 接收并验证,Shopify Flow 执行操作 - - 每个请求都会验证 Typeform 的 HMAC 签名,因此只有 Typeform 才能启动您的工作流程。

你可以制作什么

  • 根据客户在购买后问卷中的回答,为其添加相应标签。
  • 将满意度评分作为元字段记录到客户档案中。
  • 将不满的反馈直接通过电子邮件转发给您的支持团队。

典型的触发事件:表单提交。

开始之前

  • Workflow Webhooks 已安装在您的 Shopify 商店中。
  • Shopify Flow 已安装,该应用可从Shopify应用商店免费下载。
  • 一个具有创建 Webhook 权限的 Typeform 账户。

步骤 1 - 在 Workflow Webhooks 上创建 Webhook

  1. 打开 Workflow Webhooks -> Webhook -> 创建 Webhook,并为其命名一个在 Shopify Flow 中能认出的名称,例如 Typeform events。
  2. 在**“身份验证**”下,选择 HMAC。
  3. 在**“签名提供商**”下,选择 Typeform。该应用会自动为您填写标题、算法、已签名负载和重放窗口 - - 无需进行其他配置。
  4. 暂时将“密钥”字段留空,然后点击“保存”。复制页面上显示的 Webhook URL。

有关其他身份验证模式,请参阅 身份验证;有关如何选择哪些字段将传输到 Shopify Flow,请参阅 负载映射和流变量。

步骤 2 - 在 Typeform 中添加端点

打开表单,进入**“连接”→“Webhook”→“添加 Webhook**”,粘贴 URL,然后开启“密钥”并输入一个。

如何查找您的 Typeform 签名密钥

在 Typeform Webhook 上配置的密钥。

Typeform 关于 Webhook 签名的官方文档 提供了您账户的具体说明和截图。

将该密钥粘贴到 Workflow Webhooks 页面中 Webhook 的**“Secret**”字段中,然后保存。从那时起,每条 Typeform 消息在到达 Shopify Flow 之前都会经过验证。

此处检查的内容

什么 值
签名页眉 Typeform-Signature
签名的位置 前缀sha256=之后的标头值
签署了什么 {body}
签名 HMAC-SHA256,Base64 编码
时间戳 此发件人未使用该功能
回放保护 无 - - 该发件人未对时间戳进行签名,因此所有有效的签名均保持有效
秘密 作为纯文本使用。请完全按照发件人显示的内容粘贴

在已签名的负载中,{body} 就是原始请求正文,字节对字节完全一致。

如果请求未通过上述任何一项检查,则该请求将被以401状态拒绝,并记录在历史与故障排除中,且永远不会启动工作流程。

步骤 3 - 构建Shopify Flow工作流程

  1. 在 Shopify Flow 中,创建一个工作流程,并选择“Workflow Webhooks”触发器。
  2. 点击**“记录事件**”,然后从 Typeform 发送一个测试事件(或使用 Workflow Webhooks 中的**“发送测试”功能**),以便 Shopify Flow 学习您的数据结构。
  3. 您拥有的每个 Webhook 都会触发同一个 Shopify Flow 触发器,因此请在 Webhook ID 上添加第一个条件,以确保该工作流程仅针对 Typeform。该 ID 显示在 Webhook 页面上。
  4. 添加操作 - - 标记客户、添加备注、发送内部邮件、更新元字段。
Shopify Flow
在Shopify Flow中,选择“Select a trigger”(选择触发器),打开Workflow Webhooks(触发器类型),然后选择“Webhook Trigger”(Webhook 触发器)。
一个 Shopify Flow 条件:Webhook ID 等于某个 Webhook 的 ID
每个工作流程的第一步:对 Webhook ID 设置一个条件,以便工作流程仅针对此 Webhook 运行。
完成的工作流程:Webhook 触发器,基于 Webhook ID 的条件,然后在“为真”分支上发送内部邮件
完成的工作流程:触发器、基于 Webhook ID 的条件,然后在“True”分支上执行您的操作。

第 4 步 - - 进行端到端测试

在 Typeform 中触发一个真实事件。在“**Workflow Webhooks”→“历史记录”**中,您应该能看到状态为“成功”的调用记录。如果签名有误,您将看到一条失败的记录及具体原因;验证已签名的 Webhook 介绍了签名测试工具,该工具会准确显示是哪一步出现了错误。

“History”中打开了一个调用,其中包含其请求头、负载、状态、持续时间和标识符
“History”中的已交付事件:状态为“Success”表示 Shopify Flow 已接受该事件。
签名不匹配

按以下顺序:密钥(最常见的原因 - - 多余的空格,或来自错误环境的密钥)、发送方是否使用了其他端点的密钥,以及 Typeform 与应用之间是否有任何环节重写了请求体。签名覆盖的是原始字节,因此会重新格式化 JSON 的代理会破坏签名。 Webhook 页面上的签名测试工具会显示被签名的确切文本内容。

每次请求都会返回 401 错误

请确认 Webhook 的身份验证已设置为 HMAC 且已选择 Typeform 提供商,密钥已填写,并且 Typeform 发送至 URL 的内容与应用中显示的完全一致,包括末尾的代码。

“历史”中没有记录

该请求从未送达。请在 Typeform 中重新检查 URL,并查看 Typeform 自身的发送日志以了解其收到的响应。如果出现 404 错误,说明 Webhook 地址有误或已被删除;如果出现 429 错误,则说明您已超过套餐的调用限制 - - 请参阅 套餐与使用情况。

工作流程针对错误的事件运行

您商店中的每个 Webhook 都会触发同一个 Shopify Flow 触发器。请在工作流程的第一步中添加一个基于 Webhook ID 的条件,或者缩小从 Typeform 发送的事件范围。

相关