diff --git a/templates/zerver/api/incoming-webhooks-overview.md b/templates/zerver/api/incoming-webhooks-overview.md index d3bdc48080..30d85e5949 100644 --- a/templates/zerver/api/incoming-webhooks-overview.md +++ b/templates/zerver/api/incoming-webhooks-overview.md @@ -1,13 +1,18 @@ # Incoming webhook integrations An incoming webhook allows a third-party service to push data to Zulip when -something happens. There's two ways to do an incoming webhook in +something happens. There's several ways to do an incoming webhook in Zulip: * Use our [REST API](/api/rest) endpoint for [sending messages](/api/send-message). This works great for internal tools or cases where the third-party tool wants to control the formatting of the messages in Zulip. +* Use one of our supported [integration + frameworks](/integrations/doc/meta-integration), such as the + [Slack-compatible incoming webhook](/integrations/doc/slack_incoming), + [Zapier integration](/integrations/docs/zapier), or + [IFTTT integration](/integrations/doc/ifttt). * Adding an incoming webhook integration (detailed on this page), where all the logic for formatting the Zulip messages lives in the Zulip server. This is how most of [Zulip's official diff --git a/templates/zerver/api/integrations-overview.md b/templates/zerver/api/integrations-overview.md index fe17d5747c..ecf1e653d0 100644 --- a/templates/zerver/api/integrations-overview.md +++ b/templates/zerver/api/integrations-overview.md @@ -28,6 +28,11 @@ Zulip. product. If it does, follow [these instructions](/integrations/doc/ifttt) to set it up. +* Use a third-party webhook integration designed to work with + [Slack's webhook API](https://api.slack.com/messaging/webhooks) + pointed at Zulip's + [Slack-compatible webhook API](/integrations/slack/slack_incoming). + * Check if [Hubot](https://github.com/hubot-scripts) has an integration with the product. If it does, follow [these instructions](/integrations/doc/hubot) to set it up. diff --git a/templates/zerver/help/import-from-slack.md b/templates/zerver/help/import-from-slack.md index 6a0ee137a0..1a6984ad31 100644 --- a/templates/zerver/help/import-from-slack.md +++ b/templates/zerver/help/import-from-slack.md @@ -109,3 +109,7 @@ root domain. Replace the last line above with the following, after replacing - The "joined #channel_name" messages are not imported. [upgrade-zulip-from-git]: https://zulip.readthedocs.io/en/latest/production/upgrade-or-modify.html#upgrading-from-a-git-repository + +## Related articles + +- [Slack-compatible incoming webhook](/integrations/doc/slack_incoming) diff --git a/zerver/lib/integrations.py b/zerver/lib/integrations.py index 29a842d44e..3b8ef8ab49 100644 --- a/zerver/lib/integrations.py +++ b/zerver/lib/integrations.py @@ -363,7 +363,7 @@ WEBHOOK_INTEGRATIONS: List[WebhookIntegration] = [ WebhookIntegration('sentry', ['monitoring']), WebhookIntegration( 'slack_incoming', - ['communication'], + ['communication', 'meta-integration'], display_name="Slack-compatible webhook", logo='images/integrations/logos/slack.svg', ), diff --git a/zerver/webhooks/slack/doc.md b/zerver/webhooks/slack/doc.md index 0ee3dcda59..83352b8016 100644 --- a/zerver/webhooks/slack/doc.md +++ b/zerver/webhooks/slack/doc.md @@ -1,6 +1,8 @@ Get Zulip notifications from Slack for messages on your team's public channels! +See also the [Slack-compatible webhook](/integrations/doc/slack_incoming). + 1. {!create-stream.md!} 1. {!create-bot-construct-url-indented.md!} diff --git a/zerver/webhooks/slack_incoming/doc.md b/zerver/webhooks/slack_incoming/doc.md index 4b8e6143c0..92e7b7900c 100644 --- a/zerver/webhooks/slack_incoming/doc.md +++ b/zerver/webhooks/slack_incoming/doc.md @@ -1,4 +1,6 @@ -Basic support for Slack-compatible webhooks. +This beta Zulip integration supports for processing incoming webhook +messages written to work with Slack's [incoming webhook +API](https://api.slack.com/messaging/webhooks). 1. {!create-stream.md!} @@ -7,3 +9,18 @@ Basic support for Slack-compatible webhooks. 1. Use your new webhook URL any place that you would use a Slack webhook. {!congrats.md!} + +Where possible, we prefer to create native Zulip integrations that +make optimal use of Zulip's topics and don't require translating +formatting, but this is a useful stopgap, especially for getting +messages from third-party vendors that only offer a Slack integration +(with no generic outgoing webhook API). + +This integration, by its nature, involves a somewhat complex +translation between Slack's formatting system and Zulip's. We +appreciate [feedback and bug reports](/help/contact-support) on any +cases where the resulting Zulip formatting is poor, so that we can +either improve the formatting or add an appropriate native integration. + +See also the [Slack notifications](/integrations/doc/slack) +integration for mirroring content from a Slack instance into Zulip.