跳到内容
全部文章
Setup

帮助台:Zendesk、Freshdesk 与 Intercom

使用你自己的账号(自带账号模式),将你的帮助台工单(Zendesk、Freshdesk 或 Intercom)同步到 CRM,成为工单记录。

帮助台集成使用你自己的 Zendesk、Freshdesk 或 Intercom 账号(BYO 模式:自带账号)。你帮助台中每个被创建或更新的工单都会成为 CRM 中的一个工单记录,并通过提交人的邮箱自动关联到对应联系人。我们这边没有任何费用、加价或中间环节:数据直接来自你的账号。

该集成初始状态为未激活:在你填写凭据并激活之前不会发生任何事。所有密钥(签名密钥、client secret、API 令牌)都会加密存储在 CRM 中,且永远不会再次显示。每个平台在“设置 → 集成”中都有各自的卡片;webhook URL 是唯一的(/api/inbound/helpdesk/…),CRM 通过该 URL 中的令牌来识别是哪个平台。

前置条件

  • 拥有管理员权限的 Zendesk、Freshdesk 或 Intercom 账号,以便创建 webhook/触发器并查看签名密钥。
  • Zendesk:子域名(.zendesk.com 之前的部分)和 webhook 的 Signing secret(Admin Center → Apps and integrations → Webhooks)。
  • Freshdesk:域名(例如 mycompany.freshdesk.com)以及一个由你定义的共享密钥。Intercom:你应用的 Client secret(Developer Hub)。
  • 在 Sellio 中,需要管理员权限才能保存凭据并在“设置 → 集成”中激活该集成。

每个工单会发生什么

  • 外部工单会成为 CRM 中工单对象的一条记录(主题、状态、优先级以及提交人的邮箱)。
  • 状态和优先级会被转换为 CRM 中的值(例如 Zendesk 的 open → 处理中,solved → 已解决;Freshdesk 的 2 → 处理中,4 → 已解决;Intercom 的 open → 处理中,closed → 已关闭)。优先级 urgent/priority → 紧急/高。
  • 当该邮箱在 CRM 中已存在对应联系人时,会自动进行关联。如果不存在,工单仍会被创建(未关联状态),你之后可以再手动关联。
💡 该同步是幂等的:如果帮助台重新发送了同一个事件,CRM 会更新已有的工单记录,而不是创建新记录。它通过外部 id(存储为 provider:id)来识别记录。只有来自帮助台的字段会被更新;你在 CRM 中手动编辑的内容会被保留。

Zendesk

  1. 打开“设置 → 集成”,找到“帮助台(Zendesk)”卡片。
  2. 填写子域名(.zendesk.com 之前的部分)和 webhook 的 Signing secret。如果你希望从 CRM 创建工单,还可以选填坐席邮箱和 API 令牌。点击“保存凭据”。
  3. 复制出现的“Webhook URL”。
  4. 在 Zendesk Admin Center → Apps and integrations → Webhooks 中,创建一个指向该 URL 的 webhook(JSON),并将其关联到一个在工单创建/更新时触发的触发器。触发器正文必须包含:id、subject、status、priority、requester_email。Zendesk 会使用 Signing secret 对每次调用进行签名(X-Zendesk-Webhook-Signature 请求头)。
  5. 返回 CRM 并点击“激活”。

Freshdesk

Freshdesk 原生不对 webhook 进行签名。因此,你需要自定义一个共享密钥,并配置自动化规则将其发送在 X-Freshdesk-Secret 请求头中;CRM 会在每次调用时校验该请求头。

  1. 在 CRM 中,找到“帮助台(Freshdesk)”卡片。
  2. 填写域名(例如 mycompany.freshdesk.com)和一个 Webhook 密钥(你自行选择的字符串)。如果你希望从 CRM 创建工单,还可以选填 API key。点击“保存凭据”。
  3. 复制“Webhook URL”。
  4. 在 Freshdesk → Admin → Automations 中,创建一条在工单创建/更新时触发、动作为“Trigger webhook”(POST,JSON)的规则,指向该 URL,并在请求中包含 X-Freshdesk-Secret 请求头(值为上面的密钥)。正文必须包含:id、subject、status、priority、email。
  5. 返回 CRM 并点击“激活”。

Intercom

  1. 在 CRM 中,找到“帮助台(Intercom)”卡片。
  2. 填写你 Intercom 应用的 Client secret(Developer Hub → 你的应用 → Basic information)。如果你希望从 CRM 创建会话,还可以选填 Access token。点击“保存凭据”。
  3. 复制“Webhook URL”。
  4. 在 Intercom Developer Hub → 你的应用 → Webhooks 中,将通知 URL 指向该 URL,并订阅相关的会话主题(例如 conversation.user.created、conversation.user.replied)。Intercom 会使用 Client Secret 对每次调用进行签名(X-Hub-Signature 请求头,HMAC-SHA1)。
  5. 返回 CRM 并点击“激活”。

从 CRM 创建工单(出站,可选)

如果你填写了出站凭据(Zendesk:邮箱 + API 令牌;Freshdesk:API key;Intercom:access token),CRM 也可以在你的帮助台中创建工单。这是一个尽力而为的功能:如果 API 调用失败,CRM 不会中断整体流程,只会报告该错误。工单出现的位置:在 CRM 的工单对象中,并且当提交人已经是一个联系人时,还会与其关联。

请将 webhook URL 和密钥视为机密信息。CRM 会验证每次调用的签名(Zendesk/Intercom 通过 HMAC,Freshdesk 通过共享密钥);无效的调用会被拒绝。如果你未填写用于校验的密钥就尝试激活,该集成会保持未激活状态,在一切配置就绪之前不会同步任何内容。

如何测试

  1. Zendesk:在 Admin Center → Apps and integrations → Webhooks 中使用 webhook 的测试按钮,或创建/更新一个能触发该触发器的真实工单。
  2. Freshdesk:通过创建/更新工单来触发自动化规则;Intercom:生成一个符合已订阅主题的测试会话。
  3. 在 CRM 中打开工单对象,确认工单已出现,主题/状态/优先级正确,并且(如果提交人邮箱已存在)已关联到对应联系人。
  4. 重新发送同一个事件,确认工单被更新而非重复创建(通过 provider:id 去重)。

故障排查

  • Zendesk:签名无效:CRM 中保存的 Signing secret 与该 webhook 的密钥不一致(X-Zendesk-Webhook-Signature 请求头)。请在 Admin Center 中重新复制 webhook 密钥并重新输入。
  • Freshdesk:调用被拒绝:自动化规则必须在 X-Freshdesk-Secret 请求头中发送与 CRM 中保存的密钥完全一致的值(Freshdesk 原生不进行签名)。
  • Intercom:签名无效:检查应用的 Client secret(Developer Hub → Basic information);签名为 X-Hub-Signature 请求头中的 HMAC-SHA1。
  • 未同步:确认触发器/webhook 的请求体包含预期字段(id、subject、status、priority 以及提交人邮箱),并且该集成已激活。
  • 工单没有关联联系人:关联是通过提交人邮箱进行的。如果该邮箱尚不是联系人,工单会以未关联状态被创建。URL 返回 404 表示集成已停用或令牌已更改。

在系统内打开这篇文章

读完想看看它实际运行的样子吗?

账户是免费的,完整手册在系统内随时可看,还有一个助手会基于这份内容回答你的问题。

免费创建账户
帮助台:Zendesk、Freshdesk 与 Intercom · Sellio