跳到内容
All articles
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 表示集成已停用或令牌已更改。

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

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