Integración de chat de Discourse

:information_source: Chat Integration is for using an external chat system together with Discourse — you may be looking for Discourse Chat which adds Chat functionality directly to Discourse.

:discourse2: Summary Discourse Chat Integration allows you to integrate your chat system of choice with Discourse.
:open_book: Install Guide This plugin is bundled with Discourse core. There is no need to install the plugin separately.

Features

discourse-chat-integration allows sending notifications about new Discourse posts to ‘group chats’ on a number of instant messaging platforms.

Notifications can be triggered by new topics, new replies, messages to a group, or mentions of a group. A notification in your instant messaging system will look something like this:

Configuration

  1. In your site settings, check chat_integration_enabled is :heavy_check_mark:
  2. Click on one of the providers below to see provider-specific setup instructions
  3. For more details, read ‘Configuring Rules’ below
Provider Notifications Slash Commands Post Transcripts Threaded Replies
Slack :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Telegram :white_check_mark: :white_check_mark:
Discord :white_check_mark:
Mattermost :white_check_mark: :white_check_mark:
Google Chat :white_check_mark:
Matrix (element.io) :white_check_mark:
Zulip :white_check_mark:
Rocket.Chat :white_check_mark:
Gitter :white_check_mark:
Flowdock :white_check_mark:
Stride Docs
Microsoft Teams :white_check_mark:
Basecamp Docs
IRC Cloud Docs
Flock Docs
Webex :white_check_mark:

Terminology

There are three key concepts in discourse-chat-integration: Providers, Channels and Rules

Configuring Rules

In your forum’s admin panel, under Plugins, you should see a Chat Integrations section. Within that there will be tabs for each of your enabled providers:

Rules have a number of options which can be configured:

  • Type:
    • Normal - send notifications based on standard posts on the forum
    • Group Message - send notifications based on private messages which a specified group is a part of
    • Group Mention - send notifications whenever specified group is @mentioned in a standard post on the forum (mentions in private messages are ignored)
  • Filter:
    • All posts with threaded replies - notify for new posts matching this rule, create per-topic threads on the chat provider (not available in all integrations)
    • All posts and replies - notify for new posts matching this rule
    • First post only - notify only for new topics matching this rule
    • Tag added to topic - notify when a tag is added to a topic (the create post for category and tag changes site setting must be enabled for this to work)
    • Mute - prevent notifications matching this rule
  • Category (if type is ‘Normal’)
    • Match posts based on their category. Leave as “(all categories)” to match all posts on the forum
  • Group (if type is ‘Group Message’ or ‘Group Mention’)
    • Specify the group you want to receive notifications for
  • Tags
    • Enter a list of tags to match posts with at least one of the listed tags. Leave blank to match all posts

Multiple rules

When multiple rules match a post, the top-most rule in the user interface is executed. Rules are first sorted according to the criteria:

  1. Group mentions
  2. Group messages
  3. Normal

and then sorted within that by

  1. Mute
  2. All posts and replies
  3. First post only

For example, with the following rules

Filter Category Tags
All posts and replies Mentions of: @team (all tags)
Mute Support (all tags)
First post only Support unsupported-install
All posts and replies (all categories) (all tags)
Notifications would be triggered for

but not for

Security/Permissions

The site setting “chat integration discourse username” allows you to secure your notifications against leaking private information.

By default the system account is used, which means that there is no restriction on notifications sent. To secure your notifications you should create a non-staff user with appropriate access privileges, and enter its username in the site setting.

Slash Commands

If your provider supports slash commands, you can manage rules from within your chat interface. Each provider varies slightly in syntax, but in general they follow a similar structure. (Note that at this time, only the Slack integration implements threads.)

The commands available are

Posting a transcript

If your provider supports transcript posting, you can post your instant messaging history to discourse. This is currently only supported for the Slack provider. Note: You will need to be using the “Access Token” method of connecting to Slack.

Send /discourse post to see the interface. The plugin will try and “guess” where your current conversation starts, by looking for a gap in the message history of more than 3 minutes.

Alternatively, you can specify a number of posts after the command, or a URL to the first message.

To load a transcript for a Slack thread, you can use /discourse post thread {url}, where {url} is the permalink of the first message in the thread. For example:

/discourse post thread https://<slackname>.slack.com/archives/C6029G78F/p1522952993000017

Alternatively, you can use /discourse post with a thread-specific permalink like this:

/discourse post https://foo.slack.com/archives/G49KKS6AX/p1523062012000911?thread_ts=1523091738.000088&cid=G49KKS6AC

In both cases the “first/last message” UI is skipped - the entire thread is included in the transcript.

Adding new providers

Option 1: Submit a PR implementing your provider:

Option 2: Use your own plugin:
It is possible for third party plugins to register new “providers”. As an example, I’ve created a provider which sends webhooks to IFTTT. This could be used to automatically publish all posts in a category to facebook… or turn on your light when someone posts in Feature… or feed your fish whenever there’s a new Plugin.

CHANGELOG

TODO

Last edited by @tobiaseigen 2025-07-16T21:09:49Z

Check documentPerform check on document:
115 Me gusta

Sería interesante agregar soporte para el propio Discourse ActivityPub Plugin para que la publicación se pueda activar en función de etiquetas y otros filtros de la integración de chat.

1 me gusta

Hola, el año pasado Telegram anunció foros/temas (minichats dentro de chats grupales). Intenté conectar cada minichat individual a una u otra categoría de mi sitio. Pero, según entiendo, ¿las direcciones de los temas no son compatibles con el plugin? Por ejemplo, en mi caso, cada tema tiene una dirección como sigue: @telegram_topic /1, @telegram_topic /2, @telegram_topic /3
Si inserto un nombre de chat estándar en la línea, por ejemplo @telegram_chat, funciona sin problemas.
Sería muy conveniente si el plugin tuviera la capacidad de insertar direcciones de chat similares (../1), entonces los usuarios no tendrían que ser suscriptores de muchos canales independientes vinculados a ciertas categorías del sitio.

1 me gusta

¿Has considerado usar etiquetas para lograr esto?

:thinking: Creo que usar etiquetas no es del todo adecuado para mi caso. Porque incluso con la ayuda de etiquetas, no querría que todas las notificaciones fueran a un solo canal, creando ruido de información. Al mismo tiempo, en lugar de tener 20 canales para 20 categorías/etiquetas, preferiría tener un chat grupal donde pudiera organizar varios minichats temáticos (por categoría/etiqueta) donde cada usuario pueda ver el minichat que necesita y la capacidad de mirar en otros minichats. Me molesta mucho porque en mi región (Asia) la mayoría de la gente usa chats de WhatsApp y Telegram; los foros no son populares. Pero estoy tratando de encontrar un compromiso).\n\nPs. Si me repito a menudo, no me juzgues, solo estoy tratando de transmitir mis pensamientos correctamente, ya que uso el traductor de Google.

1 me gusta

Deberías poder filtrar qué etiquetas se aplican a qué chats, al menos según lo entiendo.

Me parece que estamos hablando de cosas diferentes :thinking: No tengo ninguna pregunta sobre el filtrado de chats por etiquetas/categorías.
Como contexto. Anteriormente, Telegram tenía canales y chats (excepto bots). Estos canales/salas de chat tienen un nombre de usuario, aproximadamente @nombre_de_usuario_chat o @nombre_de_usuario_canal.
Desde el año pasado, Telegram tiene la oportunidad de convertir chats en foros que contienen minichats temáticos como este. Estos minichats tienen sus propios nombres de usuario, por ejemplo @nombre_de_usuario_chat /1, @nombre_de_usuario_chat /2. La conveniencia de tales chats con minichats es que el usuario ya no necesita suscribirse a varios chats separados entre sí, sino que solo se suscribe a un chat (por ejemplo, con el nombre de mi sitio) y tiene acceso a muchos minichats (en mi caso, cada minichat se dirigiría a una categoría específica del sitio) que interesan al usuario.
Ahora quiero conectar estos minichats a este plugin, pero me parece que el plugin no admite el nombre de usuario del minichat como nombre_de_usuario_chat /1.

1 me gusta

¿Hay alguna forma de crear una regla para etiquetar un nuevo mensaje y/o una respuesta para que no se publique en el sistema de chat de destino (en este caso, Slack)?

Hola Albert, si hablamos de etiquetas normales de Discourse, puedes configurar un filtro de ‘silenciar’ para evitar que los temas con esa etiqueta activen notificaciones en Slack.

Pero en cuanto a publicaciones individuales, no hay forma de filtrarlas.

1 me gusta

Creo que tengo el mismo deseo que tú, Aizada:

Me encantaría poder tener un chat grupal de Telegram, con temas habilitados (que correspondan de alguna manera a las categorías en Discourse), y luego, en la configuración de integración de Discourse/Chat, especificar a qué tema debe publicar.

He intentado crear un chat grupal con temas ahora (solo con el bot y yo), pero cuando escribo /help dentro de un tema, el bot responde en el chat general.

¿Has investigado esto @david? Encontré este hilo de Stack Overflow, que muestra cómo obtener el message_thread_id (que es el id del tema) y dice que la API del bot obtuvo soporte para esto en la versión 6.3.

¡Gracias por tu trabajo de todos modos! :heart_hands:t2:

1 me gusta

Hola @ErlendMS :wave:. No tenemos ninguna mejora para este plugin en nuestra hoja de ruta en este momento, pero si alguien quisiera agregar soporte para ‘hilos’ (también conocido como tema) para la integración de Telegram, probablemente sería pr-welcome.

Tenemos algo de soporte para hilos en la integración de Slack, por lo que debería ser posible reutilizar parte de esa lógica.

3 Me gusta

¿Es posible usar este plugin para recibir notificaciones en Slack cada vez que se marca una publicación para su revisión? Gracias.

¿Este plugin expone funciones de API adicionales?

¿Dónde solicito una revisión de PR? Envié este PR a finales de la semana pasada para agregar un nuevo proveedor y todavía está pendiente de un revisor. He buscado en diferentes guías de desarrollador en meta y no he encontrado una para solicitudes de PR adecuadas.

Aquí está mi PR: FEATURE: Added Power Automate as a new provider by benoitdesnoyers · Pull Request #204 · discourse/discourse-chat-integration · GitHub

Gracias,

1 me gusta

Hola a todos. Acabamos de fusionar esta PR para el plugin de integración de chat.

Este cambio tiene como objetivo eliminar la opción tags_changed del filtrado de reglas de la integración de chat. Estamos haciendo este cambio porque estamos eliminando la configuración de “Creación de una pequeña publicación de acción cuando la categoría o las etiquetas de un tema cambian”.

Pero la funcionalidad seguirá siendo la misma, si tienes Discourse Automation instalado. La próxima vez que ejecutes las migraciones para este plugin, agregará un script al plugin de Discourse Automation que se ejecutará de manera similar a lo que tenemos actualmente.

Este es un ejemplo de automatización que se creará:

Se enviará a mi canal según las categorías y las etiquetas que estoy observando.

${ADDED_AND_REMOVED} es el texto predeterminado; se comportará igual que la regla.

También hemos agregado para esta opción de script algunas opciones que se pueden usar en el mensaje:

  • ${TOPIC} para el nombre del tema
  • ${REMOVED_TAGS} para las etiquetas eliminadas
  • ${ADDED_TAGS} para las etiquetas agregadas
    ambos, eliminados y agregados, solo se activarán si tienen una etiqueta.
    Por ejemplo: el mensaje added: ${ADDED_TAGS} solo se activará si hay etiquetas agregadas.
4 Me gusta

Tuvimos un problema con la otra PR (los usuarios que usaron otros proveedores no pudieron usar la automatización cuando cambiaron las etiquetas de los temas), así que para solucionarlo, hemos hecho esta nueva PR, donde tenemos en cuenta cada proveedor.

La configuración Creación de una publicación de acción pequeña cuando cambia la categoría o las etiquetas de un tema no aparecerá en la integración de chat.

Si tienes instalado discourse automation, la próxima vez que ejecutes las migraciones para este plugin, se agregará un script al plugin de automatización de discourse que funcionará de manera similar a lo que tenemos actualmente.


Tus automatizaciones se verán algo así:

Y tus proveedores son los proveedores habilitados.

Por ejemplo, tengo habilitados Discord, Slack, Telegram y Google Chat.

Tu nombre de canal es el nombre que le diste en la configuración de integración de chat.

Por ejemplo, el nombre aquí es Spidey.

3 Me gusta

Tenemos un nuevo lote de cambios para Automation/chat-integration

En este nuevo lote, los cambios notables son:

  • Agregamos Trigger with PMs (Activar con mensajes privados), que te permite controlar si esta automatización debe activarse incluso en mensajes privados.
  • Se resolvió un problema por el cual el disparador Topic tags changed (Etiquetas de tema cambiadas) se activaba durante la creación de temas.
3 Me gusta

Como se mencionó anteriormente – aquí

La configuración del sitio create post for category and tag changes (crear publicación para cambios de categoría y etiqueta) actualmente puede filtrar etiquetas/categorías privadas; una forma que encontramos para mantener esa función fue moverla a los susurros:

Funciona de manera similar a las publicaciones pequeñas, pero ahora, necesitas tener whisper allowed groups (grupos permitidos para susurros) con algún grupo para que funcione.

He fusionado un PR para el núcleo con este cambio y uno para chat-integration, eliminando el uso de esa configuración; la función de automatización agregada debería ser 1:1 con la acción pequeña si alguien tiene algún problema, ¡por favor háganoslo saber!

3 Me gusta

Tengo algunas actualizaciones más para este plugin :steam_locomotive:

Hemos agregado el campo trigger on para la automatización Send Chat-Integration message.

¿Qué hace?

Comprueba cuándo las etiquetas son:

  • Added and Removed (predeterminado)
  • Added
  • Removed

Actualmente, esta verificación es inclusiva.

Un buen ejemplo es si lo configuro en Added; para que esta automatización se ejecute, será necesario que se agregue cualquier etiqueta a un tema.

Cuando se establece Tags added, la tabla de automatización se ve así:

Added tag to topic Removed Tag to topic Has automation ran?
:white_check_mark: :cross_mark: :white_check_mark:
:white_check_mark: :white_check_mark: :white_check_mark:
:cross_mark: :white_check_mark: :cross_mark:

Cuando se establece Tags removed, la tabla de automatización se ve así:

Removed tag to topic Added Tag to topic Has automation ran?
:white_check_mark: :cross_mark: :white_check_mark:
:white_check_mark: :white_check_mark: :white_check_mark:
:cross_mark: :white_check_mark: :cross_mark:
2 Me gusta


Asunto: No se puede acceder a la sección de Plugins para la configuración de Integración de Chat

Hola,

Soy administrador del foro LXDAO y estoy intentando configurar el plugin Discourse Chat Integration para conectarlo con Telegram. Según la documentación oficial, debería poder configurarlo en la sección Plugins del panel de administración.

Sin embargo, en mi panel de administración, solo tengo acceso a cuatro secciones: General, Moderación, Seguridad e Informes. La sección Plugins mencionada en la documentación no parece estar disponible.

¿Podrían ayudarme a entender:

  1. ¿Está el plugin de Integración de Chat ya instalado en nuestro foro?
  2. ¿Necesito permisos adicionales para acceder a la sección Plugins?
  3. Si estamos utilizando una solución Discourse alojada, ¿existen limitaciones con respecto a la instalación/configuración de plugins?

Como administrador, ¿qué pasos debo seguir para configurar correctamente la integración de Telegram para nuestra comunidad?

¡Gracias por su ayuda!