Включение двусторонней синхронизации с Zendesk

Краткое описание

В этой документации мы рассмотрим:

  • Включение настроек синхронизации Zendesk в Discourse
  • Настройку вебхука Zendesk
  • Создание триггера Zendesk

Включение настроек синхронизации Zendesk

Для начала вам нужно включить плагин Zendesk, активировать настройку синхронизации и предоставить безопасный токен.

  1. Переход к настройкам плагина: Зайдите на ваш сайт Discourse и перейдите на страницу настроек плагина Zendesk по адресу /admin/plugins/discourse-zendesk-plugin. Альтернативно, вы можете найти настройки, выполнив поиск на странице /admin/site_settings.
  2. Включение плагина: Найдите и включите настройку zendesk enabled, если она ещё не активна.
  3. Включение настройки синхронизации: Найдите и включите настройку sync comments from zendesk.
  4. Указание токена вебхука: В поле zendesk incoming webhook token сгенерируйте и добавьте случайную безопасную строку. Этот токен будет использоваться позже при настройке вебхука Zendesk.
  5. Настройка категорий для автогенерации: Двусторонняя синхронизация работает только для тем в категориях, настроенных для автоматической генерации тикетов Zendesk. Либо включите zendesk autogenerate all categories, либо добавьте конкретные категории в настройку zendesk autogenerate categories. Без этого вебхук будет молча игнорировать входящие комментарии.

Настройка вебхука Zendesk

Следуйте этим шагам для настройки вебхука в Zendesk:

  1. Переход к странице вебхуков: Перейдите в раздел Webhooks в Zendesk в меню Apps and integrationsWebhooks.
    • Пример URL: https://<instance_name>.zendesk.com/admin/apps-integrations/webhooks/webhooks
  2. Создание вебхука:
    • Нажмите кнопку Actions в правом верхнем углу.
    • Выберите Create Webhook.
    • Заполните данные вебхука:
      • Request method: PUT
      • Endpoint URL: https://<discourse.example.com>/zendesk-plugin/sync
      • Request format: JSON


  1. Тестирование вебхука:
    • Нажмите кнопку Test Webhook.
    • В выпадающем списке выберите ‘Custom Test’.
    • Замените JSON следующим содержимым, вставив ваш токен:
     {
         "ticket_id": "{{ticket.id}}",
         "topic_id": "{{ticket.external_id}}",
         "email": "{{current_user.email}}",
         "token": "INSERT TOKEN HERE"
     }
  • Нажмите Send Test. Ожидайте ответ 400 Bad Request как положительный сигнал: на экране должна отобразиться HTML-страница, указывающая на успех.

Настройка триггера Zendesk

Настройте триггер в Zendesk для автоматизации действий:

  1. Переход к странице триггеров: Перейдите в раздел Triggers в Zendesk в меню AdminObjects and RulesBusiness RulesTriggers.
    • Пример URL: https://<instance_name>.zendesk.com/admin/objects-rules/rules/triggers
  2. Создание триггера:
    • Нажмите Add trigger.
    • Назовите его “Discourse Sync” и установите категорию “Notifications”.
    • Настройте условия и действия, как показано ниже.



  • Используйте то же тело JSON, что и на шаге тестирования вебхука, снова заменив “INSERT TOKEN HERE” на ваш токен.
  1. Сохранение триггера: После настройки обязательно сохраните триггер.
10 лайков

Привет @techAPJ, это действительно здорово! Есть ли возможность настроить триггерную синхронизацию вместо синхронизации в реальном времени? То есть, чтобы агент добавлял тег в ZD или нажимал кнопку, и только после этого тикет синхронизировался с сообществом?
Мы пытаемся найти лучший способ делиться общими тикетами с FAQ, которые мы получаем в ZD, с сообществом в разделе «Вопросы и ответы», чтобы пользователи могли находить ответы там, а не создавать новые тикеты.
Спасибо!

3 лайка

На данный момент у нас есть только одна триггерная синхронизация — из Discourse в Zendesk.

Запуск ручной синхронизации из Zendesk в Discourse сложен, поскольку у нас нет полного контроля над Zendesk. Тем не менее, я изучу возможность запуска вебхука из Zendesk, например, путём добавления тега.

3 лайка

@techAPJ вы когда-нибудь рассматривали синхронизацию между ZD и Discourse? Мы ищем способы переноса FAQ из тикетов Zendesk в Discourse!

Привет! Я всё настроил, но работает только в направлении от Discourse к Zendesk. Не понимаю, чего мне не хватает, чтобы мои ответы в Zendesk публиковались в Discourse.

Привет, я здесь с Марлой ^^^. Нам удалось заставить плагин работать! :tada:

Но у нас возник вопрос: можно ли как-то продолжить двустороннюю синхронизацию, если тема будет перемещена в личные сообщения? Иногда наши участники запрашивают сброс пароля, и мы хотели бы продолжать общение внутри сообщества.

Я попробовал описанный выше процесс, и он работает отлично! :partying_face: Однако возникла проблема: когда в комментарии в Zendesk есть вложение, само сообщение приходит, но вложение отсутствует. Не уверен, нужно ли передавать дополнительный параметр в вебхуке для обработки вложений. Не могли бы вы прояснить, требуются ли для этого какие-то специфические параметры?

Спасибо!

Я только что настроил плагин Zendesk, и он отлично работает. Я хотел бы включить двустороннюю синхронизацию комментариев, но при этом не хочу автоматически создавать заявки в Zendesk… никогда, если честно.

Кажется, что синхронизация комментариев из ZD → Discourse требует включения автоматического создания заявок. Так ли это, или есть какое-то обходное решение?

Я включил плагин Zendesk, и создание тикетов в Zendesk работает. Однако вебхук, указанный в документации выше (https:///zendesk-plugin/sync), возвращает ошибку 404 при тестировании со страницы настройки вебхука в Zendesk. В результате я не могу обновлять сообщения на форуме из Zendesk. Что я делаю не так?

Ещё один вопрос: если я закрываю тикет в Zendesk, а кто-то отвечает на пост в Discourse, закрытый тикет не открывается заново, и я пропускаю новый пост. Есть какие-то советы?

Привет, Оливер,

Я уверен, что вы уже это поняли, но URL синхронизации должен включать ваш домен. То есть вместо просто https:///zendesk-plugin/sync это может выглядеть примерно так: https://forum.yoursite.com/zendesk-plugin/sync.

Даже после установки статуса тикета на «Решено» вы всё равно должны видеть любые ответы из Discourse в тикете ZD. Вам просто нужно будет найти этот тикет. :slight_smile:

Например, на моём тестовом сайте я создал пост, из которого был автоматически создан тикет в ZD. Я пометил тикет как «Решено», а затем ответил на тему в Discourse. В результате я получил комментарий в тикете ZD: