Obtener ciertos posts en Zapier

Hola, estoy verificando si podemos integrar Discourse con otra herramienta que estamos usando a través de Zapier. Esperaba contar con un evento de activación de webhook que fuera específico de una publicación y que enviara la información de dicha publicación en la entrega del webhook. Las etiquetas parecen estar a nivel de tema y no permiten ser específicas de una publicación. Las insignias pueden otorgarse mediante una publicación, pero no parecen activar la entrega correcta del webhook.

¿Existe alguna forma de hacer esto?

¡Gracias!

Sí, esto se puede hacer usando un webhook de Zapier como aplicación de activación y configurando un webhook de Discourse para publicar en Zapier. La sección ‘Configurar activación’ de Trigger a Zapier task with Discourse Webhooks proporciona detalles sobre cómo configurar esto. ¿Podrías leer ese tema? Si algo no está claro, haz tus preguntas en ese tema y te responderemos.

¡Hola Simon, gracias por la información! :pray:

Intenté configurarlo con los webhooks, pero solo pude ver la opción de enviar cada publicación a Zapier en lugar de poder seleccionar manualmente cuáles enviar. Es decir, solo se envían publicaciones específicas. ¿Sabes si hay una configuración o forma de elegir publicaciones que permita lograr eso?

Puedes limitar qué publicaciones o temas activarán el webhook en Discourse mediante la configuración de Categorías activadas, Etiquetas activadas y Grupos activados del webhook. Crear un grupo de etiquetas con etiquetas que solo puedan verse o usarse por miembros del personal podría ser una buena manera de restringir el webhook a temas específicos.

También puedes agregar un paso de filtro en Zapier para continuar solo si el tema cumple con alguna condición que especifiques. Hay un ejemplo de cómo configurarlo para un webhook de usuario en la sección ‘Capturar el evento de creación de usuario de Discourse’ de Create a Salesforce lead via Zapier when a user signs up on Discourse. Configurar un filtro para un tema o una publicación en Zapier seguiría un proceso similar.

Según mi entendimiento, si un Zap puede avanzar hasta su paso de filtro, ese evento se contará como una tarea en Zapier. Lo ideal es filtrar la mayor cantidad posible en Discourse antes de enviar la solicitud a Zapier. Filtrar por categorías, etiquetas y grupos es la mejor manera de lograrlo.

¡Gracias de nuevo, @simon! He probado las opciones de configuración de las que hablas, pero no he logrado encontrar nada a nivel de publicación que me permita reaccionar a un cambio específico en los datos de una publicación en Discourse que indique que dicha publicación debe sincronizarse con otro sistema.

Definitivamente puedo enviar todo lo relacionado con un tema que tenga una etiqueta determinada; ya he visto que funciona. Eso sí, requiere un nivel superior de cuenta en Zapier para configurar el zap adecuado y gestionar la cantidad resultante de tareas, lo cual podría ser aceptable. Lo que aún no he logrado entender es cómo un administrador en Discourse puede realizar una acción sobre una publicación que active un webhook de tal manera que Zapier pueda identificar que una publicación específica dentro del tema debe enviarse (en lugar de todas las publicaciones del tema etiquetado).

Soy completamente nuevo en Discourse, así que me pregunto si hay algo específico de las publicaciones que me estoy perdiendo.

Es probable que el filtrado a nivel de publicación tenga que realizarse en Zapier. ¿Qué tipo de datos quieres utilizar para determinar si se activa o no el Zap?

Ese es un punto donde mis conocimientos de Discourse definitivamente flaquean. No estoy seguro de qué datos son específicos de un post, que puedan usarse para especificar que el post debe sincronizarse, y que se pasen al payload del webhook.

Las banderas cumplen un propósito diferente… no estoy seguro de que eso funcione.
No queremos cambiar el contenido visible del post para el usuario.
Las insignias parecen una posibilidad, pero no veo que disparen los webhooks.

¿Alguna idea?

Mi primera idea fue que filtrar por publicaciones marcadas como resueltas o por publicaciones que hayan recibido un “me gusta” de un miembro del personal podría funcionar. Desafortunadamente, ninguna de esas acciones activa un webhook. Creo que hay buenas razones para no activar un webhook en los “me gusta”, pero quizás se podría desarrollar algo para activar un webhook cuando un tema se marca como resuelto.

Para activar webhooks en publicaciones específicas con la funcionalidad actual de Discourse, podrías configurar un webhook que se active en eventos de señalización (Flag Events). En Zapier, podrías filtrar las publicaciones señaladas buscando aquellas que hayan sido marcadas como “Algo más” por un usuario específico de tu sitio.

La forma más sencilla de ver el contenido que se pasa con un evento de señalización es crear un webhook en Discourse seleccionando dicho evento como su activador. Para probarlo, puedes ingresar cualquier URL en el campo URL del contenido del webhook, por ejemplo http://example.com. Después de señalar una publicación en tu sitio, ve a Administración / API / Webhooks y haz clic en el enlace “Estado de entrega” para acceder a la lista de solicitudes del webhook.

Haz clic en el botón “Solicitud” para ver el contenido que ha sido enviado por el webhook.

En Zapier deberías poder acceder a cualquiera de los valores en el contenido de la solicitud. Para filtrar las publicaciones que han sido señaladas como “Algo más” por un usuario específico, necesitarás verificar que el flag_type de la solicitud sea notify_moderators y que el campo created_by de la solicitud esté establecido en el nombre de usuario del usuario que deseas que active tu acción en Zapier.

Ok, veo cómo eso podría funcionar. ¿La gente vería que las publicaciones de las que hablamos aquí están siendo marcadas? Necesitaríamos que el motivo específico de la marca sea “Algo más”… lo cual es un poco de magia negra para quienes querrían activar este webhook. ¿Existe alguna forma de agregar acciones a una publicación que puedan automatizar esos pasos (o, si podemos agregar acciones, una manera de simplemente crear una acción que recopile la información que queremos sobre la publicación y llame a un punto final de acción de webhook de Zapier con ella)?

¡Gracias por toda tu ayuda, muy apreciada!

Solo los miembros del personal pueden ver que una publicación ha sido marcada como “Otra cosa”.

Lamentablemente, el mensaje que se agrega cuando una publicación se marca como “Otra cosa” no está incluido en la carga útil del webhook. Por esta razón, no creo que esta sea la mejor aproximación para ustedes.

Un ingeniero deberá confirmar esto, pero creo que sería bastante sencillo crear un complemento que active un webhook personalizado cuando un miembro del personal haga clic en un botón que se agregue al menú de Acciones de administración de la publicación.

Efectivamente, ese es el caso.

Genial, gracias a ambos por la ayuda.

¿Dirías que este es el mejor lugar para ver cómo es el desarrollo de plugins?

Sí, si deseas desarrollar el plugin tú mismo, ese es el mejor lugar para empezar.