Zulip

Zulip is a cloud chat app for managing live and asynchronous conversations.

Data integration: Skyvia supports importing data to and from Zulip, exporting Zulip data to CSV files, replicating Zulip data to relational databases, and synchronizing Zulip data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support Zulip.

Query: Skyvia Query supports Zulip.

Establishing Connection

To create a connection to Zulip, specify the URL, bot email, and API key.

Getting Credentials

To locate a bot email and API Key, perform the following actions:

  1. Go to Zulip, click the gear icon in the top right corner, and select Personal Settings.

Personal settings

  1. Click Bots in the appeared menu and copy the BOT EMAIL value and API KEY.

API Key

Creating Connection

Connection window

To connect to Zulip, do the following:

  1. In the Connection Editor, enter Zulip URL.
  2. Paste the obtained Bot email and Bot API KEY into corresponding boxes.

Connector Specifics

Object Peculiarities

Messages

By default, the Messages object returns records with Anchor = newest when querying. To get other records, you can set the filter with filters Anchor = oldest or Anchor = first_unread.

By default, fields To, Topic, QueueId, and LocalId return empty results when querying. These fields are used for import only.

The To field mapping differs by the message types. For stream messages, the To field can be either the name or integer ID of the stream. For direct messages, the To field can be either a list containing integer user IDs or string Zulip API email addresses. For example, [642087, 642088], some_email@gmail.com.

Drafts

When importing data to the Drafts object, the integration log doesn’t display the IDs of the inserted records.

Streams

By default, the Streams object returns only public streams when querying.

To select other records, you can set filters by the IncludePublic, IncludeWebPublic, IncludeSubscribed, IncludeAllActive, IncludeDefault, and IncludeOwnerSubscribed fields. When querying, these fields return empty results, and they are used for filtering only.

Incremental Replication and Synchronization

Skyvia supports Replication with Incremental Updates for Messages and Streams objects.

Skyvia supports Synchronization for the Messages object.

DML Operations Support

Operation Object
INSERT, UPDATE, DELETE Drafts, Messages, ScheduledMessages, Users
UPDATE, DELETE Streams

Stored Procedures

Skyvia represents part of the supported Zulip features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.

AddEmojiReaction

To add an emoji reaction to a message, use the command

call AddEmojiReaction(:message_id, :emoji_name)

RemoveEmojiReaction

To delete the emoji reaction, use the command

call RemoveEmojiReaction(:message_id, :emoji_name)

UpdatePersonalMessageFlags

To update the personal message flags, use the command

call UpdatePersonalMessageFlags(:messages, :op, :flag)

PARAMETER NAME DESCRIPTION
Messages List of message IDs for which you update the flags in array format. For example, [4, 5, 9]
Op Possible values are Add and Remove
Flag Flag which has to be updated/deleted. Valid values are Read, Starred, Collapsed, Mentioned, Wildcard Mentioned, Has Alert Word, Historical

MarkAllAsRead

To mark all the messages as read, use the command

call MarkAllAsRead()

ReactivateUser

To reactivate the specific user, use the following command

call ReactivateUser(:user_id)

DeactivateOwnUser

To deactivate the current user, use the command

call DeactivateOwnUser()

SetTypingStatus

To inform other users that the current user is typing a message.

call SetTypingStatus(:type, :op, :to, :topic)

PARAMETER NAME DESCRIPTION
Type Valid values are direct, stream or private
Op Whether the user has started (“start”) or stopped (“stop”) typing
To For “direct” type, it is the user IDs of the recipients of the message being typed. Send a JSON-encoded list of user IDs. (Use a list even if there is only one recipient.). For “stream” type, it is a single element list containing the ID of the stream in which the message is being typed. Example — [642089]
Topic Topic to which message is being typed. Required for the “stream” type. Ignored in the case of “direct” type

Supported Actions

Skyvia supports all the common actions for Zulip.