snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
This commit is contained in:
106
api_docs/outgoing-webhook-payload.md
Normal file
106
api_docs/outgoing-webhook-payload.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Outgoing webhook payloads
|
||||
|
||||
Zulip supports [outgoing webhooks](/help/outgoing-webhooks) in a clean,
|
||||
native [Zulip format](#zulip-format), as well as in a [Slack-compatible
|
||||
format](#slack-compatible-format).
|
||||
|
||||
## Zulip format
|
||||
|
||||
{generate_code_example|/zulip-outgoing-webhook:post|fixture}
|
||||
|
||||
### Fields documentation
|
||||
|
||||
{generate_return_values_table|zulip.yaml|/zulip-outgoing-webhook:post}
|
||||
|
||||
## Slack-compatible format
|
||||
|
||||
This webhook format is compatible with [Slack's outgoing webhook
|
||||
API](https://api.slack.com/custom-integrations/outgoing-webhooks),
|
||||
which can help with porting an existing Slack integration to work with
|
||||
Zulip, and allows immediate integration with many third-party systems
|
||||
that already support Slack outgoing webhooks.
|
||||
|
||||
The following table details how the Zulip server translates a Zulip
|
||||
message into the Slack-compatible webhook format.
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>token</code></td>
|
||||
<td>A string of alphanumeric characters you can use to
|
||||
authenticate the webhook request (each bot user uses a fixed token)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>team_id</code></td>
|
||||
<td>ID of the Zulip organization prefixed by "T".</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>team_domain</code></td>
|
||||
<td>Hostname of the Zulip organization</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>channel_id</code></td>
|
||||
<td>Channel ID prefixed by "C"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>channel_name</code></td>
|
||||
<td>Channel name</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>thread_ts</code></td>
|
||||
<td>Timestamp for when message was sent</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>timestamp</code></td>
|
||||
<td>Timestamp for when message was sent</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>user_id</code></td>
|
||||
<td>ID of the user who sent the message prefixed by "U"</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>user_name</code></td>
|
||||
<td>Full name of sender</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>text</code></td>
|
||||
<td>The content of the message (in Markdown)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>trigger_word</code></td>
|
||||
<td>Trigger method</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>service_id</code></td>
|
||||
<td>ID of the bot user</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
The above data is posted as list of tuples (not JSON), here's an example:
|
||||
|
||||
```
|
||||
[('token', 'v9fpCdldZIej2bco3uoUvGp06PowKFOf'),
|
||||
('team_id', 'T1512'),
|
||||
('team_domain', 'zulip.example.com'),
|
||||
('channel_id', 'C123'),
|
||||
('channel_name', 'integrations'),
|
||||
('thread_ts', 1532078950),
|
||||
('timestamp', 1532078950),
|
||||
('user_id', 'U21'),
|
||||
('user_name', 'Full Name'),
|
||||
('text', '@**test**'),
|
||||
('trigger_word', 'mention'),
|
||||
('service_id', 27)]
|
||||
```
|
||||
|
||||
* For successful requests, if data is returned, it returns that data,
|
||||
else it returns a blank response.
|
||||
* For failed requests, it returns the reason of failure, as returned by
|
||||
the server, or the exception message.
|
||||
Reference in New Issue
Block a user