Move content to another stream

Zulip makes it possible to move messages, or an entire topic, to another stream. Organizations can configure which roles have permission to move messages between streams.

To help others find moved content, you can have the notification bot send automated notices to the source topic, the destination topic, or both. These notices include:

  • A link to the source or destination topic.
  • How many messages were moved, or whether the whole topic was moved.
  • Who moved the content.

Move a topic to another stream

To move a topic, you must have access to both the source and destination streams.

  1. Hover over a topic in the left sidebar.

  2. Click on the ellipsis ().

  3. Select Move topic. If you do not see this option, you do not have permission to move this topic.

  4. Select the destination stream for the topic from the streams dropdown list.

  5. (optional) Change the topic name.

  6. Toggle whether automated notices should be sent.

  7. Click Confirm to move the topic to another stream.

Note: When a topic is moved to a private stream with protected history, messages in the topic will be visible to all the subscribers.

Move messages to another stream

  1. Hover over a message to reveal three icons on the right.

  2. Click on the ellipsis ().

  3. Select Move messages. If you do not see this option, you do not have permission to move this message.

  4. Select the destination stream from the streams dropdown list. If the stream input is disabled, you do not have permission to move this message to a different stream.

  5. (optional) Change the topic name.

  6. From the dropdown menu, select which messages to move.

  7. Toggle whether automated notices should be sent.

  8. Click Confirm to move the selected content to another stream.

Note: You cannot edit content of a message while changing its stream.

Moving content to private streams

Access to messages moved to another stream will immediately be controlled by the access policies for the destination stream. Content moved to a private stream will thus appear to be deleted to users who are not subscribers of the destination stream.

Content moved to a private stream with protected history will only be accessible to users who both:

  • Were subscribed to the original stream when the content was sent.
  • Are subscribed to the destination stream when the content is moved.

Moving content out of private streams

In private streams with protected history, Zulip determines whether to treat the entire topic as moved using the access permissions of the user requesting the topic move. This means that the automated notices sent by the notification bot will report that the entire topic was moved if the requesting user moved every message in the topic that they can access, regardless of whether older messages exist that they cannot access.

Similarly, muted topics will be migrated to the new stream and topic if the requesting user moved every message in the topic that they can access.

This model ensures that the topic editing feature cannot be abused to determine any information about the existence of messages or topics that one does not have permission to access.