> ## Documentation Index
> Fetch the complete documentation index at: https://koreai.mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Zulip Connector

<Badge icon="arrow-left" color="gray">[Back to Search AI connectors list](/ai-for-service/searchai/content-sources#supported-connectors)</Badge>

**Zulip** is a team communication platform that organizes conversations using topic-based threading within streams or channels. Search AI ingests messages from Zulip, enabling fast and efficient search across all conversations.

| Specification              | Details                            |
| -------------------------- | ---------------------------------- |
| Repository type            | Cloud                              |
| Supported content          | Messages inside topics in channels |
| RACL support               | Yes                                |
| Content filtering          | No                                 |
| Auto permission resolution | Yes                                |

## Prerequisites

Search AI communicates with Zulip through its APIs and requires an API key to authenticate requests.

### Generate an API Key in Zulip

1. Click your **profile picture** (top right corner).
2. Go to **Personal Settings**.
3. On the **Account and Privacy** page, go to the **API Key** section and generate your API key.

## Configure the Zulip Connector in Search AI

Go to the **Connectors** home page in Search AI and select **Zulip**. On the **Authorization** tab, provide the following details and click **Connect**.

| Field        | Description                                         |
| ------------ | --------------------------------------------------- |
| **Name**     | Unique name for the connector                       |
| **API Key**  | API key generated in Zulip                          |
| **Host URL** | Host URL for your Zulip organization                |
| **Email ID** | Email address used to generate the API key in Zulip |

## Content Ingestion

Search AI ingests messages from topics across streams or channels. Each sync ingests content from the past 30 days. Existing content older than this timeframe is automatically removed from Search AI.

Depending on message size, up to three messages may be concatenated into a single ingested document. The `content` field in each document includes the channel name, topic, message text, and message author. Additional metadata is stored in separate fields within the document.

## RACL Support

Search AI enforces access control for Zulip content at the channel level. Access is determined by the stream type.

### Access Control for Zulip Streams

Each message in Zulip is linked to a stream, which can be **public**, **private**, or **web-public**. When content is ingested, the stream identifier is stored in the `sys_racl` field:

| Stream Type    | `sys_racl` Value  |
| -------------- | ----------------- |
| **Public**     | Organization name |
| **Private**    | Channel ID        |
| **Web-public** | `*`               |

Search AI supports automatic resolution of permission entities for Zulip streams. It automatically identifies users with access to each stream and associates them with the corresponding permission entity — no manual API mapping is required.
