启用 Zendesk 双向同步

摘要

本文档将介绍:

  • 在 Discourse 中启用 Zendesk 同步设置
  • 配置 Zendesk Webhook
  • 设置 Zendesk 触发器

启用 Zendesk 同步设置

首先,您需要启用 Zendesk 插件,启用同步设置,并提供一个安全的令牌(token)。

  1. 导航到插件设置: 访问您的 Discourse 站点并导航到 Zendesk 插件设置页面,路径为 /admin/plugins/discourse-zendesk-plugin。或者,您也可以在 /admin/site_settings 搜索找到设置。
  2. 启用插件: 查找并启用 zendesk enabled 设置(如果尚未启用)。
  3. 启用同步设置: 查找并启用 sync comments from zendesk 设置。
  4. 提供 Webhook 令牌: 在 zendesk incoming webhook token 中生成并添加一个随机的安全字符串。此令牌稍后将用于配置 Zendesk 的 Webhook。
  5. 配置自动生成类别: 双向同步仅适用于已配置 Zendesk 工单自动生成的类别。请启用 zendesk autogenerate all categories,或将特定类别添加到 zendesk autogenerate categories 设置中。如果没有进行此配置,Webhook 将会静默忽略传入的评论。

设置 Zendesk Webhook

按照以下步骤在 Zendesk 中配置 Webhook:

  1. 访问 Webhooks 页面: 在 Zendesk 中,导航到 应用和集成 (Apps and integrations) → Webhook (Webhooks) 部分。
    • 示例 URL: https://<instance_name>.zendesk.com/admin/apps-integrations/webhooks/webhooks
  2. 创建 Webhook:
    • 点击右上角的 操作 (Actions) 按钮。
    • 选择 创建 Webhook (Create Webhook)。
    • 填写 Webhook 详细信息:
      • 请求方法 (Request method): PUT
      • 端点 URL (Endpoint URL): https://<discourse.example.com>/zendesk-plugin/sync
      • 请求格式 (Request format): JSON


  1. 测试 Webhook:
    • 点击 测试 Webhook (Test Webhook) 按钮。
    • 从下拉菜单中选择“自定义测试”(Custom Test)。
    • 用以下内容替换 JSON,并插入您的令牌:
     {
         "ticket_id": "{{ticket.id}}",
         "topic_id": "{{ticket.external_id}}",
         "email": "{{current_user.email}}",
         "token": "INSERT TOKEN HERE"
     }
  • 点击 发送测试 (Send Test)。预期会收到一个包含 HTML 页面指示成功的 400 Bad Request 响应,这被视为积极信号。

设置 Zendesk 触发器

在 Zendesk 中配置一个触发器以实现操作自动化:

  1. 访问触发器页面: 在 Zendesk 中,导航到 管理 (Admin) → 对象和规则 (Objects and Rules) → 业务规则 (Business Rules) → 触发器 (Triggers) 部分。
    • 示例 URL: https://<instance_name>.zendesk.com/admin/objects-rules/rules/triggers
  2. 创建触发器:
    • 点击 添加触发器 (Add trigger)。
    • 命名为“Discourse Sync”,并将类别设置为“通知”(Notifications)。
    • 按照下图所示配置条件和操作。



  • 使用与测试 Webhook 步骤中相同的 JSON 正文,再次将“INSERT TOKEN HERE”替换为您的令牌。
  1. 保存触发器: 配置完成后,请确保保存触发器。
10 个赞

Hey @techAPJ this is really awesome! Is there a way to set up a triggered sync as opposed to a live sync? i.e. an agent would add a tag in ZD or hit a button or something and only then would the ticket sync to the community?
We are trying to figure out the best way to share common FAQ tickets we get to ZD in the community with the Q&A so that users can find the answers there instead of writing in a ticket.
Thanks!

3 个赞

The only triggered sync we have currently is from Discourse → Zendesk.

Triggering a manual sync from Zendesk → Discourse is tricky since we do not have complete control on Zendesk. That said, I’ll investigate if there is a way to trigger webhook from Zendesk by adding a tag, etc.

3 个赞

@techAPJ did you ever look into ZD to Discourse sync? We are looking at ways to push FAQs from tickets on Zendesk to Discourse!

您好!我设置好了一切,但它只从 Discourse 到 Zendesk 工作。我不知道我错过了什么,以便我的 Zendesk 回答可以发布到 Discourse 中。

我和 Marla 在这里^^^。我们已经让插件正常工作了!:tada:

但是我们想知道:如果话题被移到私信,是否有什么方法可以继续双向同步? 有时,我们的成员会请求重置密码,我们希望在社区内继续对话。

我已经尝试了上述过程,运行得很好! :partying_face: 但是,当 Zendesk 中的评论包含附件时,会出现一个问题——消息已收到,但附件丢失了。我不确定是否需要通过 webhook 传递其他参数来处理附件。有人能澄清一下是否需要任何特定参数吗?

谢谢!

我已经设置好了 Zendesk 插件,并且运行得很棒。我想启用双向同步评论,但我永远不想自动生成 Zendesk 工单。

看起来从 ZD 同步评论到 Discourse 需要启用自动生成。是这样吗?还是有其他方法?

我已经启用了 Zendesk 插件,并且将工单发布到 Zendesk 可以正常工作。但是,当我从 Zendesk Webhook 设置页面进行测试时,上面文档中的 Webhook (https:///zendesk-plugin/sync) 返回 404。因此,我无法从 Zendesk 更新论坛帖子。我哪里做错了?

另一个问题:如果我在 Zendesk 上关闭了工单,并且有人回复了 Discourse 帖子,那么已关闭的工单不会重新打开,我会错过新的帖子。有什么建议吗?

您好 Oliver,

我确信您已经意识到了,但同步 URL 需要包含您的域名。所以,与其仅仅是 https:///zendesk-plugin/sync,不如像这样:https://forum.yoursite.com/zendesk-plugin/sync

即使将工单设置为“已解决”,您仍然应该在 ZD 工单中看到任何 Discourse 回复。您只需要搜索该工单即可。:slight_smile:

例如,在我的测试站点上,我创建了一个帖子,并从中创建了一个 ZD 工单。我将工单标记为“已解决”,然后回复了 Discourse 上的主题。我在 ZD 工单上收到了评论: