Team Chat

Zulip, worked by an AI employee

Not another app for your team to learn, and not a set of rules for you to build. You hire an AI employee, you give it access to your Zulip account, and you ask it for things in Slack or Teams the way you would ask anyone else on the team. There is nothing to map and nothing to maintain.

  • Team Chat
  • Connects with a key
  • 100 ready-made tools
  • Asked in Slack or Teams
At work

An illustration of how the conversation reads, not a transcript from a client account.

What Zulip is

Chat for distributed teams. Zulip combines the immediacy of real-time chat with an email threading model.

You paste in a key from your own Zulip account. It is kept encrypted, and you can withdraw it from inside Zulip whenever you like.

How a run works

One message in, the work done in Zulip.

  1. 01

    You ask

    You message your AI employee in the chat your team already has open, in one sentence, in your own words.

  2. 02

    It works out the step

    It decides what the job needs in Zulip. You do not pick anything from a menu or wire anything together.

  3. 03

    It does the work

    Signed in to your own Zulip account, inside the access you granted it, doing the thing you asked for.

  4. 04

    It reports back

    It tells you what it did, in the same thread. If it could not do something, it says so rather than guessing.

100 tools it already has

What it can do in Zulip

These are the ready-made tools your AI employee already has in Zulip. It is not limited to them, but it never has to be taught these.

  • Add Alert WordsTool to add alert words to the current user's configuration. Use when you need to configure words that trigger notifications for the user. Alert words are case insensitive and dupl
  • Add APNs Device TokenTool to add an APNs (Apple Push Notification service) device token to Zulip. Use when registering an iOS device for push notifications.
  • Add Default StreamTool to add a channel as a default stream in Zulip. Use when you want to configure a channel to be automatically subscribed for all new users joining the organization.
  • Add LinkifierTool to add a linkifier to a Zulip realm. Use when you need to automatically convert text patterns (like issue numbers or ticket IDs) into clickable links in messages.
  • Add Navigation ViewTool to add a navigation view in Zulip. Use when you need to create a custom navigation view or configure a built-in view for display in the sidebar.
  • Add ReactionTool to add an emoji reaction to a Zulip message. Use when you want to react to a message with an emoji.
  • Archive ChannelTool to archive a channel in Zulip. Use when you need to permanently archive a channel by its ID.
  • Check Messages Match NarrowTool to check if specific messages match a narrow filter. Use when you need to determine whether messages satisfy complex search criteria that the client cannot evaluate locally.
  • Create BigBlueButton video callTool to create a BigBlueButton video call in Zulip. Use when you need to generate a video conference link for team meetings or discussions.
  • Create ChannelTool to create a new channel in Zulip. Use when you need to set up a new communication channel with specified subscribers. Channels organize conversations by topic within Zulip.
  • Create Channel FolderTool to create a new channel folder in Zulip. Use when you need to organize channels into folders for better management.
  • Create custom profile fieldTool to create a custom profile field in Zulip. Use when you need to add custom user profile fields for organization members.
  • Create DraftsTool to create one or more draft messages in Zulip. Use when you need to save message drafts for later editing or sending.
  • Create Message ReminderTool to create a message reminder in Zulip. Use when you need to set up a reminder for a specific message that will be sent at a scheduled time via the Notification Bot.
  • Create reusable invitation linkTool to create a reusable invitation link for the Zulip organization. Use when you need to generate an invite link that can be shared with multiple users to join the organization.
  • Create Saved SnippetTool to create a saved snippet in Zulip. Use when you need to save reusable text content that can be quickly inserted into messages.
  • Create Scheduled MessageTool to create a scheduled message in Zulip. Use when you need to schedule a message to be sent at a future time to channels or direct messages.
  • Delete DraftTool to delete a draft in Zulip. Use when you need to remove a saved draft message.
  • Delete Event QueueTool to delete an event queue previously registered via POST /api/v1/register. Use when you need to clean up a queue that is no longer needed.
  • Delete MessageTool to delete a message in Zulip. Use when you need to remove a message from a stream or direct message conversation.
  • Delete ReminderTool to delete a reminder from Zulip. Use when you need to remove a scheduled reminder by its ID.
  • Delete Saved SnippetTool to delete a saved snippet by its ID. Use when you need to remove a snippet from saved snippets.
  • Delete Scheduled MessageTool to delete a scheduled message in Zulip. Use when you need to cancel a message that was scheduled to be sent later. This is permanent and cannot be undone.
  • Delete TopicTool to delete a topic from a Zulip channel/stream. Use when you need to permanently remove a topic and all its messages from a specific stream. Note: This operation is irreversibl
  • Edit DraftTool to edit an existing draft message in Zulip. Use when you need to update the content, topic, recipients, or other properties of a saved draft.
  • Edit Navigation ViewTool to update a navigation view in Zulip. Use when you need to pin/unpin a view or rename a custom navigation view.
  • Edit Saved SnippetTool to edit a saved snippet by updating its title and/or content. Use when you need to modify an existing snippet.
  • Export RealmTool to create a Zulip realm data export. Use when you need to export organization data. The export is created asynchronously and can be downloaded later.
  • Get alert wordsTool to retrieve all configured alert words for the authenticated user. Use when you need to check which words or phrases trigger notifications.
  • Get All ChannelsTool to retrieve all channels (streams) in Zulip that match specified filters. Use when you need to list available channels, discover public channels, or find channels the user has
  • Get all data exportsTool to retrieve all data exports for the Zulip organization. Use when you need to list all data exports, including their status (pending, completed, or failed) and download URLs.
  • Get all invitationsTool to retrieve all unexpired invitations for the Zulip organization. Use when you need to list all active email invitations and reusable invitation links that can be managed by t
  • Get Another User PresenceTool to get the presence status for a specific user in Zulip. Use when you need to check if a user is currently active, idle, or offline. This endpoint is designed for embedding pr
  • Get AttachmentsTool to retrieve metadata on files uploaded by the requesting user. Use when you need to list all attachments with their details including file names, sizes, and associated message
  • Get Channel by IDTool to get detailed information about a Zulip channel by its ID. Use when you need to retrieve complete channel details including permissions, settings, and metadata.
  • Get channel email addressTool to retrieve the email address for a Zulip channel. Use when you need to get the email address that can be used to send messages to a specific channel via email.
  • Get Channel FoldersTool to retrieve all channel folders in the organization, sorted by display order. Use when you need to list or organize channel folders.
  • Get Channel IDTool to get a channel's unique ID by its name. Use when you need to retrieve the numeric identifier for a channel given its human-readable name.
  • Get Channel SubscribersTool to get all subscribers of a Zulip channel. Use when you need to retrieve the list of user IDs subscribed to a specific channel.
  • Get custom emojiTool to retrieve all custom emoji configured in the Zulip realm. Use when you need to get the list of available custom emoji including their names, IDs, and source URLs.
  • Get custom profile fieldsTool to get all custom profile fields configured for the Zulip realm. Use when you need to retrieve the list of custom profile fields including their types, names, and configuratio
  • Get draftsTool to fetch all drafts for the authenticated user. Use when you need to retrieve all saved draft messages, which are returned in order of last edit time (most recent first).
  • Get EventsTool to get events from a Zulip event queue. Use when you need to retrieve new events after registering a queue.
  • Get file temporary URLTool to get a public temporary URL for an uploaded file in Zulip. Use when you need to access or share a file that was previously uploaded to the Zulip organization.
  • Get linkifiersTool to retrieve all configured linkifiers in the Zulip realm. Use when you need to get the list of regex patterns that are automatically converted to links in messages and topics.
  • Get messageTool to fetch a single message by ID from Zulip. Use when you need to retrieve the full details of a specific message including its content, sender, reactions, and edit history.
  • Get Message HistoryTool to fetch the complete edit history of a Zulip message. Use when you need to see all changes made to a message over time, including content edits, topic changes, and channel mo
  • Get MessagesTool to fetch messages from Zulip. Use when you need to retrieve messages using various filters like anchor position, narrow queries, or specific message IDs. Supports pagination v
  • Get Navigation ViewsTool to fetch all navigation views for the authenticated user. Use when you need to retrieve all configured custom navigation views, which are displayed in the sidebar or 'More Vie
  • Get own userTool to retrieve the profile information for the authenticated user. Use when you need to get details about the current user such as email, full name, role, timezone, or other prof
  • Get Read ReceiptsTool to retrieve read receipts for a message in Zulip. Use when you need to see which users have read a specific message.
  • Get realm export consentsTool to retrieve data export consent state for users in a realm. Use when you need to check which users have consented for their private data to be exported by organization adminis
  • Get realm iconTool to retrieve the URL of the Zulip realm's icon. Use when you need to get the organization's icon image URL.
  • Get Realm PresenceTool to get the presence status for all users in the Zulip realm. Use when you need to check which users are currently active, idle, or offline across the entire organization. If a
  • Get remindersTool to fetch all undelivered reminders for the authenticated user. Use when you need to retrieve scheduled reminders, which are returned in order of scheduled delivery time. This
  • Get Saved SnippetsTool to fetch all saved snippets for the authenticated user. Use when you need to retrieve reusable text content that can be quickly inserted into messages.
  • Get Scheduled MessagesTool to fetch all scheduled messages for the authenticated user. Use when you need to retrieve all undelivered scheduled messages, which are returned in order of scheduled delivery
  • Get server settingsTool to retrieve server configuration and available authentication methods. Use when you need to discover server capabilities, version information, or available login options befor
  • Get stream topicsTool to retrieve all topics in a Zulip channel. Use when you need to get the list of discussion topics within a specific channel, along with the maximum message ID for each topic.
  • Get subscription statusTool to check whether a specific user is subscribed to a particular channel (stream). Use when you need to verify subscription status of a user for a given channel.
  • Get SubscriptionsTool to retrieve all channels (streams) the authenticated user is subscribed to. Use when you need to list subscribed channels with their details including names, IDs, and optional
  • Get user by emailTool to fetch a user by email address from Zulip. Use when you need to retrieve detailed information about a specific user including their profile, role, and status.
  • Get user channelsTool to retrieve the list of channel IDs that a specific user is subscribed to. Use when you need to get a user's subscribed channels.
  • Get user group membersTool to retrieve all members of a specific user group. Use when you need to get the list of user IDs who are members of a user group.
  • Get user group membership statusTool to check if a user is a member of a specific user group. Use when you need to verify user group membership status.
  • Get user group subgroupsTool to retrieve subgroups of a user group. Use when you need to get the list of subgroup IDs for a specific user group.
  • Get user groupsTool to retrieve all user groups in the Zulip organization. Use when you need to list user groups with their members, subgroups, and permission settings.
  • Get user statusTool to retrieve the status currently set by a user in the Zulip organization. Use when you need to get a user's custom status message, emoji, or away status. Available in Zulip 9.
  • Mark All Messages as ReadTool to mark all messages as read for the authenticated user. Use when you need to clear all unread message indicators. Note: This endpoint is deprecated.
  • Mark Stream as ReadTool to mark all messages in a Zulip channel as read. Use when you need to mark all unread messages in a specific channel as read.
  • Mark Topic as ReadTool to mark all messages in a topic as read. Use when you need to clear unread status for all messages within a specific topic in a channel.
  • Mute TopicTool to mute or unmute a topic in a Zulip channel. Use when you want to control topic notifications by muting or unmuting specific topics.
  • Reactivate UserTool to reactivate a deactivated user in Zulip. Use when you need to restore access for a previously deactivated user account.
  • Register Event QueueTool to register an event queue for receiving Zulip events. Use when you need to set up an event queue to receive real-time updates about messages, subscriptions, and other realm e
  • Register Push DeviceTool to register an E2EE (end-to-end encrypted) push device for mobile notifications. Use when setting up push notifications with encrypted payloads for mobile clients.
  • Remove Alert WordsTool to remove alert words from the current user's configuration. Use when you need to delete words that trigger notifications for the user. Words not in the user's set are automat
  • Remove AttachmentTool to delete an attachment in Zulip. Use when you need to remove a file attachment that was previously uploaded.
  • Remove Code PlaygroundTool to remove a code playground from a Zulip realm. Use when you need to delete an existing code playground configuration.
  • Remove Default StreamTool to remove a channel from default streams in Zulip. Use when you want to stop a channel from being automatically subscribed to all new users joining the organization.
  • Remove FCM TokenTool to remove an FCM registration token for Android push notifications. Use when unregistering a device from push notifications in Zulip. Note: This endpoint is deprecated.
  • Remove LinkifierTool to remove a linkifier from a Zulip realm. Use when you need to delete an existing linkifier that automatically converts text patterns into clickable links.
  • Remove Navigation ViewTool to remove a navigation view in Zulip. Use when you need to delete a custom navigation view from the sidebar.
  • Remove ReactionTool to remove an emoji reaction from a Zulip message. Use when you want to remove a previously added reaction from a message.
  • Render MessageTool to render a message to HTML in Zulip. Use when you need to preview how a message will appear when rendered from Markdown to HTML format.
  • Reorder Channel FoldersTool to reorder channel folders in Zulip. Use when you need to change the display order of channel folders. The order list must include all organization channel folder IDs.
  • Reorder Custom Profile FieldsTool to reorder custom profile fields in Zulip. Use when you need to change the display order of custom profile fields in user profiles and settings. The order list must include al
  • Reorder LinkifiersTool to reorder linkifiers in Zulip. Use when you need to change the processing order of linkifiers in a realm. The order matters when patterns overlap.
  • Revoke Email InvitationTool to revoke an email invitation in Zulip. Use when you need to cancel a pending invitation that has not yet been accepted.
  • Revoke reusable invitation linkTool to revoke a reusable invitation link for the Zulip organization. Use when you need to invalidate an invite link that was previously created.
  • Send MessageTool to send a message in Zulip. Use when you need to send a direct message to users or post a message to a channel/stream.
  • Send Test NotificationTool to send a test notification to mobile device(s). Use when testing push notifications for mobile clients. Note: This endpoint is deprecated.
  • Set Typing StatusTool to set typing status in Zulip. Use when you want to indicate that a user is typing or has stopped typing a message.
  • Set Typing Status for Message EditTool to set typing status when editing a message in Zulip. Use when you want to indicate that a user is editing or has stopped editing a specific message.
  • Subscribe to ChannelTool to subscribe users to one or more Zulip channels. Use when you need to add users to channels. If a channel doesn't exist, it will be created automatically. By default, subscri
  • Test Welcome Bot Custom MessageTool to test welcome bot custom message in Zulip. Use when you need to preview how a custom welcome message will appear before setting it as the default for new users.
  • Unsubscribe From ChannelTool to unsubscribe from one or more channels (streams) in Zulip. Use when you need to remove users from channels or unsubscribe the authenticated user from channels.
  • Update Channel FolderTool to update a channel folder in Zulip. Use when you need to modify the name, description, or archive status of an existing channel folder.
  • Update LinkifierTool to update a linkifier in a Zulip realm. Use when you need to modify the pattern or URL template of an existing linkifier that automatically converts text patterns into clickab
  • Update MessageTool to edit a message in Zulip. Use when you need to update message content, move messages to a different topic or channel, or resolve topics.
  • Update Message FlagsTool to update personal message flags in Zulip. Use when you need to mark messages as read/unread, starred/unstarred, or modify other personal message flags. This allows bulk opera
Access, and who is in charge of it

You stay the boss of your Zulip account.

Nothing connects until you approve it. You grant access one app at a time, you can take it back the same way, and everything your AI employee does in there is written down where you can see it.

How we handle your data
  • It signs in to your own Zulip account. You are not moving anything into ours.
  • You grant access one app at a time, and you can take it back the same way.
  • Everything it does in Zulip is written down, with what it did and when.
  • Anything you tell it to check with you first, it checks with you first.
Other apps in the same corner of the business

It works in Zulip and the rest of your software in the same job

A real job rarely stays in one place. Reading a message in one app, checking a record in another and writing the result in a third is one request to your AI employee, not three.

Questions people ask about Zulip

Can an AI employee really work inside Zulip?
Yes. It signs in to your own Zulip account and works in it the way a new hire would, from the chat your team already has open. Nobody installs anything, and nobody learns a new screen.
Do I have to move anything out of Zulip?
No. Nothing moves and nothing is replaced. Your records stay in Zulip, your team carries on in the same screens they used yesterday, and your AI employee works alongside them in there.
How does it get into my Zulip account?
You paste in a key from your own Zulip account. It is kept encrypted, and you can withdraw it from inside Zulip whenever you like. You approve it before anything connects, and you can take the access back the same way you gave it.
What can it actually do in Zulip?
It has 100 ready-made tools in Zulip today, among them Add Alert Words, Add APNs Device Token and Add Default Stream. The full list is on this page. It is not limited to those, but it never has to be taught them.
Can it use Zulip and the rest of my software in the same job?
Yes, and that is usually the point. Reading a message in one app, checking a record in Zulip and writing the result somewhere else is one request to your AI employee, not three separate ones you stitch together.
Who decides what it is allowed to do in Zulip?
You do. You grant access one app at a time and can withdraw it at any time, anything you ask it to check with you first it checks with you first, and everything it does in Zulip is written down with what it did and when.