Thank you to our Platinum Sponsors

Building the Chat Layer for Drupal Groups (and Beyond)

Time Slot
Sat 9:30am to 10:15am (10/17/26)
Room
472 - BCIT Downtown

Most Drupal-to-chat integrations run one direction: something happens in Drupal, a bot posts a notification, done. As far as I've been able to find, nobody's actually closed the loop — chat stays chat, and CMS content stays CMS content, and the two never really talk to each other.

I'm leading the Matrix integration effort for the Groups Initiative, and this talk is a live tour of what closing that loop looks like:

  • Basic sync — publish a node and watch it appear as a message in a Matrix room; reply in Matrix and watch a threaded comment appear back in Drupal.
  • Identity — log into Matrix using Drupal credentials, see the linked account on your profile, and watch replies posted from Matrix show up attributed to your real Drupal username.
  • Application server — configure room and user namespaces, auto-create rooms inside a Matrix space, and manage access live: a room starts read-only, then a user gets posting rights the moment they link their Matrix account.
  • Entity mapping — how a dedicated map service links Matrix events to Drupal entities — groups, nodes, comments — without requiring fields on specific entity types, and what that opens up: groups mapped to spaces or rooms, nodes mapped to spaces, rooms, or threads, comments mapped in or out of thread structure.

Then the harder part: the open questions that show up once chat and CMS actually agree with each other. Is an old thread still findable six months later? What should the UI look like when some nodes get their own room and others are threads in a shared one? On our own team, the automated messages that keep me on top of what's happening across the company are the same messages other people complain about as noise — how do you keep meaningful conversation from getting lost in a stream that's genuinely useful to someone? We'll use our own internal Matrix setup as a live case study, because we don't have these fully solved yet.

Built for Drupal Groups first — but the underlying pattern isn't specific to Drupal Groups, or even to Drupal. If your community or team has been wrestling with the same problem, come talk to me. Maybe it's useful for your site too.

Audience
All Attendees
Session Category
Backend
Community & Open Source

Thank you to our Platinum, Gold and Silver Sponsors