Muéstranos tus flujos de trabajo

Continuando la discusión desde Una vista previa de la nueva función Workflows:

Estoy muy emocionado por el lanzamiento de Workflows. Soñaba con esta función cuando era un administrador de comunidad activo y buscaba formas de automatizar procesos comunitarios repetitivos y tácticos.

Me intriga mucho saber qué tipo de cosas están usando Workflows para (o lo que harán, ahora que ya saben de su existencia).

Empezaré yo, aunque debo admitir que tuve que delegar la construcción real en @zogstrip y @chapoi porque no tengo esas habilidades.

Flujo de trabajo para recordatorios semanales de actualización
Lo único que exigimos a nuestro equipo es una revisión semanal para asegurarnos de que están bien y contentos. Algunas personas no lo hacen (por diversas razones) y perseguirlas para que lo hagan desperdicia tiempo y energía, así que tenemos una nueva solución.

Este flujo de trabajo busca un tema de actualización y les sirve CSS progresivamente peor cuanto más tiempo lo dejan pasar.

¡Es increíble lo efectivo que es!

11 Me gusta

¡Me encanta el CSS :laughing:! ¿Podrías compartirlo, si es posible?

2 Me gusta

Por favor, no me digas que… quieres el tema más feo que he creado nunca? :sweat_smile:

3 Me gusta

De hecho, sí :laughing: . Se ve muy… creativo :eyes: .

2 Me gusta

De verdad es increíble. Lo sé porque, al intentar probar algo no relacionado, me metí sin querer en el Grupo 4 y tuve que intentar depurar el problema mientras todo en la pantalla seguía flotando y alejándose. :laughing: @zogstrip fue muy paciente.

2 Me gusta

no es algo que se vea clarísimo en el resumen del flujo de trabajo, así que aquí te explico cómo funciona

parte 1 - cuadro amarillo

  • para cada publicación creada/editada en la categoría #updates, comprobamos si proviene del autor del tema
  • si no es del OP, “salimos” (abortamos el proceso)
  • si es del OP, la pasamos por un clasificador LLM que devuelve un JSON indicando si la publicación es una actualización semanal real (no exigimos un formato específico) y no una respuesta aleatoria a otra publicación
  • luego almacenamos ese resultado de clasificación en una tabla de datos
  • si la publicación se clasifica como una actualización semanal, inmediatamente eliminamos al usuario de todos los grupos de “atrasados” (el cuadro verde)

parte 2 - cuadro azul

  • cada día, a las 6:00 a. m. UTC, ejecutamos una consulta de data explorer que combina todas las vacaciones, días libres y la “última actualización semanal” para colocar a las personas en uno de los cuatro grupos de “atrasados”

parte 3 - no se muestra en el flujo de trabajo

  • tenemos un componente de tema personalizado[1] que comprueba si el usuario actual está en uno de los grupos de “atrasados” y aplica más… molestias :sweat_smile:

  1. aplicado a todos nuestros temas ↩︎

5 Me gusta

Requerimos que se utilicen ciertas etiquetas, pero los miembros tienen la costumbre de publicar en categorías incorrectas, lo que significa que se invierte demasiado tiempo moviendo los temas al lugar adecuado.

Un flujo de trabajo muy básico que se ejecuta al crear un tema verifica las etiquetas en uso y luego cambia automáticamente la categoría.

Algo tan simple ha ayudado a mantener cierta estructura sin ningún esfuerzo.

2 Me gusta

Siguiendo un post que hice en el tema original sobre flujos de trabajo. He descubierto cómo lograr que haga lo que quiero. Todo esto es solo una prueba, por supuesto, pero esto es lo que hace:

Es un sistema de reactivación que utiliza IA para, con suerte, generar discusión e impulsar la reactivación en momentos en que el sitio está lento.

Fase A: Localizar y resumir

Localiza publicaciones que tengan más de 30 días y que sean una combinación de lo siguiente:

-Temas populares que no han tenido publicaciones en un tiempo.
-Temas que están recibiendo muchas vistas, pero no han tenido respuestas en un tiempo.
-Temas que tuvieron cierta actividad en el último año, pero luego se detuvieron.

Una vez que encuentra uno, inicia el agente de «Resumen IA» de Discourse. Hace que el agente de IA escriba un resumen. Lo hace enviando una solicitud http POST al punto final de la API de resumen. Una vez que el resumen está listo, guarda la existencia del flujo de trabajo en una tabla de datos.

(Esto se ejecuta una vez por hora, pero potencialmente con más frecuencia).

Fase B: Evaluar el resumen para seguimiento

Otro flujo de trabajo programado se ejecuta de forma independiente en su propia programación. Revisa la tabla de datos en busca de filas que hayan sido resumidas, pero no evaluadas. Toma un tema de la tabla de datos y luego obtiene las 5-10 publicaciones más recientes de ese tema.

Pasa a un agente de IA que maneja la clasificación. Toma una determinación. ¿Es este un tema que debería ser revivido? Si es así, cómo? Decide si el tema debe ser impulsado (bump) o si se debe hacer una publicación que reactive el tema: hace una pregunta, pide un seguimiento o no hace nada.

Actualiza la tabla de datos con la decisión.

(Esto debería ejecutarse aproximadamente con la misma frecuencia que la Fase A, también podrías activarlo desde la Fase A o combinarlo con ella).

Fase C: Reactivar el tema

Otro flujo de trabajo programado se ejecuta en su propia programación, no tan frecuentemente. Su primer paso es comprobar cuán activo ha sido el foro últimamente. Lo hace revisando cuántas publicaciones se han hecho en promedio por hora, durante las últimas 3 horas. Luego toma el promedio de cuán ocupado ha estado el foro en períodos de 3 horas, en el mismo día y hora durante los últimos 2 meses. Si el sitio no está tan ocupado como lo estaría normalmente en la misma hora del mismo día, dirá «podemos hacer una reactivación ahora».

Luego toma hasta 10 oportunidades de reactivación disponibles. Las envía a un agente de IA y le pide que saque al candidato más fuerte para una reactivación de la lista. La IA decide y devuelve un topic_id. El clasificador de la Fase B decidió entre 3 opciones: Impulsar tema, publicar seguimiento, no hacer nada.

El flujo de trabajo hará un impulso (bump) a menos que se designe un seguimiento. Si está destinado a un seguimiento, tomará el id del tema y obtendrá las publicaciones más recientes de ese tema. Lo entregará a un agente de IA que determinará cuál sería la mejor respuesta para reactivar el tema. Tiene salvaguardas para asegurar una respuesta muy básica, que aún esté en el tema y no dé recomendaciones ni proporcione comentarios. Principalmente solo pide una actualización, pregunta si el autor original tiene una actualización sobre algo que sucedió, etc. Publica la respuesta y luego actualiza la tabla de datos con la fecha de finalización.

¡Espero no haber duplicado alguna función oculta de Discourse de la que no sabía! Tomó algo de prueba y error, pero lo logré.

6 Me gusta

Aquí tienes algunos para generar informes semanales que estamos usando para mantener a nuestro equipo informado sobre las diversas actividades en Meta. Cada uno tiene un tema en la categoría de personal donde se publican los resultados.

Creo que deberían ser bastante genéricos, por si quieres probarlos en tu propio sitio. Solo deberías cambiar el ID del tema donde se comparten los resultados en el nodo final por un tema en tu propia categoría de personal.

(Puede que necesites editarlos manualmente antes de importarlos. Los sobrescribí manualmente como TOPIC_ID después de exportarlos para ayudar a evitar accidentes)

Informe semanal de moderación
archivo: weekly-moderation-report.json (21.4 KB)

  • Incluye tablas que listan:
    • resumen de moderación (conteos de diversas acciones de moderación)
    • número de banderas gestionadas por diferentes usuarios
    • número de banderas reportadas por diferentes usuarios
    • lista de publicaciones con bandera y sus metadatos asociados
    • advertencias emitidas
    • notas de usuario añadidas

Informe semanal de ajustes del sitio
archivo: weekly-site-settings-report.json (3.3 KB)

  • Incluye una tabla que lista los ajustes del sitio cambiados
    • nombre del ajuste
    • quién lo cambió y cuándo
    • valor antiguo, valor nuevo

Informe semanal de nivel de confianza
archivo: weekly-trust-level-report.json (9.8 KB)

  • Incluye tablas que listan:
    • resumen (número de usuarios propuestos para cada nivel de confianza en la última semana)
    • lista de usuarios que obtuvieron el nivel de confianza 2 o 3
8 Me gusta

Actualmente estamos utilizando Workflows de manera bastante extensa en nuestra comunidad de Discourse, y se están convirtiendo en una parte realmente útil de nuestro proceso de incorporación y gestión de eventos.

Nuestra comunidad tiene más de 9.000 usuarios registrados y muchos grupos de apoyo entre pares, tanto en línea como locales, por lo que la automatización nos ayuda mucho.

Aquí hay algunos de los flujos de trabajo que utilizamos actualmente:

:waving_hand: Incorporación personalizada

Los nuevos usuarios reciben mensajes personales automatizados después de registrarse.

El contenido depende de los intereses que seleccionaron durante el registro (por ejemplo, grupos de apoyo entre pares, eventos, nuestro café virtual, body doubling o intercambio escrito).

Unos días después, reciben un segundo mensaje de seguimiento con información adicional y ayuda para empezar.

:date: Recordatorios de eventos

Utilizamos un flujo de trabajo programado que verifica cada 15 minutos si hay eventos que comienzan en aproximadamente 24 horas.

Los usuarios que seleccionaron Asistiré o Interesado reciben un recordatorio personal con el título del evento, la fecha, la hora y un enlace de vuelta al evento.

También tenemos algunos grupos con sus propios flujos de trabajo de recordatorio, por lo que el flujo de trabajo general excluye a esos usuarios para evitar recordatorios duplicados.

:laptop: Instrucciones contextuales de alfaview

Muchos de nuestros grupos de apoyo entre pares en línea se reúnen a través de alfaview, mientras que otros eventos se llevan a cabo a través de Zoom o de forma local.

Por lo tanto, verificamos la publicación del evento en busca de un enlace de alfaview.

Si está presente un enlace de alfaview, el recordatorio de 24 horas incluye automáticamente una guía paso a paso expandible que explica cómo ingresar a la sala de espera y luego seleccionar la sala de reunión correcta, incluida una captura de pantalla.

Si no hay un enlace de alfaview, se envía el recordatorio normal sin estas instrucciones.

Esto significa que no tenemos que mantener listas de grupos “en línea” y “presenciales”.

:door: Incorporación a videoconferencias

También utilizamos flujos de trabajo de formularios como un breve paso de incorporación antes de que los usuarios accedan a nuestras salas de videoconferencia por primera vez.

Los usuarios reciben instrucciones que explican cómo funciona la estructura de nuestras salas de alfaview. Después de leerlas, pueden elegir si desean ver las instrucciones nuevamente la próxima vez.

Si eligen no verlas de nuevo, el flujo de trabajo los agrega a un grupo marcador. Nuestro componente de tema luego utiliza esa membresía de grupo para mostrar el enlace directo de videoconferencia en lugar del formulario de incorporación.

:bell: Notificaciones específicas de grupo

Utilizamos flujos de trabajo para notificar a los miembros de grupos específicos sobre nuevos eventos y reuniones próximas.

Esto es especialmente útil para los grupos de apoyo entre pares, donde queremos que los miembros reciban una notificación independientemente de si visitan regularmente el foro o no.


Lo que me gusta especialmente de Workflows es que podemos combinar formularios, consultas SQL, grupos, verificaciones programadas y mensajes personales.

Aún hay algunas cosas que me encantaría ver en el futuro. Un ejemplo sería una mejor integración con el calendario: idealmente, cuando alguien selecciona Asistiré para un evento, nos encantaría enviarles automáticamente un correo electrónico con un archivo de calendario .ics adjunto.

7 Me gusta

Un caso de uso muy interesante, sin duda algo en lo que pensar @j.jaffeux / @martin / @lindsey.

Me pregunto si esto debería ser un flujo de trabajo o una función integrada en los eventos de Discourse.

4 Me gusta

Gracias por este gran feedback y por compartir vuestra experiencia; es genial leer cómo usáis los flujos de trabajo y cómo resuelven problemas reales para vuestras comunidades :heart:

Las funciones de paridad parecen ser un requisito básico, sin duda, pero esto debería ser factible esta semana mediante flujos de trabajo; tenemos algo en camino precisamente para esto.

6 Me gusta