Получение определенных постов в Zapier

Привет! Мы проверяем возможность интеграции Discourse с другим инструментом, который мы используем, через Zapier. Я надеялся на наличие триггерного события вебхука, которое могло бы быть привязано к конкретному сообщению и передавать информацию о нём при доставке вебхука. Теги, похоже, находятся на уровне темы и не позволяют указывать конкретное сообщение. Значки можно выдавать за сообщение, но они, кажется, не вызывают правильное событие вебхука.

Есть ли способ сделать это?

Спасибо!

Да, это можно сделать, используя вебхук Zapier в качестве приложения-триггера и настроив вебхук Discourse для отправки данных в Zapier. Раздел «Настройка триггера» по адресу Trigger a Zapier task with Discourse Webhooks содержит подробную информацию о том, как это настроить. Не могли бы вы ознакомиться с этой темой? Если что-то останется непонятным, задайте свои вопросы в этой теме, и мы ответим вам.

Привет, Саймон, спасибо за информацию! :pray:

Я пробовал настроить это через вебхуки, но видел только возможность отправлять все посты в Zapier, а не выбирать вручную, какие именно отправлять. То есть отправлялись бы только конкретные посты. Не знаешь, есть ли какая-то настройка или способ выбрать посты, чтобы это реализовать?

Вы можете ограничить, какие посты или темы будут запускать вебхук в Discourse, с помощью настроек «Категории триггера», «Теги триггера» и «Группы триггера» вебхука. Создание группы тегов, содержащей теги, которые могут видеть или использовать только сотрудники, может стать хорошим способом ограничить вебхук конкретными темами.

Также вы можете добавить на Zapier шаг фильтрации, чтобы процесс продолжался только при выполнении определённого условия для темы. Пример настройки этого для пользовательского вебхука приведён в разделе «Поймать событие создания пользователя в Discourse» на странице Create a Salesforce lead via Zapier when a user signs up on Discourse. Настройка фильтра для темы или поста в Zapier будет аналогичным процессом.

Как я понимаю, если задача в Zapier проходит до шага фильтрации, это событие засчитывается как выполненная задача в Zapier. Поэтому лучше всего отфильтровать как можно больше событий ещё в Discourse, прежде чем отправлять запрос в Zapier. Лучший способ сделать это — фильтрация по категориям, тегам и группам.

Спасибо ещё раз, @simon! Я поэкспериментировал с вариантами настройки, о которых вы упоминали, но не смог найти решение на уровне отдельного сообщения, которое позволяло бы реагировать на изменение специфичных данных поста в Discourse и указывать, что этот пост должен быть синхронизирован с другой системой.

Я точно могу отправлять все данные по теме с определённым тегом — видел, что это работает. Для этого, правда, требуется аккаунт Zapier более высокого уровня, чтобы настроить соответствующий автоматизированный процесс (zap) и справиться с количеством возникающих задач, что, возможно, приемлемо. Однако я так и не понял, как администратор в Discourse может выполнить какое-то действие с постом, которое запускает вебхук таким образом, чтобы Zapier мог определить, что именно этот конкретный пост в теме должен быть отправлен (а не все посты в тематике с тегом).

Я совершенно новичок в Discourse, поэтому wondering, не упускаю ли я что-то специфичное для постов.

Фильтрация на уровне поста, скорее всего, должна осуществляться через Zapier. Какие данные вы хотите использовать для определения того, нужно ли запускать Zap?

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

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

Есть какие-то идеи?

Моя первая мысль заключалась в том, что фильтрация постов, отмеченных как решённые, или постов, получивших лайк от сотрудника, могла бы сработать. К сожалению, ни одно из этих действий не вызывает вебхук. Я думаю, есть веские причины не вызывать вебхук при лайках, но, возможно, можно разработать механизм для вызова вебхука, когда тема помечается как решённая.

Для вызова вебхуков на конкретные посты с использованием текущих функций Discourse вы можете попробовать настроить вебхук, срабатывающий на события флагов. В Zapier вы можете фильтровать помеченные посты, ища те, которые были помечены как «Что-то ещё» конкретным пользователем на вашем сайте.

Самый простой способ увидеть полезную нагрузку, передаваемую при событии флага, — создать вебхук в Discourse, выбрав событие флага в качестве триггера. Для тестирования вы можете ввести любой URL в поле «URL полезной нагрузки» вебхука, например http://example.com. После того как вы пометите пост на своём сайте, перейдите в раздел Администрирование / API / Вебхуки и нажмите ссылку «Статус доставки», чтобы перейти к списку запросов вебхука.

Нажмите кнопку «Запрос», чтобы увидеть полезную нагрузку, переданную вебхуком.

В Zapier вы должны иметь возможность получить доступ к любому значению в полезной нагрузке запроса. Чтобы отфильтровать посты, помеченные как «Что-то ещё» конкретным пользователем, вам нужно проверить, что поле flag_type запроса равно notify_moderators, а поле created_by установлено в имя пользователя того, кого вы хотите вызвать действие в Zapier.

Хорошо, я понимаю, как это может работать. Будет ли заметно для пользователей, что обсуждаемые здесь сообщения помечаются? Нам нужно, чтобы для такого контента в качестве причины пометки указывалось «Что-то другое»… что для тех, кто хочет активировать этот вебхук, выглядит как чёрная магия. Есть ли способ добавить к сообщению действия, которые автоматизируют эти шаги (или, если мы можем добавить действия, создать действие, которое собирает нужную информацию о сообщении и отправляет её на конечную точку вебхука Zapier)?

Спасибо за всю вашу помощь, очень ценим!

Только сотрудники могут видеть, что сообщение помечено как «Другое».

К сожалению, сообщение, добавляемое при пометке сообщения как «Другое», не включается в полезную нагрузку вебхука. По этой причине я не думаю, что это будет лучшим для вас подходом.

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

Действительно, так оно и есть.

Отлично, спасибо вам обоим за помощь.

Как вы считаете, это лучшее место, чтобы посмотреть, как выглядит разработка плагинов?

Да, если вы хотите разработать плагин самостоятельно, это лучшее место для начала.