Set up Zulip notifications using the chat integration plugin

This #howto describes how to setup the Zulip provider included in discourse-chat-integration.


If you haven’t already, install the discourse-chat-integration plugin

Set up Zulip

  1. In your Zulip settings, go to the Bots tab

  2. Under the add a new bot view, enter the bot type, a name, an email, and optionally an avator for your bot.

  3. Select the “Incoming Webhook” type for the bot

  4. Click Create Bot

  5. Copy down the API Key and email address, you’ll need it later

Set up Discourse

  1. In your Discourse site settings, enter your Zulip server address in the chat_integration_zulip_server setting. Make sure to include the protocol. (e.g.

  2. Paste the API Key you copied earlier into the chat_integration_zulip_bot_api_key site setting

  3. Paste the email address you copied earlier into the chat_integration_zulip_bot_email_address site setting

  4. Enable chat_integration_zulip_enabled

  5. Go to the Plugins tab, then Chat Integration

  6. Go to the Zulip tab, then Add Channel

  7. Enter a Stream that you want to send the notifications to, and a Subject to attach to the messages

  8. Save Channel

  9. Use the Test button on the channel you just created to check that everything’s working. You should see something like this:

  10. Set up some “Rules” for your channel, according to the discourse-chat-integration instructions.


Would it be possible to have the discourse server be set to an entire stream on zulip, with a zulip topic matching a discourse category/topic and allowing posting back to Discourse messages to the appropriate zulip topic as either the zulip user themselves (if matching email address) or optionally as the bot user itself (would prefer using a matching discourse user by email, I use oidc for everything so it is all unified anyway, falling back to just posting as the bot itself with an appropriate ‘who said it’). It would be amazingly userful to respond to discourse threads while using the zulip-term terminal interface without needing to spool up a web browser (especially since I don’t have a GUI at times, only a pure console interface).

EDIT1: Also, are there any issues with this and running Zulip 2.0+?

EDIT2: Matching the user from discourse to zulip via email address would be possible as well, but it would need to become a System Bot in Zulip instead of just a General Bot as would be required to post messages back to Discourse, in terms of permissions needed (System bots are ‘above’ admin). Might be a useful optional ability though.

1 Like