- Add a step to update the bot's API key if using a generic bot for bidirectional bridging. - Clarify setup options for how Slack channels are mapped. - Edit for clarity and succinctness.
3.5 KiB
Forward Slack messages into Zulip
Forward messages sent to your Slack workspace's public channels into Zulip!
This integration lets you choose how to organize your Slack messages in Zulip. You can:
- Send messages from each Slack channel into a matching Zulip channel.
- Send messages from each Slack channel into a matching Zulip topic.
- Send all Slack messages into a single Zulip topic.
If you'd like to forward messages in both directions (Slack to Zulip and Zulip to Slack), please see separate instructions for how to set this up.
If you are looking to quickly move your Slack integrations to Zulip, check out Zulip's Slack-compatible incoming webhook.
!!! warn ""
Using [Slack's legacy Outgoing Webhook service][5] is no longer
recommended. Follow these instructions to switch to the new
[Slack Events API][3].
{start_tabs}
-
{!create-an-incoming-webhook.md!}
-
{!generate-webhook-url-basic.md!}
To send messages from each Slack channel into a matching Zulip channel, enable the Send all notifications to a single topic option, and add
&channels_map_to_topics=0to the generated URL. For each public channel in your Slack workspace, be sure to create a Zulip channel with the same name.To send messages from each Slack channel into a matching Zulip topic, disable the Send all notifications to a single topic option when generating the URL. Add
&channels_map_to_topics=1to the generated URL.To send all Slack messages into a single Zulip topic, enable the Send all notifications to a single topic option, with no further modifications.
-
(optional) If you're setting up a Slack bridge to forward Zulip messages into your Slack workspace, replace the value of the
?api_key=parameter in the integration URL you generated with the API key of the Generic bot you're using for the Slack bridge. -
Create a new Slack app, and open it. Navigate to the OAuth & Permissions menu, and scroll down to the Scopes section.
-
Make sure Bot Token Scopes includes
channels:read,channels:history,emoji:read,team:read,users:read, andusers:read.email.!!! tip ""
See [Slack's Events API documentation][3] for details about these scopes. -
Scroll to the OAuth Tokens for Your Workspace section in the same menu, and click Install to Workspace.
-
Copy the Slack Bot User OAuth Token, and add it to the end of your integration URL as
&slack_app_token=BOT_OAUTH_TOKEN. -
Go to the Event Subscriptions menu, toggle Enable Events, and enter your updated integration URL in the Request URL field.
-
In the same menu, scroll down to the Subscribe to bot events section, and click on Add Bot User Event. Select the
message.channelsevent.
{end_tabs}
{!congrats.md!}
Related documentation
-
Forward messages Slack <-> Zulip (both directions)
{!webhooks-url-specification.md!}
