Integração do Chat 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 curtidas

Seria interessante adicionar suporte ao próprio Discourse ActivityPub Plugin para que a publicação pudesse ser acionada com base em tags e outros filtros da integração de chat.

1 curtida

Olá, no ano passado o Telegram anunciou fóruns/tópicos (mini chats dentro de chats em grupo). Tentei conectar cada mini chat individual a uma ou outra categoria do meu site. Mas, pelo que entendi, os endereços de tópicos não são suportados pelo plugin? Por exemplo, no meu caso, cada tópico tem um endereço como o seguinte: @telegram_topic /1, @telegram_topic /2, @telegram_topic /3
Se eu inserir um nome de chat padrão na linha, por exemplo @telegram_chat, ele funciona sem problemas.
Seria muito conveniente se o plugin tivesse a capacidade de inserir endereços de chat semelhantes (../1), então os usuários não teriam que ser assinantes de muitos canais independentes vinculados a certas categorias do site.

1 curtida

Você já considerou usar tags para conseguir isso?

:thinking: Acho que usar tags não é totalmente adequado para o meu caso. Porque mesmo com a ajuda de tags, eu não gostaria que todas as notificações fossem para um único canal, criando ruído de informação. Ao mesmo tempo, em vez de ter 20 canais para 20 categorias/tags, eu preferiria ter um grupo de chat onde eu pudesse organizar vários mini-chats temáticos (por categoria/tag) onde cada usuário pudesse ver aquele que ele precisa e a capacidade de olhar para outros mini-chats. Estou tão incomodado porque na minha região (Ásia) a maioria das pessoas usa chats do WhatsApp e Telegram - fóruns não são populares. Mas estou tentando encontrar um compromisso).\n\nPs. Se eu me repetir com frequência, não me julgue, estou apenas tentando transmitir meus pensamentos corretamente, pois uso o Google Tradutor.

1 curtida

Você deve ser capaz de filtrar quais tags se aplicariam a quais chats, pelo menos pelo que estou entendendo.

Parece que estamos falando de coisas diferentes :thinking: Eu não tenho uma pergunta sobre filtrar chats por tags/categorias.
Para contexto. Anteriormente, o Telegram tinha canais e chats (exceto por bots). Esses canais/salas de chat têm um nome de usuário, aproximadamente @nome_de_usuario_chat ou @nome_de_usuario_canal.
Desde o ano passado, o Telegram tem a oportunidade de transformar chats em fóruns contendo mini chats temáticos como este. Esses mini chats têm seus próprios nomes de usuário, por exemplo @nome_de_usuario_chat /1, @nome_de_usuario_chat /2. A conveniência de tais chats com mini chats é que o usuário não precisa mais se inscrever em vários chats separados uns dos outros, mas apenas se inscrever em um chat (por exemplo, com o nome do meu site) e ter acesso a muitos mini chats (no meu caso, cada mini chat visaria uma categoria específica no site) que são de interesse do usuário.
Agora quero conectar esses mini chats a este plugin, mas parece que o plugin não suporta o nome de usuário do mini chat como nome_de_usuario_chat /1.

1 curtida

Existe uma maneira de criar uma regra onde eu possa marcar uma nova mensagem e/ou resposta para que ela não seja postada no sistema de chat de destino (neste caso, Slack)?

Olá Albert, se estivermos falando sobre tags normais do Discourse, você pode configurar um filtro de ‘mutar’ para impedir que tópicos com essa tag acionem notificações no Slack.

Mas em termos de posts individuais, não há como filtrá-los.

1 curtida

Eu acho que tenho a mesma vontade que você, Aizada:

Eu adoraria poder ter um grupo de chat no Telegram, com tópicos ativados (que correspondem de alguma forma às categorias no Discourse), e então, nas configurações de integração do Discourse/Chat, especificar para qual tópico ele deve postar.

Tentei criar um grupo de chat com tópicos agora (apenas com o bot e eu), mas quando digito /help dentro de um tópico, o bot responde no chat geral.

Você já deu uma olhada nisso, @david? Encontrei este tópico no Stack Overflow, que mostra como obter o message_thread_id (que é o ID do tópico) e diz que a API do bot teve suporte para isso na versão 6.3.

Obrigado pelo seu trabalho de qualquer forma! :heart_hands:t2:

1 curtida

Olá @ErlendMS :wave:. No momento, não temos nenhuma melhoria planejada para este plugin em nosso roteiro, mas se alguém quisesse adicionar suporte a ‘threading’ (também conhecido como tópico) para a integração do Telegram, provavelmente seria pr-welcome.

Temos algum suporte a threading na integração do Slack, então deve ser possível reutilizar parte dessa lógica.

3 curtidas

É possível usar este plugin para receber notificações no Slack sempre que uma postagem for sinalizada para revisão? Obrigado.

Este plugin expõe funções adicionais de API?

Onde solicito uma revisão de PR? Submeti este PR no final da semana passada para adicionar um novo provedor e ele ainda está aguardando um revisor. Procurei em diferentes guias de desenvolvedor no meta e não encontrei um para solicitações de PR adequadas.

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

Obrigado,

1 curtida

Olá pessoal! acabamos de mesclar este pr para o plugin de integração de chat

Esta alteração visa remover a opção tags_changed da filtragem de regras da integração de chat – estamos fazendo essa alteração porque estamos removendo a configuração Criação de um pequeno post de ação quando a categoria ou as tags de um tópico mudam.

Mas a funcionalidade permanecerá a mesma, se você tiver o discourse automation instalado. Na próxima vez que você executar as migrações para este plugin, ele adicionará um script ao plugin discourse automation que funcionará de forma semelhante ao que temos atualmente.

Este é um exemplo de automação que será criada:

Será enviado para o meu canal com base nas categorias e tags que estou observando.

${ADDED_AND_REMOVED} é o texto padrão; ele se comportará da mesma forma que a regra faria.

Também adicionamos para esta opção de script algumas opções que podem ser usadas na mensagem:

  • ${TOPIC} para o nome do tópico
  • ${REMOVED_TAGS} para as tags removidas
  • ${ADDED_TAGS} para as tags adicionadas
    ambos removidos e adicionados só serão acionados se tiverem uma tag neles.
    Por exemplo: a mensagem added: ${ADDED_TAGS} só será acionada se houver tags adicionadas
4 curtidas

Tivemos um problema com o outro PR (usuários que usaram outros provedores não puderam usar a automação quando as tags de tópico mudavam), então, para resolvê-lo, fizemos este novo PR, onde consideramos todos os provedores.

A configuração Criação de uma postagem de ação pequena quando a categoria ou as tags de um tópico mudam não aparecerá na integração de chat.

Se você tiver o discourse automation instalado, da próxima vez que executar as migrações para este plugin, ele adicionará um script ao plugin discourse automation que funcionará de forma semelhante ao que temos atualmente.


Suas automações se parecerão com algo assim:

E seus provedores são os provedores habilitados.

Por exemplo, tenho Discord, Slack, Telegram e Google Chat habilitados.

Seu nome do canal é o nome que você deu nas configurações de integração de chat.

Por exemplo, o nome aqui é Spidey.

3 curtidas

Temos um novo lote de alterações para Automation/chat-integration

Neste novo lote, as alterações notáveis são:

  • Adicionamos Trigger with PMs, que permite controlar se essa automação deve ser acionada mesmo em mensagens privadas.
  • Solucionamos um problema em que a automação do gatilho Topic tags changed estava sendo acionada durante a criação de tópicos.
3 curtidas

Como mencionado anteriormente – aqui

A configuração do site create post for category and tag changes (criar postagem para alterações de categoria e tag) atualmente pode vazar tags/categorias privadas; uma maneira que encontramos para manter esse recurso foi movê-lo para whispers:

Funciona de forma semelhante a pequenas postagens, mas agora, você precisa ter whisper allowed groups (grupos permitidos para sussurros) com algum grupo para fazê-lo funcionar.

Mesclei um PR para o core com essa alteração e um para chat-integration, removendo o uso dessa configuração; o recurso de automação adicionado de volta deve ser 1:1 com a pequena ação se alguém tiver algum problema, por favor, nos informe!

3 curtidas

Tenho mais algumas atualizações para este plugin :steam_locomotive:

Adicionamos o campo trigger on para a automação Send Chat-Integration message.

O que faz?

Ele verifica quando as tags são:

  • Adicionadas e Removidas (padrão)
  • Adicionadas
  • Removidas

Atualmente, essa verificação é inclusiva.

Um bom exemplo é se eu definir como Adicionadas; para que essa automação seja executada, será necessário que qualquer tag seja adicionada a um tópico.

Quando Tags adicionadas é definido, a tabela de automação fica assim:

Tag adicionada ao tópico Tag removida do tópico A automação foi executada?
:white_check_mark: :cross_mark: :white_check_mark:
:white_check_mark: :white_check_mark: :white_check_mark:
:cross_mark: :white_check_mark: :cross_mark:

Quando Tags removidas é definido, a tabela de automação fica assim:

Tag removida do tópico Tag adicionada ao tópico A automação foi executada?
: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 curtidas


Assunto: Impossível acessar a seção Plugins para configuração de Integração de Chat

Olá,

Sou administrador do fórum LXDAO e estou tentando configurar o plugin Discourse Chat Integration para conectar com o Telegram. De acordo com a documentação oficial, eu deveria conseguir configurar isso na seção Plugins do painel de administração.

No entanto, no meu painel de administração, tenho acesso apenas a quatro seções: Geral, Moderação, Segurança e Relatórios. A seção Plugins mencionada na documentação não parece estar disponível.

Você poderia me ajudar a entender:

  1. O plugin Chat Integration já está instalado em nosso fórum?
  2. Preciso de permissões adicionais para acessar a seção Plugins?
  3. Se estivermos usando uma solução Discourse hospedada, existem limitações em relação à instalação/configuração de plugins?

Como administrador, quais passos devo seguir para configurar corretamente a integração do Telegram para nossa comunidade?

Obrigado pela sua ajuda!