Automatización de Discourse

:discourse2: Summary Discourse Automation lets you automate actions through scripts and triggers. Customisation is made through an automatically generated UI.
:open_book: Install Guide This plugin is bundled with Discourse core. There is no need to install the plugin separately.

Features

  • Easy automation of complex workflows
  • Triggers automations at specific dates, periodically, or on specific events
  • Provides automatically generated UIs to specify options for your automation

Configuration

Automations can be created and updated from Admin → Plugins → Automations, or directly from /admin/plugins/discourse-automation.

Available scripts

Guide Script Trigger(s) Description
:bookmark: Add user to group through custom field :black_small_square:Recurring
:black_small_square:First logged on
Adds a user to a group based on a Custom User Field
:bookmark: Append last checked by :black_small_square:After post cook Adds a ‘last checked by’ function to the bottom of the OP
:bookmark: Append last edited by :black_small_square:After post cook Adds a ‘last edited by’ note to the bottom of the OP
:bookmark: Auto Responder :black_small_square:Post edited/created
:black_small_square:PM created
Given a series of keywords and associated replies, automatically respond with the corresponding reply
Auto Tag topic :black_small_square:Post created/edited
:black_small_square:PM created
Automatically tag a topic
Close topic :black_small_square:Point in time
:black_small_square:Stalled wiki
Automatically close a topic
Create Post :black_small_square:Recurring
:black_small_square:Point in time
Creates a post
Flag post on Words :black_small_square:Post edited/created Flag a topic on creation/edition if it contains specific words
Gift Exchange :black_small_square:Point in time Simple implementation of the Secret Santa game
Group Category Notification Default :black_small_square:Category created/edited Automatically sets a group notification level for newly created subcategories
Make banner topic :black_small_square:Point in time Convert a topic into a banner notice
Pin Topic :black_small_square:Point in time Pin and Unpin a topic in the future
Random Assign
(Assign)
:black_small_square:Point in time
:black_small_square:Recurring
Randomly Assign a topic
Schedule a PM with data explorer results
(Data Explorer)
:black_small_square:Recurring Send a regular PM with the results of a data explorer query
Send Chat message
(Chat)
:black_small_square:Event started
:black_small_square:Recurring
Sends a Chat message to a Channel
Send PMs :black_small_square:First accepted solution (Solved)
:black_small_square:User badge granted
:black_small_square:User added to group
:black_small_square:Stalled wiki
:black_small_square:Recurring
:black_small_square:User promoted
:black_small_square:API call
:black_small_square:User removed from group
Send PMs with support for placeholders
Suspend User By Email :black_small_square:API call Suspend a user for a specified duration
Topic required words :black_small_square:Topic Enforce the presence of at least one of the specified words in the posts of a topic
:bookmark: Triage posts using AI (Discourse AI) :black_small_square:Post created/edited Enhance the management and moderation of forum posts by automating the process of classifying posts
User Global Notice :black_small_square:Stalled topic
:black_small_square:First accepted solution (Solved)
Displays a global notice on the site for a specific user
:bookmark: User Group Membership through Badge :black_small_square:Recurring
:black_small_square:User first logged in
Automatically add users to a group based on their earned badges
Zapier webhook :black_small_square:User promoted
:black_small_square:User added to group
:black_small_square:User badge granted
:black_small_square:User removed from group
Calls a Zapier webhook

Available triggers

Note that due to their nature, each script only supports certain triggers. For example it wouldn’t make sense for a script enforcing the content of a post to trigger when a user is added to a group.

All of the available triggers are mentioned in the “Available scripts” table above.

Most of the triggers are self-explanatory, but here are a couple that may need a little more detail:

Trigger Description
After post cook Triggers after a post is rendered for display
API Call Triggers when a certain API endpoint is called
Stalled wiki Triggers when a wiki hasn’t been edited for a while
Stalled topic Triggers when a topic has not received replies after a certain time
Topic Triggers when a reply is made to a topic

If you need any clarification on any others please feel free to ask below. :slight_smile:

More scripts and triggers to come!

Custom Automations

You can also create custom Automations. :partying_face: Check out our developer’s guide for more information - Create custom Automations


:discourse2: Hosted by us? This plugin is available on our Business and Enterprise plans. Automation | Discourse - Civilized Discussion

Last edited by @tobiaseigen 2025-07-16T20:41:38Z

Check documentPerform check on document:
73 Me gusta

Solo para que lo sepas, he actualizado el OP con una tabla de todas las automatizaciones existentes y sus desencadenantes correspondientes. :+1:

(También espero añadir más guías, ya que la de ‘Añadir usuario a grupo…’ parece un poco solitaria por sí sola :slight_smile:)


Se han añadido un par de tutoriales más para Setting up the ‘Append last edited by’ automation y Setting up the 'Append last checked by' automation. :tada:
Y un nuevo script, Membresía de grupo de usuarios a través de insignias. :partying_face: Ese está recién salido del horno, así que si lo pruebas, dinos cómo te va. :+1:

10 Me gusta

Ahora me siento muy, muy… no estúpido, pero casi. ¿Dónde puedo crear automatizaciones? En Complementos, solo puedo habilitar o deshabilitar Automatización.

3 Me gusta

Después de habilitar el plugin, deberías ver un nuevo elemento aquí:

Es posible que necesites actualizar la página para verlo.

3 Me gusta

Y ahora me siento muy estúpido :man_facepalming:

Gracias.

1 me gusta

Yo también me he quedado atascado en ese antes :slight_smile:

Las respuestas a este tema probablemente deberían configurarse para eliminarse automáticamente después de 30 días. Al menos esta respuesta debería.

2 Me gusta

Ya no hacemos eso para los temas de plugins official. Se ha perdido demasiada buena información en los temporizadores de los temas. Ahora los curamos manualmente y dividimos cualquier discusión significativa en temas etiquetados por separado (además de animar a las personas a iniciar temas separados desde el principio). :+1:

18 Me gusta

Se dividió una publicación en un nuevo tema: Automatización para cerrar temas resueltos y publicar una respuesta de plantilla

:information_source: Discourse Automation ahora se ha incluido en el núcleo de Discourse, por lo que este plugin ya no necesitará instalarse por separado. :partying_face:

:discourse2: ¿Alojado por nosotros? Este cambio no te afectará de ninguna manera. :+1: Si estás en los planes Business o Enterprise, puedes seguir disfrutando de este plugin y no preocuparte por nada.

6 Me gusta

¿Existe un script de automatización que pueda cambiar la categoría? Me gustaría usarlo para crear un sistema de “Publicación programada” más flexible.

Imagino que el script:

  • se ejecutaría periódicamente y
  • buscaría temas en una categoría determinada que tengan algún marcador en una respuesta (como, marcado como resuelto o la respuesta contiene cierto texto, como “PUBLICAR”).
  • Si la fecha de esa respuesta (o el estado de “resuelto”) es anterior a un desplazamiento determinado (como, ayer o una semana),
  • eliminaría todas las respuestas
  • movería a la categoría dada
  • opcionalmente, añadiría etiquetas configurables.

Una versión más sofisticada podría buscar una fecha/hora en la respuesta desencadenante y publicar si es ahora después de esa fecha/hora.

También podría buscar la categoría de destino en esa publicación (con configuración de script para categorías de destino permitidas). Y, para el caso, etiquetas.

3 Me gusta

Esto es factible, pero ahora mismo no existe nada parecido.

1 me gusta

Hola, no entiendo el caso de uso de este disparador. Parece que puede enviar un mensaje privado, ¿pero a quién? Dado que una wiki puede ser editada por varios usuarios. Gracias.

Tú decides en la interfaz de usuario quién va a recibir el mensaje privado.

1 me gusta

¿Hay alguna forma de crear un script personalizado?

Este tema, la persona busca una forma de que los mensajes privados requieran moderación.

Así que me imagino

  • Disparador Crear PM
  • Marcado automático para revisión.

Creo que sí:

Aunque requeriría algunas habilidades de desarrollo.

4 Me gusta

Eso es bastante genial. Imagina que el Op en el tema que enlacé podría considerar patrocinar un script dependiendo de la urgencia que necesiten esa funcionalidad.

Gracias Jammy por la rápida respuesta. Como siempre, una gran fuente de conocimiento.

2 Me gusta

Hola, no entiendo cómo funciona esto. Tengo un campo de usuario personalizado que puede tomar dos valores: Sí o No (desplegable). Pero al crear la automatización, solo se me pide el nombre del campo personalizado, no su valor. ¿Cómo puedo activar la automatización para añadir a este usuario al grupo si no puedo probar el valor del campo personalizado? Gracias.

El valor del campo personalizado tiene que coincidir con el nombre del grupo. Así que si tu pregunta es “¿qué prefieres?” y tus respuestas son “perros” y “gatos”, los nombres completos de los grupos deben ser “perros” y “gatos”. No puedes llamarlos “amantes de los perros” y “amantes de los gatos”.

Hay una pista en la guía enlazada

pero yo tampoco lo entendí al principio.

1 me gusta

Ok, lo entiendo ahora, así que mi caso de uso no es posible: tener un campo personalizado al que puedas responder Sí o No porque el nombre del grupo debería ser Sí o No… :roll_eyes:

1 me gusta

¿Puedo “Etiquetar automáticamente publicaciones” basándome en palabras clave dentro de la publicación o el título de la publicación? Parece que solo puede etiquetar automáticamente cosas basándose en el grupo o la categoría, lo cual no es muy útil en mi caso.