# Mettre à jour la terminologie d'intégration Zulip et ajouter le mappage des sujets par fil

**URL:** https://meta.discourse.org/t/update-zulip-integration-terminology-and-add-per-thread-topic-mapping/398789
**Category:** Feature
**Tags:** chat-integration
**Created:** [Mars 19, 2026, 8:46 UTC](https://meta.discourse.org/t/update-zulip-integration-terminology-and-add-per-thread-topic-mapping/398789 "2026-03-19T08:46:04Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Vijay\_Hiremath](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/vijay_hiremath/32/489696_2.png) [@Vijay\_Hiremath](https://meta.discourse.org/u/Vijay_Hiremath)
#### Post date: [Mars 19, 2026, 8:46 UTC](https://meta.discourse.org/t/update-zulip-integration-terminology-and-add-per-thread-topic-mapping/398789/1 "2026-03-19T08:46:04Z")

</div>

Bonjour l’équipe,

J’ai soumis une Pull Request (PR) pour mettre à jour l’intégration Zulip dans discourse/discourse :

> <https://github.com/discourse/discourse/pull/38404>
>
> \## Zulip: Update terminology and add per-thread topic mapping
> 
> \### Terminology… update
> \- Replaces all occurrences of \`stream\` and \`subject\` with \`channel\` and \`topic\` respectively in user-facing parts
> of the Zulip integration, to match current Zulip terminology.
> 
> \### Per-thread topic mapping
> \- Makes the \`topic\` field optional in channel settings.
> \- When a fixed topic is configured, it is used as before.
> \- When the topic field is left blank, the Discourse thread title is
> automatically used as the Zulip topic, mapping each Discourse thread to its own Zulip topic.
> 
> \### Optional parameter support in Channel model
> \- Updates \`channel.rb\` to support \`required: false\` on channel parameters,
> skipping validation for optional parameters when left blank.
> \- Updates \`edit-channel.gjs\` frontend validation to allow saving a channel
> when optional parameters are left blank.
> 
> \## Motivation
> Zulip has updated its terminology: \`streams\` are now called \`channels\` and \`subjects\` are now called \`topics\`. This PR updates the integration to reflect that.
> 
> The per-thread topic mapping was requested in this \[comment\](https://meta.discourse.org/t/discourse-chat-integration/66522/309).
> 
> This PR is part of the work tracked in: \[#33769\](https://github.com/zulip/zulip/issues/33769#issuecomment-4020150075)
> 
> \## Testing
> \- Syntax verified via \`ruby -c\` on all changed files.
> \- Spec file updated to reflect new keys (\`channel\`, \`topic\`) and includes
> tests for both fixed topic and thread-title fallback behavior,
> with request body assertions to verify the correct topic is sent.
> \- Full test suite requires a Discourse development environment to run.

Ceci fait partie du travail suivi dans le projet Zulip :

> <https://github.com/zulip/zulip/issues/33769>
>
> \### Update the Discourse integration:
> 1. Update the following terminology in all… the user-facing parts of the Discourse-Zulip integration:
> 1. Replace all occurrences of the term "subject" with "topic".
> 2. Replace all occurrences of the term "stream" with "channel".
> 2. Support mapping each Discourse thread to its own Zulip topic, in a reasonable way, as requested in \[this comment here\](https://meta.discourse.org/t/set-up-zulip-notifications-using-the-chat-integration-plugin/68501).
> 
> This requires submitting a PR to \[discourse/discourse-chat-integration\](https://github.com/discourse/discourse-chat-integration), written in Ruby.
> Relevant files to update:  
> \- \[lib/discourse\_chat\_integration/provider/zulip/zulip\_provider.rb\](https://github.com/discourse/discourse-chat-integration/blob/main/lib/discourse\_chat\_integration/provider/zulip/zulip\_provider.rb)
> \- \[spec/lib/discourse\_chat\_integration/provider/zulip/zulip\_provider\_spec.rb\](https://github.com/discourse/discourse-chat-integration/blob/main/spec/lib/discourse\_chat\_integration/provider/zulip/zulip\_provider\_spec.rb)
> 
> You would need access to a Discourse server so that you can test the integration.
> For the integration's setup instructions, refer to the \[integration doc\](https://zulip.com/integrations/doc/discourse).
> 
> \### Update the documentation:
> Once the PR has been merged, the following documentation pages also need to be updated.
> \- Update the \[Zulip integration doc\](https://zulip.com/integrations/doc/discourse) to update the setup instructions following the merge, by editing \[this file\](https://github.com/zulip/zulip/tree/main/templates/zerver/integrations/discourse.md).
> \- Get Discourse to update \[their documentation\](https://meta.discourse.org/t/set-up-zulip-notifications-using-the-chat-integration-plugin/68501). Contributors do not have the permission to directly edit the doc, or submit PRs for updating the doc. One would need to compile the list of changes, and get a Discourse team member to update the doc.
> - In addition to the above changes made to the codebase, the doc also needs to be updated to use a more recent screenshot example (like the one used in the \[Zulip integration doc\](https://zulip.com/integrations/doc/discourse)), and being linked to the Zulip integration doc for the setup instructions involving Zulip.
> \- Once the mapping of Discourse threads to Zulip topics has been added, the \[Chat integration instructions\](https://meta.discourse.org/t/discourse-chat-integration/66522) needs to be updated too. Especially, update the comparison table and lines like "(Note that at this time, only the Slack integration implements threads.)" once Zulip also supports this, since a Zulip topic is better suited for Discourse threads than Slack threads are.
> 
> \#### References:
> For more on integrations, refer to these docs - \[Integrations Overview\](https://zulip.com/api/integrations-overview), and \[Non-webhook integrations\](https://zulip.com/api/non-webhook-integrations).
> The Discourse integration is a plugin integration with all the code being located in \[discourse/discourse-chat-integration\](https://github.com/discourse/discourse-chat-integration).

La PR inclut :

- Mise à jour de la terminologie : `stream` → `channel`, `subject` → `topic` pour correspondre à la terminologie actuelle de Zulip (Zulip a renommé ces termes dans Zulip Server 10.0)
- Mappage de sujet par fil : lorsque le champ de sujet est laissé vide, le titre du fil Discourse est automatiquement utilisé comme sujet Zulip, mappant chaque fil Discourse à son propre sujet Zulip
- Support des paramètres optionnels dans `channel.rb` et `edit-channel.gjs`
- Fichier de migration mis à jour

J’apprécierais un examen lorsque vous aurez une occasion !

Merci !

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [Mai 26, 2026, 11:56 UTC](https://meta.discourse.org/t/update-zulip-integration-terminology-and-add-per-thread-topic-mapping/398789/2 "2026-05-26T23:56:22Z")

</div>

Merci pour la PR, il semble que nous ayons besoin d’un rebase
