启用 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 个赞

@techAPJ,这太棒了!有没有办法设置触发式同步,而不是实时同步?例如,由代理在 Zendesk 中添加标签、点击按钮或执行类似操作,之后工单才会同步到社区?
我们正试图找到最佳方式,将我们在 Zendesk 中收到的常见 FAQ 工单同步到社区中的问答板块,以便用户能在那里找到答案,而不是再次提交工单。
谢谢!

3 个赞

目前我们唯一触发的同步是从 Discourse 到 Zendesk。

由于我们无法完全控制 Zendesk,从 Zendesk 到 Discourse 手动触发同步较为棘手。不过,我会调查是否可以通过添加标签等方式从 Zendesk 触发 Webhook。

3 个赞

@techAPJ 你们是否研究过 Zendesk 与 Discourse 的同步?我们正在寻找将 Zendesk 工单中的常见问题解答(FAQ)推送到 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 工单上收到了评论: