We use Discourse to support the products we are currently dealing with. We have a large team, but it is divided into people who are engaged in different projects.
For each of these mini groups we created separate groups (categories in them).
We have Rocket.Chat installed, where each group (category) has its own channel. Rocket.Chat also has common channels.
Integration with mail, chat, and all the available Discourse tools very well fit and work smoothly and together, complementing and expanding the overall capabilities of the team.
The most important thing I see is the ability to create both closed spaces and common spaces, which makes the interaction more interesting.
discourse-assign, discourse-chat-integration... - do an excellent job with their tasks.