Files
zulip/help/bots-overview.md
Shubham Padia 7ce87c66ac help: Make loose lists tight for help center files.
In our current implementation, loose lists and tight lists look the same
visually. Loose lists are lists with blank lines between list items, and
the contents of a list item should be enclosed in a paragraph tag in
that case. For unordered lists, paragraph tags have a bottom margin in
starlight and thus looses lists look much more spaced out than tight
lists.

That is not the behaviour we had in mind while writing the
documentation, the reason we had all these loose lists is to make the
documentation easy to write and read. So we attempt to remove all the
blank lines and fix the problem at source. Since paragraph tags are used
for other purposes in a list in starlight, it won't be a wise decision
to let the source be as is and just change things in css, other expected
behaviours might break in that case. See this topic for more details:
https://chat.zulip.org/#narrow/channel/19-documentation/topic/new.20help.20center.3A.20regressions/near/2226084

All the changes were made by a one-off script which has not been
commited to the repo. The script wasn't perfect and could not decide
between blank lines that make a list loose vs blank lines necessary for
a sub-list or a code block inside a list item. A manual review of all
the changes was done before making this commit to ensure that no
unintended changes were made to the help center files.
2025-07-22 14:36:25 -07:00

3.8 KiB

Bots overview

Bots allow you to

  • Send content into and out of Zulip.
  • Send content to and from another product.
  • Automate tasks a human user could do.

A bot that sends content to or from another product is often called an integration.

Pre-made bots

Zulip natively supports integrations with over one hundred products, and with almost a thousand more through Zapier and IFTTT. If you're looking to add an integration with an existing product, see our list of integrations, along with those of Zapier and IFTTT.

Anatomy of a bot

You can think of a bot as a special kind of user, with limited permissions. Each bot has a name, profile picture, email, bot type and API key.

  • The name and profile picture play the same role they do for human users. They are the most visible attributes of a bot.
  • The email is not used for anything, and will likely be removed in a future version of Zulip.
  • The bot type determines what the bot can and can't do (see below).
  • The API key is how the bot identifies itself to Zulip. Anyone with the bot's API key can impersonate the bot.

Bot type

The bot type determines what the bot can do.

Bot type Permissions Common uses
Generic Like a normal user account Automating tasks, bots that listen to all messages on a channel
Incoming webhook Limited to only sending messages into Zulip Automated notifications into Zulip
Outgoing webhook Generic bot that also receives new messages via HTTP post requests Third party integrations, most custom bots

It's generally best to pick the most restricted bot type that is sufficient to do the task at hand. Anyone with the bot's API key can do anything the bot can.

A few more details:

  • Bots can send messages to any channel that their owner can, inheriting their owner's sending permissions.

  • Bots can be subscribed to channels, and their role can be modified if they need to have permission to do administrative actions.

  • Channel permissions are the same for bots as for other users. Therefore, for private channels with protected history, a bot can only access messages sent after it was subscribed to the channel.

  • Generic: A generic bot is like a normal Zulip user account that cannot log in via a browser. Note that if you truly want to impersonate yourself (e.g., write messages that come from your Zulip account), you'll need to use your personal API key.

  • Outgoing webhook: The bot can read direct messages where the bot is a participant, and channel messages where the bot is mentioned. When the bot is DM'd or mentioned, it POSTs the message content to a URL of your choice. The POST request format can be in a Zulip format or a Slack-compatible format.

    This is the preferred bot type for interactive bots built on top of Zulip Botserver.

Adding bots

By default, anyone other than guests can add a bot to a Zulip organization, but administrators can restrict bot creation. Any bot that is added is visible and available for anyone to use.