Discourse Chat Integrations

: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
:open_book: Install Guide

The Discourse Chat Integration plugin lets you send messages in your preferred chat platform when something happens in Discourse.

Messages can be triggered by:

  • New topics
  • New replies
  • Messages to a group
  • Mentions of a group

Functionality by provider

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:
Stride Docs
Microsoft Teams :white_check_mark:
Basecamp Docs
IRC Cloud Docs
Flock Docs
Webex :white_check_mark:

:warning: Before you enabling Slash Commands for your provider, make sure to read the Security/Permissions section below!

Configuration

There are three key concepts in this plugin:

  • Providers: The chat platform that you’re connecting to (e.g., Slack, Discord, etc.).
  • Channels: A single chat area in your platform (e.g., channel, group chat, room, etc.). Each provider can have multiple channels.
  • Rules: The instructions for when and how Discourse should send a message to a channel. Each channel can contain multiple rules.

Configuring providers

  1. Go to Admin > Installed Plugins and ensure that the Chat Integrations plugin is enabled.
  2. Click Settings.
  3. Choose the chat platform that you’d like to connect to Discourse.

  1. For some providers (e.g., Discord), you’ll be directed straight to the next step (channel configuration). Others will ask for special information, which you’ll need to get from your chat platform.

Dedicated setup instructions for chat platforms

Configuring channels

Once you have configured a provider, you can now configure channels for that provider. From the Chat Integration plugin page, click Add channel and provide the requested information — typically a webhook URL and/or channel name, depending on the provider.

Configuring rules

After your channel is connected, you can click Create rule to create a new rule for when your community should send a message to your provider channel.

The main components of a rule are:

  • Type: What type of community content should trigger a chat message?
    • Normal: Send chats for topics in the selected category.
    • Group message: Send chats when a PM is sent to the selected group.
    • Group mention: Send chats when the selected group is mentioned.
  • Filter: You can optionally filter the rule so that it only sends chats in certain situations.
    • All posts with threaded replies: Send chats for all posts matching this rule, with replies threaded in the chat platform. This option is not available for all integrations.
    • All posts and replies: Send chats for all posts and replies that match this rule.
    • First post only: Only send chats for the first post in a topic or message that matches this rule.
    • Tag added to topic: When the create post for category and tag changes site setting is enabled, send a chat when someone adds adds a tag to a topic.
    • Mute: Do not send chats that match this rule. This is useful for carving out an exception to another broader rule.
  • Group: If you selected Group message or Group mention as the Type, select the group whose received PMs / mentions should trigger the chat.
  • Category: If you selected Normal as the Type, optionally select the category that a topic must be posted in to trigger the chat.
  • Tags: Optionally select one or more tags that matching topics must have at least one of to trigger the chat message.

What happens when there are multiple rules?

Rules are sorted first by type then by the filter:

  1. Group mentions
    1. Mute
    2. All posts and replies
    3. First post only
  2. Group messages
    1. Mute
    2. All posts and replies
    3. First post only
  3. Normal (i.e. topics)
    1. Mute
    2. All posts and replies
    3. First post only

If a post matches multiple rules, the plugin will trigger the first matching rule in the list.

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

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 chat integration discourse username 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 Contribute > Feature… or feed your fish whenever there’s a new Customization > Plugin.

CHANGELOG

TODO

Last edited by @lindsey 2026-04-21T21:14:15Z

Check documentPerform check on document:
115 likes
Set up Slack notifications using the discourse-chat-integration plugin
Set up Mattermost notifications using the discourse-chat-integration plugin
Set up Rocket Chat notifications using the discourse-chat-integration plugin
Set up Microsoft Teams notifications using the discourse-chat-integration plugin
Set up Google Chat notifications using the discourse-chat-integration plugin
Set up Matrix (element.io) notifications using the discourse-chat-integration plugin
Set up Gitter notifications using the discourse-chat-integration plugin
Set up Webex notifications using the discourse-chat-integration plugin
Tool for Tossing out Notifications via Discord
iOS Mobile App Notifications
Auto Post New Topics to Social Media
Will Rocket Chat and others get transcript posting?
Dynamic of community with a chat and discourse page
Slack to Discourse
Discord chat integration for open source projects
Discourse-official-slack: no error message after failed post to slack
Moving from Slack to Discourse
Telegram integration
Set up Telegram integration using the discourse-chat-integration plugin
Federation support for Discourse
Add a new provider to discourse-chat-integration
Set up Zulip notifications using the chat integration plugin
German People here
Contributor Interviews – David Taylor
IFTTT Chat Integration Plugin - curious on status
Slack Plugin Still Active?
Steam Authentication & Integration
Yammer integration
Query on Discourse Integration with Google Chat
Set up Slack notifications using the discourse-chat-integration plugin
Configure Discord Login for Discourse
Comment on a question instead of answering it
Best chat integration for a Forum breakout
[PAID] Turning Discourse Forum to Messenger App
Set up Power Automate to send Microsoft Teams notifications using the discourse-chat-integration plugin
Optionally threading posts to parent topic in slack integration
Can you enable a plugin that integrates slack and discourse?
Libera Chat Integration
More Like WhatsApp for addiction support?
Advice for starting a community site for housing cooperative
We would like to add the plugin "discourse chat integration", but INCOMPATIBLE PLUGIN is returned
Babble Chat
Dedicated chat client?
Discourse Chat
Set up Telegram integration using the discourse-chat-integration plugin
Help configuring Slack Discourse plugin
Discourse Data Explorer Query Response to Slack
Nextcloud support
Checking if post or thread - Ruby
Discourse & Drift Chatbot
How can I beef up Discourse notifications?
Help configuring Slack Discourse plugin
Can Discourse Integrate with Free Slack?
Advice for getting my little game dev community "out there?"
Bundling more popular plugins with Discourse core
Gitter support in chat-integration appears to be missing settings and rules
Internal Onebox links cause full page reload
Writing messages from Slack to Discourse
Writing messages from Slack to Discourse
Discourse to Discord bot possible?
Send summary of new posts to chat instead of every post update
Set up Slack notifications using the discourse-chat-integration plugin
Two-way sync chat with discourse
Plugin for auto posting to social media?
Notifications integration for Facebook and Twitter
HipChat Integration
Twilio - for SMS notifications to users - Anyone Else Interested?
Discourse Chat vs Chat Integration plugins
Discourse for Teams is here!
Discourse vs Salesforce Community vs Slack
Adding a confirmation to particular tag groups and @mentions
Introducing Discourse Chat (BETA)
Different layout for posts with/without tags in webex chat integration
Chat Integration and Discourse Chat
Set up Mattermost notifications using the discourse-chat-integration plugin
Slack Bot Construction Kit :robot:
Feed Discourse posts into my Discord server?
Configure Groupme provider with the discourse-chat-integration plugin
Set up Discord notifications with the discourse-chat-integration plugin
Test message works, but normal messages are never triggered
Integration of https://signal.org/ chat
Set up Slack notifications using the discourse-chat-integration plugin
Discourse as a Conference App (in person, virtual, or hybrid)
Optionally threading posts to parent topic in slack integration

It would be interesting to add support for Discourse’s own ActivityPub Plugin so that publishing could be triggered based on tags and other filters from chat integration.

1 like

Hello, last year Telegram announced forums/topics (mini chats within group chats). I tried to connect each individual mini chat to one or another category of my site. But as I understand, topic addresses are not supported by the plugin? For example, in my case, each topic has an address as follows: @telegram_topic /1, @telegram_topic /2, @telegram_topic /3
If I insert a standard chat name into the line, for example @telegram_chat, it works without problems.
It would be very convenient if the plugin had the ability to insert similar chat addresses (…/1), then users would not have to be subscribers to many independent channels tied to certain categories of the site.

1 like

Have you considered using tags to accomplish this?

:thinking: I think using tags is not entirely suitable for my case. Because even with the help of tags, I wouldn’t want all notifications to go into one channel, creating information noise. At the same time, instead of having 20 channels for 20 categories/tags, I would prefer to have one group chat where I could organize several mini-themed chats (by category/tag) where each user can view the one they need minichat and the ability to look into other minichat. I’m so bothered because in my region (Asia) most people use WhatsApp and Telegram chats - forums are not popular. But I’m trying to find a compromise).

Ps. If I repeat myself often, don’t judge me, I’m just trying to convey my thoughts correctly, as I use Google translator.

1 like

You should be able to filter which tags would apply to which chats, at least as far as I am understanding you.

It seems to me that we are talking about different things :thinking: I don’t have a question about filtering chats by tags/categories.
For context. Previously, Telegram had channels and chats (except for bots). These channels/chat rooms have a username, approximately @chat_username or @channel_username.
Since last year, Telegram has had the opportunity to turn chats into forums containing mini thematic chats like this. These mini chats have their own usernames, for example @chat_username /1, @chat_username /2. The convenience of such chats with minichat is that the user no longer needs to subscribe to several chats separate from each other, but just subscribe to one chat (for example, with the name of my site) and have access to many mini chats (in my case, each mini chat would target a specific category on the site) that are of interest to the user.
Now I want to connect these mini chats to this plugin, but it seems to me that the plugin does not support the mini chat username as chat_username /1.

1 like

Is there a way to create a rule where I can tag a new message and/or reply so it won’t post to target chat system (in this case Slack)?

Hey Albert, if we’re talking about normal Discourse tags, you can set up a ‘mute’ filter to prevent topics with that tag triggering notifications in Slack.

But in terms of individual posts, there is no way to filter them out.

1 like

I think I have the same want as you, Aizada:

I’d love to be able to have a Telegram group chat, with topics enabled (that somewhat correspond to the categories on Discourse), and then, in the Discourse/Chat integration settings, specify which topic it should post to.

I’ve tried to create a group chat with topics now (with just the bot and me), but when I type /help within a topic, the bot answers in the general chat.

Have you looked into this @david? I found this Stack Overflow thread, that shows how to get the message_thread_id (which is the topic id) and says that the bot API got support for this in 6.3.

Thanks for your work anyway! 🫶🏻

1 like

Hi @ErlendMS :wave:. We don’t have any enhancements for this plugin on our roadmap at the moment, but if someone would like to add ‘threading’ (aka topic) support for the telegram integration that would likely be pr-welcome.

We do have some threading support in the slack integration, so it should be possible to reuse some of that logic.

3 likes

Is it possible to use this plugin to get notifications in Slack whenever a post is flagged for review? Thanks.

Does this plugin expose additional API functions?

Where do I request a PR review? I’ve submitted this PR late last week to add a new provider and it is still pending a reviewer. I’ve looked around different developer guides on meta and couldn’t find one for proper PR requests.

Here’s my PR: FEATURE: Added Power Automate as a new provider by benoitdesnoyers · Pull Request #204 · discourse/discourse-chat-integration · GitHub

Thanks,

1 like

Hello guys! we’ve just merged this pr for chat integration plugin

This change aims to remove the tags_changed option from the rule filtering from chat integration–we are doing this change because we are removing the Creation of a small action post when a topic's category or tags change setting.

But the functionality will remain the same, if you have discourse automation installed. The next time you run the migrations for this plugin, it will add a script to the discourse automation plugin that will run similarly to what we currently have.

This is an example of automation that will be created:

It will be sent to my channel based on the categories and watching tags that I have.

${ADDED_AND_REMOVED} is the default text; it will behave the same as the rule would.

We have also added for this script option a few options that can be used in the message:

  • ${TOPIC} for the topic name
  • ${REMOVED_TAGS} for the removed tags
  • ${ADDED_TAGS} for the added tags
    both removed and added will only trigger if they have a tag in them.
    For example: added: ${ADDED_TAGS} message will only trigger if there are added tags
4 likes

We had an issue with the other PR(users who used other providers could not use the automation when topic tags changed), so to address it, we have made this new PR, where we account for every provider.

The Creation of a small action post when a topic's category or tags change setting will not appear in chat integration.

If you have discourse automation installed the next time you run the migrations for this plugin, it will add a script to the discourse automation plugin that will run similarly to what we currently have.


Your automations will look something like this:

And your providers are the enabled providers.

For example, I have Discord,Slack, Telegram and Google Chat enabled

Your channel name is the name you gave it in the chat integration settings.

For example, the name here is Spidey

3 likes

We have a new batch of changes for the Automation/chat-integration

In this new batch, notable changes are:

  • We added Trigger with PMs, which lets you control whether this automation should be triggered even on private messages.
  • Solved an issue where Topic tags changed trigger automation was being triggered during topic creation.
3 likes

As mentioned before – here

The create post for category and tag changes site setting currently can leak private tags/categories; one way that we found to keep that feature was by moving it to whispers:

It works similarly to small posts, but now, you need to have whisper allowed groups with some group to make it work.

I’ve merged a PR for core with this change and one for chat-integration, removing the usage of that setting; the automation feature added back should be 1:1 with the small action if anyone has any issue, please let us know!

3 likes

I have some more updates to this plugin :steam_locomotive:

We have added trigger on field for Send Chat-Integration message automation.

What does it do?

It checks for when tags are:

  • Added and Removed (default)
  • Added
  • Removed

Currently, this check is inclusive.

A good example is if I set it to Added; For this automation to run, it is going to be necessary for any tag to be added to a topic.

When Tags added is set, the automation table looks like this:

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:

When Tags removed is set, the automation table looks like this:

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 likes


Subject: Unable to access Plugins section for Chat Integration setup

Hello,

I’m an administrator of the LXDAO forum and I’m trying to set up the Discourse Chat Integration plugin to connect with Telegram. According to the official documentation, I should be able to configure this in the Plugins section of the admin panel.

However, in my admin dashboard, I only have access to four sections: General, Moderation, Security, and Reports. The Plugins section mentioned in the documentation does not appear to be available.

Could you please help me understand:

  1. Is the Chat Integration plugin already installed on our forum?
  2. Do I need additional permissions to access the Plugins section?
  3. If we’re using a hosted Discourse solution, are there any limitations regarding plugin installation/configuration?

As an administrator, what steps should I take to properly set up the Telegram integration for our community?

Thank you for your assistance!