A source is one place your content lives: a docs site, a repository, a Notion workspace, a folder of files. Kelu indexes each source into a knowledge base, and answers cite the page, ticket or file they came from.
Add a source
Open the knowledge base
Go to Knowledge Bases, open one, and stay on its Sources tab.
Pick a type
Click Add source. Search by name (try “Zendesk”, “Swagger” or “PDF”) or filter by category. Pick a type and click Continue.
Fill in the form
Work through Name & Knowledge Base (a Display name, the Visibility, and optionally a Group and Version label), Connection Settings and Ingestion & Review, then click Add source. Confluence and Zendesk Tickets use a one-page form that ends with Deploy. The first sync starts right away.
You need the Sources permission on the knowledge base to add, edit or delete sources. See Roles & Permissions.
On the Free plan you can add Website, File Upload, Custom Answers, OpenAPI Spec and YouTube sources. Every other type needs Pro. See Billing.
Source types
Refresh is how often Kelu checks each source for changes. See Keeping content fresh.
Documentation & content
| Source | What it indexes | Refresh |
|---|
| Website | A documentation site | Every 24 hours |
| Confluence | Pages in Confluence Cloud spaces | Every 10 minutes |
| Notion | Notion pages and databases | Every 5 minutes |
| GitHub Files | Markdown, READMEs and docs in a repository | Every hour |
| GitHub Code | Source code you pick by language, folder and pattern | Every hour |
| YouTube | Video transcripts from a channel and playlists | Every 24 hours |
| Custom Answers | Questions and answers you write by hand | When you save |
| Source | What it indexes | Refresh |
|---|
| Discourse | Forum topics and replies, public or private | Every 10 minutes |
| GitHub Discussions | Community discussions on a repository | Every hour |
| Stack Overflow for Teams | Your private Teams instance, not the public site | Every hour |
Issues & tickets
| Source | What it indexes | Refresh |
|---|
| GitHub Issues | Issues and their comments | Every 5 minutes |
| GitHub Pull Requests | Pull request descriptions and reviews | Every 5 minutes |
| Jira | Project issues and their comments | Every 10 minutes |
| Linear | Completed issues and documents | Every 10 minutes |
Customer support
| Source | What it indexes | Refresh |
|---|
| Zendesk Help Center | Published Help Center articles | Every 10 minutes |
| Zendesk Tickets | Resolved Zendesk tickets, filtered the way you choose | Every 5 minutes |
| Jira Service Management | Resolved service desk requests | Every 10 minutes |
| Salesforce Knowledge | Published Knowledge articles | Every hour |
| Salesforce Cases | Support cases, with comments and email threads | Every 10 minutes |
Storage & files
| Source | What it indexes | Refresh |
|---|
| File Upload | PDF, Word, Excel, CSV, Markdown, HTML and text files | When you upload |
| Google Drive | The Drive folders and files you pick | Every 10 minutes |
| OneDrive | One person’s OneDrive, through Microsoft 365 | Every 10 minutes |
| S3 Bucket | Any S3-compatible bucket: AWS, MinIO, R2, Wasabi | Every 10 minutes |
Developer & API
| Source | What it indexes | Refresh |
|---|
| OpenAPI Spec | API reference answers from an OpenAPI spec URL | Every hour |
Five types read a GitHub repository. GitHub Files takes the documentation, GitHub Code takes the code you pick, and Issues, Pull Requests and Discussions take the conversations. Add as many as you need side by side.
The browser extension can also save a page, or a passage you highlight, into a File Upload source called “Web clips”.
Keeping content fresh
Every source syncs on its own fixed schedule, shown in the tables above. There is nothing to configure. A sync only re-processes content that changed.
- Click Sync Now on a source’s page to sync it right away. File Upload and Custom Answers have no Sync Now: upload again, or edit the answer.
- A GitHub source can also re-index on every push. See GitHub Files.
- Changes to a source’s Configuration apply on its next sync.
- Kelu stores a source’s tokens and keys encrypted. If a sync, or adding or re-crawling a page, fails saying the stored credential could not be decrypted, nothing was fetched and no document was removed. Open the source’s Configuration tab, click Edit and enter the credential again. A Google Drive source you connected by signing in to Google has no credential to type: remove it and add it again. If the message says Kelu has no encryption key configured, the credential is intact and there is nothing to re-enter: contact support.
- Slack and Discord can no longer be added as sources. Ones added earlier keep syncing, every 6 hours and every 2 hours.
Remove a document
Open the source’s Documents tab and click Remove from the index. The document is deleted and its address is added to the Excluded tab, so later syncs skip it. An address ending in / covers everything beneath it. A source can exclude up to 500 addresses.
For a File Upload source the document is simply deleted. For Custom Answers, turn the answer off instead. On a Zendesk Tickets source a removed ticket comes back on the next sync. Use the source’s tag filters to keep tickets out.
Visibility
Each source decides whether the documents it creates are Public or Restricted. Restricted documents never reach the widget, the SDKs, the public API or MCP clients that use a client key. Workspace members on the Ask page, and Kelu’s Slack, Discord and Teams bots, still get answers from them. See Document visibility.
- Choose Visibility when you add the source. It sits under the source’s name in the Add source form, and the review step shows your choice before you add it.
- Zendesk Tickets, Salesforce Cases, Jira Service Management, Slack and Discord sources start as Restricted, because they hold people’s own conversations. Every other type starts as Public. You can pick either one for any type.
- To change it later, open the source’s Configuration tab, click Edit, and set Indexing → New documents. That applies only to documents indexed from then on. Documents already indexed keep theirs.
- In an internal knowledge base every document is restricted and the setting is locked to Restricted.
The first sync starts as soon as you add a source, so pick Visibility before you add it. If content must never be public (an internal wiki, a private repository), add the source to an internal knowledge base.
When a sync changes a lot
Kelu holds a sync for review instead of deleting documents when:
- it would remove more than 45% of the source’s documents, or
- (websites only) more than 45% of the pages are new, changed or gone, or
- (websites only) the crawl stopped at its Max pages limit with pages left to visit. The run is marked failed with
page_limit_reached. Raise Max pages or narrow the crawl.
A banner on the source page shows what would go. Click Remove N documents to apply the removals, or Keep them to keep the documents. New and changed content from the sync is already live either way. Scheduled syncs pause until you decide.