تكاملات الدردشة في 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
: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 إعجابًا
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

سيكون من المثير للاهتمام إضافة دعم لـ Discourse الخاص ActivityPub Plugin بحيث يمكن تشغيل النشر بناءً على العلامات والمرشحات الأخرى من تكامل الدردشة.

إعجاب واحد (1)

مرحباً، أعلنت تيليجرام العام الماضي عن المنتديات/المواضيع (محادثات مصغرة داخل الدردشات الجماعية). حاولت ربط كل محادثة مصغرة فردية بفئة أو أخرى من موقعي. ولكن على حد فهمي، فإن عناوين المواضيع غير مدعومة بواسطة المكون الإضافي؟ على سبيل المثال، في حالتي، لكل موضوع عنوان على النحو التالي: @telegram_topic /1، @telegram_topic /2، @telegram_topic /3
إذا قمت بإدراج اسم دردشة قياسي في السطر، على سبيل المثال @telegram_chat، فإنه يعمل دون مشاكل.
سيكون الأمر مناسبًا جدًا إذا كان المكون الإضافي لديه القدرة على إدراج عناوين دردشة مماثلة (../1)، فلن يضطر المستخدمون إلى أن يكونوا مشتركين في العديد من القنوات المستقلة المرتبطة بفئات معينة من الموقع.

إعجاب واحد (1)

هل فكرت في استخدام العلامات لتحقيق ذلك؟

:thinking: أعتقد أن استخدام العلامات غير مناسب تمامًا لحالتي. لأنه حتى بمساعدة العلامات، لن أرغب في أن تذهب جميع الإشعارات إلى قناة واحدة، مما يخلق ضوضاء معلوماتية. في الوقت نفسه، بدلاً من وجود 20 قناة لـ 20 فئة/علامة، أفضل أن يكون لدي دردشة جماعية واحدة حيث يمكنني تنظيم العديد من الدردشات المصغرة ذات الطابع الخاص (حسب الفئة/العلامة) حيث يمكن لكل مستخدم عرض الدردشة المصغرة التي يحتاجها والقدرة على النظر في الدردشات المصغرة الأخرى. أنا منزعج جدًا لأنه في منطقتي (آسيا) يستخدم معظم الناس دردشات WhatsApp و Telegram - المنتديات ليست شائعة. لكنني أحاول إيجاد حل وسط).

ملاحظة: إذا كنت أكرر نفسي كثيرًا، فلا تحكم علي، أنا فقط أحاول نقل أفكاري بشكل صحيح، حيث أستخدم مترجم Google.

إعجاب واحد (1)

يجب أن تكون قادرًا على تصفية العلامات التي ستنطبق على الدردشات، على الأقل بقدر ما أفهمك.

يبدو لي أننا نتحدث عن أشياء مختلفة :thinking: ليس لدي سؤال حول تصفية الدردشات حسب العلامات/الفئات.
للسياق. في السابق، كان لدى Telegram قنوات ودردشات (باستثناء الروبوتات). تحتوي هذه القنوات/غرف الدردشة على اسم مستخدم، تقريبًا @chat_username أو @channel_username.
منذ العام الماضي، أتيحت لـ Telegram فرصة تحويل الدردشات إلى منتديات تحتوي على دردشات مصغرة ذات طابع خاص مثل هذه. تحتوي هذه الدردشات المصغرة على أسماء مستخدمين خاصة بها، على سبيل المثال @chat_username /1، @chat_username /2. تكمن راحة هذه الدردشات المصغرة في أن المستخدم لم يعد بحاجة إلى الاشتراك في عدة دردشات منفصلة عن بعضها البعض، بل يشترك فقط في دردشة واحدة (على سبيل المثال، باسم موقعي) ويكون لديه وصول إلى العديد من الدردشات المصغرة (في حالتي، ستستهدف كل دردشة مصغرة فئة معينة على الموقع) التي تهم المستخدم.
الآن أريد ربط هذه الدردشات المصغرة بهذا المكون الإضافي، ولكن يبدو لي أن المكون الإضافي لا يدعم اسم مستخدم الدردشة المصغرة كـ chat_username /1.

إعجاب واحد (1)

هل هناك طريقة لإنشاء قاعدة يمكنني من خلالها وضع علامة على رسالة جديدة و/أو رد بحيث لا يتم نشرها في نظام الدردشة المستهدف (في هذه الحالة Slack)؟

مرحباً ألبرت، إذا كنا نتحدث عن علامات Discourse العادية، يمكنك إعداد ‘فلتر كتم’ لمنع المواضيع التي تحمل هذه العلامة من إطلاق إشعارات في Slack.

ولكن فيما يتعلق بالمنشورات الفردية، لا توجد طريقة لتصفيتها.

إعجاب واحد (1)

أعتقد أن لدي نفس الرغبة التي لديك يا عائزة:

أود أن أتمكن من إنشاء دردشة جماعية على تيليجرام، مع تفعيل المواضيع (التي تتوافق إلى حد ما مع الفئات الموجودة في ديسكورس)، ثم، في إعدادات تكامل ديسكورس/الدردشة، تحديد الموضوع الذي يجب النشر فيه.

لقد حاولت إنشاء دردشة جماعية بالمواضيع الآن (مع البوت وأنا فقط)، ولكن عندما أكتب /help داخل موضوع، يجيب البوت في الدردشة العامة.

هل بحثت في هذا يا @david؟ وجدت هذا الموضوع في Stack Overflow، الذي يوضح كيفية الحصول على message_thread_id (وهو معرف الموضوع) ويقول أن واجهة برمجة تطبيقات البوت حصلت على دعم لهذا في الإصدار 6.3.

شكرًا لك على عملك على أي حال! :heart_hands:t2:

إعجاب واحد (1)

مرحباً @ErlendMS :wave:. ليس لدينا أي تحسينات لهذا المكون الإضافي في خارطة طريقنا في الوقت الحالي، ولكن إذا أراد شخص ما إضافة دعم “الترابط” (المعروف أيضًا باسم الموضوع) للتكامل مع تيليجرام، فمن المحتمل أن يكون ذلك pr-welcome.

لدينا بعض دعم الترابط في التكامل مع سلاك، لذلك يجب أن يكون من الممكن إعادة استخدام بعض هذا المنطق.

3 إعجابات

هل من الممكن استخدام هذه الإضافة للحصول على إشعارات في Slack كلما تم وضع منشور للمراجعة؟ شكرا.

هل يكشف هذا المكون الإضافي عن وظائف إضافية لواجهة برمجة التطبيقات؟

أين يمكنني طلب مراجعة طلب سحب؟ لقد قدمت طلب السحب هذا في وقت متأخر من الأسبوع الماضي لإضافة موفر جديد ولا يزال ينتظر مراجعًا. لقد بحثت في أدلة المطورين المختلفة على ميتا ولم أتمكن من العثور على دليل لطلبات السحب المناسبة.

إليك طلب السحب الخاص بي: FEATURE: Added Power Automate as a new provider by benoitdesnoyers · Pull Request #204 · discourse/discourse-chat-integration · GitHub

شكرًا،

إعجاب واحد (1)

أهلاً يا رفاق! لقد قمنا للتو بدمج طلب السحب هذا لإضافة ميزة التكامل مع الدردشة.

يهدف هذا التغيير إلى إزالة خيار tags_changed من تصفية القواعد في تكامل الدردشة - نقوم بهذا التغيير لأننا نزيل إعداد “إنشاء منشور إجراء صغير عند تغيير فئة الموضوع أو علاماته”.

لكن الوظيفة ستبقى كما هي، إذا كان لديك Discourse Automation مثبتًا. في المرة القادمة التي تقوم فيها بتشغيل عمليات الترحيل لهذا المكون الإضافي، سيضيف نصًا برمجيًا إلى مكون Discourse Automation الإضافي الذي سيعمل بشكل مشابه لما لدينا حاليًا.

هذا مثال على التشغيل الآلي الذي سيتم إنشاؤه:

سيتم إرساله إلى قناتي بناءً على الفئات والعلامات التي أراقبها.

${ADDED_AND_REMOVED} هو النص الافتراضي؛ سيعمل بنفس الطريقة التي تعمل بها القاعدة.

لقد أضفنا أيضًا لهذا الخيار النصي البرمجي بعض الخيارات التي يمكن استخدامها في الرسالة:

  • ${TOPIC} لاسم الموضوع
  • ${REMOVED_TAGS} للعلامات المحذوفة
  • ${ADDED_TAGS} للعلامات المضافة
    كلا من المحذوفة والمضافة سيتم تشغيلهما فقط إذا كان لديهما علامة فيهما.
    على سبيل المثال: رسالة added: ${ADDED_TAGS} ستعمل فقط إذا كانت هناك علامات مضافة.
4 إعجابات

كان لدينا مشكلة في طلب السحب (PR) الآخر (لم يتمكن المستخدمون الذين استخدموا موفري خدمة آخرين من استخدام الأتمتة عند تغيير علامات الموضوع)، لذلك لمعالجة ذلك، قمنا بإنشاء طلب السحب الجديد هذا (PR)، حيث نأخذ في الاعتبار كل موفر خدمة.

لن يظهر الإعداد إنشاء منشور إجراء صغير عند تغيير فئة الموضوع أو علاماته في تكامل الدردشة.

إذا كان لديك أتمتة ديسكورس مثبتة، ففي المرة القادمة التي تقوم فيها بتشغيل عمليات الترحيل لهذا المكون الإضافي، سيضيف ذلك نصًا برمجيًا إلى مكون أتمتة ديسكورس الإضافي الذي سيعمل بشكل مشابه لما لدينا حاليًا.


ستبدو عمليات الأتمتة الخاصة بك شيئًا كهذا:

وموفرو الخدمة لديك هم الموفرون الممكّنون.

على سبيل المثال، لدي Discord و Slack و Telegram و Google Chat ممكّنة

اسم القناة الخاص بك هو الاسم الذي أعطيته له في إعدادات تكامل الدردشة.

على سبيل المثال، الاسم هنا هو Spidey

3 إعجابات

لدينا دفعة جديدة من التغييرات لـ Automation/chat-integration

في هذه الدفعة الجديدة، التغييرات البارزة هي:

  • أضفنا Trigger with PMs، والذي يتيح لك التحكم فيما إذا كان يجب تشغيل هذا الأتمتة حتى على الرسائل الخاصة.
  • تم حل مشكلة حيث كان يتم تشغيل أتمتة Topic tags changed أثناء إنشاء الموضوع.
3 إعجابات

كما ذكرنا سابقًا – هنا

إعداد الموقع إنشاء منشور لتغييرات الفئة والعلامة يمكن حاليًا أن يسرب العلامات/الفئات الخاصة؛ إحدى الطرق التي وجدناها للاحتفاظ بهذه الميزة هي نقلها إلى الهمسات:

تعمل بشكل مشابه للمنشورات الصغيرة، ولكن الآن، تحتاج إلى امتلاك مجموعات مسموح بها للهمس مع مجموعة ما لجعلها تعمل.

لقد قمت بدمج PR للنواة مع هذا التغيير وواحد لـ chat-integration، مع إزالة استخدام هذا الإعداد؛ يجب أن تكون ميزة الأتمتة المضافة مرة أخرى 1:1 مع الإجراء الصغير إذا واجه أي شخص أي مشكلة، فيرجى إخبارنا!

3 إعجابات

لدي المزيد من التحديثات لهذا المكون الإضافي :steam_locomotive:

تمت إضافة حقل trigger on لأتمتة Send Chat-Integration message.

ماذا يفعل؟

يتحقق من وقت إضافة العلامات:

  • Added and Removed (الافتراضي)
  • Added
  • Removed

حاليًا، هذا التحقق شامل.

مثال جيد هو إذا قمت بتعيينه على Added؛ لكي تعمل هذه الأتمتة، سيكون من الضروري إضافة أي علامة إلى موضوع.

عند تعيين Tags added، تبدو جدولة الأتمتة كالتالي:

تمت إضافة علامة إلى الموضوع تمت إزالة علامة من الموضوع هل تم تشغيل الأتمتة؟
:white_check_mark: :cross_mark: :white_check_mark:
:white_check_mark: :white_check_mark: :white_check_mark:
:cross_mark: :white_check_mark: :cross_mark:

عند تعيين Tags removed، تبدو جدولة الأتمتة كالتالي:

تمت إزالة علامة من الموضوع تمت إضافة علامة إلى الموضوع هل تم تشغيل الأتمتة؟
: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)


الموضوع: تعذر الوصول إلى قسم الإضافات لإعداد تكامل الدردشة

مرحباً،

أنا مسؤول في منتدى LXDAO وأحاول إعداد إضافة Discourse Chat Integration للاتصال بتيليجرام. وفقًا للتوثيق الرسمي، يجب أن أتمكن من تكوين هذا في قسم الإضافات (Plugins) في لوحة تحكم المسؤول.

ومع ذلك، في لوحة تحكم المسؤول الخاصة بي، لدي فقط الوصول إلى أربعة أقسام: عام (General)، إشراف (Moderation)، أمان (Security)، وتقارير (Reports). قسم الإضافات المذكور في التوثيق لا يبدو متاحًا.

هل يمكنك مساعدتي في فهم ما يلي:

  1. هل إضافة تكامل الدردشة مثبتة بالفعل في منتدانا؟
  2. هل أحتاج إلى أذونات إضافية للوصول إلى قسم الإضافات؟
  3. إذا كنا نستخدم حلاً مستضافًا من Discourse، فهل هناك أي قيود فيما يتعلق بتثبيت/تكوين الإضافات؟

بصفتي مسؤولاً، ما هي الخطوات التي يجب أن أتخذها لإعداد تكامل تيليجرام بشكل صحيح لمجتمعنا؟

شكراً لمساعدتكم!