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 Zulip send automated notification messages to the source topic, the destination topic, or both. These notifications 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.

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

  5. (optional) Change the topic.

  6. Toggle whether automated notification messages should be sent.

  7. Click Confirm.

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 the ellipsis ().

  3. Select the first option. It may be called View source / Move message, or simply Edit. If it's called View source, then you are not allowed to edit the stream of that message.

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

  5. (optional) Change the topic.

  6. Toggle whether automated notification messages should be sent.

  7. From the dropdown menu, select which messages to move:

    • Change later messages to this topic, which will move both the selected message and all following messages.

    • Change only this message topic, which will only move the selected message.

    • Change previous and following messages to this topic, which will move all messages in the topic.

  8. Click Save.

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 notifications 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.