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

1

Open the knowledge base

Go to Knowledge Bases, open one, and stay on its Sources tab.
2

Pick a type

Click Add source. Search by name (try “Zendesk”, “Swagger” or “PDF”) or filter by category. Pick a type and click Continue.
3

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

SourceWhat it indexesRefresh
WebsiteA documentation siteEvery 24 hours
ConfluencePages in Confluence Cloud spacesEvery 10 minutes
NotionNotion pages and databasesEvery 5 minutes
GitHub FilesMarkdown, READMEs and docs in a repositoryEvery hour
GitHub CodeSource code you pick by language, folder and patternEvery hour
YouTubeVideo transcripts from a channel and playlistsEvery 24 hours
Custom AnswersQuestions and answers you write by handWhen you save

Community & conversations

SourceWhat it indexesRefresh
DiscourseForum topics and replies, public or privateEvery 10 minutes
GitHub DiscussionsCommunity discussions on a repositoryEvery hour
Stack Overflow for TeamsYour private Teams instance, not the public siteEvery hour

Issues & tickets

SourceWhat it indexesRefresh
GitHub IssuesIssues and their commentsEvery 5 minutes
GitHub Pull RequestsPull request descriptions and reviewsEvery 5 minutes
JiraProject issues and their commentsEvery 10 minutes
LinearCompleted issues and documentsEvery 10 minutes

Customer support

SourceWhat it indexesRefresh
Zendesk Help CenterPublished Help Center articlesEvery 10 minutes
Zendesk TicketsResolved Zendesk tickets, filtered the way you chooseEvery 5 minutes
Jira Service ManagementResolved service desk requestsEvery 10 minutes
Salesforce KnowledgePublished Knowledge articlesEvery hour
Salesforce CasesSupport cases, with comments and email threadsEvery 10 minutes

Storage & files

SourceWhat it indexesRefresh
File UploadPDF, Word, Excel, CSV, Markdown, HTML and text filesWhen you upload
Google DriveThe Drive folders and files you pickEvery 10 minutes
OneDriveOne person’s OneDrive, through Microsoft 365Every 10 minutes
S3 BucketAny S3-compatible bucket: AWS, MinIO, R2, WasabiEvery 10 minutes

Developer & API

SourceWhat it indexesRefresh
OpenAPI SpecAPI reference answers from an OpenAPI spec URLEvery 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.
To choose which sources answer on which surface, put them in source groups. For what makes a page easy to answer from, see Writing documentation for retrieval.