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

# Set up knowledge

> Connect Slack, Notion, Confluence, Google Drive, GitHub, Guru, Zendesk, and websites so Ravenna's AI can answer questions from your own documentation.

export const ArcadeEmbed = ({code, title = 'Demo', aspect = 56.25}) => {
  const arcadeIframeRef = useRef(null);
  useEffect(() => {
    function onArcadeIframeMessage(e) {
      if (e.origin !== 'https://demo.arcade.software' || !e.isTrusted) return;
      const arcadeIframe = arcadeIframeRef.current;
      if (!arcadeIframe || !arcadeIframe.contentWindow) return;
      if (e.data.event === 'arcade-init') {
        arcadeIframe.contentWindow.postMessage({
          event: 'register-popout-handler'
        }, '*');
      }
      if (e.data.event === 'arcade-popout-open') {
        arcadeIframe.style['position'] = 'fixed';
        arcadeIframe.style['z-index'] = '9999999';
      }
      if (e.data.event === 'arcade-popout-close') {
        arcadeIframe.style['position'] = 'absolute';
        arcadeIframe.style['z-index'] = 'auto';
      }
    }
    window.addEventListener('message', onArcadeIframeMessage);
    const arcadeIframe = arcadeIframeRef.current;
    if (arcadeIframe && arcadeIframe.contentWindow) {
      arcadeIframe.contentWindow.postMessage({
        event: 'register-popout-handler'
      }, '*');
    }
    return () => {
      if (arcadeIframe && arcadeIframe.contentWindow) {
        arcadeIframe.contentWindow.postMessage({
          event: 'unregister-popout-handler'
        }, '*');
      }
      window.removeEventListener('message', onArcadeIframeMessage);
    };
  }, []);
  const embedUrl = `https://demo.arcade.software/${code}?embed&embed_mobile=tab&embed_desktop=inline`;
  return <div style={{
    position: 'relative',
    paddingBottom: `calc(${aspect}% + 41px)`,
    height: 0,
    width: '100%'
  }}>
      <iframe ref={arcadeIframeRef} src={embedUrl} title={title} frameBorder="0" loading="lazy" allowFullScreen allow="clipboard-write" style={{
    position: 'absolute',
    top: 0,
    left: 0,
    width: '100%',
    height: '100%',
    colorScheme: 'light'
  }} />
    </div>;
};

Knowledge is what makes Ravenna's AI useful. You point it at the documentation you already have, Ravenna indexes it, and agents answer from it instead of guessing. Folders are the unit of organization and the unit of permission, so how you group documents decides which channels and agents can see them.

**Time:** about 20 minutes, plus indexing time.

<Tabs>
  <Tab title="Interactive walkthrough">
    <ArcadeEmbed code="ezvbWtyzpweEk5CpLuYF" title="Setting up knowledge folders" aspect={62.55} />
  </Tab>

  <Tab title="Step-by-step">
    <Steps>
      <Step title="Go to Knowledge">
        Click **Knowledge** in the left sidebar.
      </Step>

      <Step title="Create your first folder">
        Click **New Folder**.

        <Frame>
          ![The Knowledge page with a New Folder button](https://d1kzozfjh72w00.cloudfront.net/documentation/screenshots/guides/getting-started/knowledge/1.png)
        </Frame>

        Name the folder, pick a color, choose an emoji, then click **Save**.

        <Frame>
          ![The new knowledge folder dialog](https://d1kzozfjh72w00.cloudfront.net/documentation/screenshots/guides/getting-started/knowledge/2.webp)
        </Frame>

        Open your new folder to continue.

        <Frame>
          ![An empty knowledge folder ready for documents](https://d1kzozfjh72w00.cloudfront.net/documentation/screenshots/guides/getting-started/knowledge/3.webp)
        </Frame>

        <Tip>
          Name folders after the audience, not the tool. "IT runbooks" and "People policies" scope cleanly to channels and agents later. "Notion" does not.
        </Tip>
      </Step>

      <Step title="Add a document">
        Inside the folder, click **Add Document** to open the integrations modal.

        <Frame>
          ![The integrations modal listing available knowledge sources](https://d1kzozfjh72w00.cloudfront.net/documentation/screenshots/guides/getting-started/knowledge/4.webp)
        </Frame>

        This example uses Notion. Any source works the same way from here.
      </Step>

      <Step title="Select the pages to index">
        When Notion opens, confirm you are in the correct Notion workspace using the picker in the top right, review the permissions, then click **Select pages**.

        <Frame>
          ![The Notion authorization screen](https://d1kzozfjh72w00.cloudfront.net/documentation/screenshots/guides/getting-started/knowledge/5.png)
        </Frame>

        In the page picker you can grant access at the workspace level to index everything, limit access to specific parent pages such as a single database, or search for individual pages.

        <Frame>
          ![The Notion page picker with specific pages selected](https://d1kzozfjh72w00.cloudfront.net/documentation/screenshots/guides/getting-started/knowledge/6.png)
        </Frame>

        Click **Allow access** when you are done.

        <Tip>
          Grant the narrowest access that covers your answers. Indexing an entire Notion workspace pulls in meeting notes and drafts, and every irrelevant document is one more thing search has to rank past.
        </Tip>
      </Step>

      <Step title="Watch documents ingest">
        Back in the folder, documents start indexing. Track progress in the **Status** column.

        <Frame>
          ![The documents list showing ingestion status](https://d1kzozfjh72w00.cloudfront.net/documentation/screenshots/guides/getting-started/knowledge/7.png)
        </Frame>
      </Step>

      <Step title="Test it before anyone else does">
        Once **Status** reads **Done**, open the **Chat** tab in the right sidebar and ask the questions your team actually gets.

        <Frame>
          ![The knowledge chat panel answering a question with citations](https://d1kzozfjh72w00.cloudfront.net/documentation/screenshots/guides/getting-started/knowledge/8.png)
        </Frame>

        For each answer you can upvote or downvote to improve results, copy the response, or regenerate it.

        This is the cheapest place to find out that a policy page is three years old or that the answer only exists in a screenshot. Fix the source document, sync, and ask again.
      </Step>

      <Step title="Set sync and scope">
        Open the **Details** tab in the right sidebar.

        <Frame>
          ![The folder Details panel with sync and scoping controls](https://d1kzozfjh72w00.cloudfront.net/documentation/screenshots/guides/getting-started/knowledge/9.png)
        </Frame>

        * **Daily auto-sync** refreshes every document in the folder once a day. Turn it on for anything that changes.
        * **Knowledge to all channels** is on by default. Turn it off to restrict the folder to specific channels.
        * **Agents** limits the folder to specific agents.

        Channel and agent scoping stack. An agent reaches a folder only if both the channel and the agent are permitted.
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Where else knowledge can come from

Notion is one of nine sources, and most teams end up using two or three:

<CardGroup cols={2}>
  <Card title="Slack" href="/integrations/slack/knowledge" horizontal>
    Index the threads where your team has already answered the question.
  </Card>

  <Card title="GitHub" icon="github" href="/integrations/github/knowledge" horizontal>
    Index markdown and repository files through the GitHub App.
  </Card>

  <Card title="Confluence" href="/integrations/confluence/knowledge" horizontal>
    Sync spaces and pages.
  </Card>

  <Card title="Website" href="/documentation/automate/knowledge/sources/website" horizontal>
    Crawl a public site, including an existing help center.
  </Card>
</CardGroup>

Google Drive, Coda, Guru, and Zendesk work the same way.

<Callout icon="link" color="#6B7280">Learn more about [every knowledge source](/documentation/automate/knowledge/overview#knowledge-sources)</Callout>

## Finding things later

Search from the **Folders** tab matches folder names and document titles across every folder in the workspace, so you do not need to remember which folder owns a runbook. Selecting a folder result opens it with your search term still applied.

## What to do next week

Your first import will not cover everything, and that is expected. Ravenna tracks the questions agents could not answer as **knowledge gaps**, clusters them by topic, and ranks them by severity. Working that list is how knowledge gets good, rather than trying to predict every question up front.

<Callout icon="link" color="#6B7280">Learn more about [knowledge gaps](/documentation/automate/knowledge/knowledge-gaps) and how to [close them](/guides/how-to/close-knowledge-gaps)</Callout>

## Next

Knowledge on its own answers nothing until an agent is listening.

<Card title="Set up an AI agent" icon="arrow-right" href="/guides/day-one/set-up-agent">
  Put an agent in your channel, point it at this knowledge, and test it safely before anyone sees it.
</Card>


## Related topics

- [Set up your first workflow](/guides/day-one/set-up-first-workflow.md)
- [What is Ravenna?](/documentation/get-started/overview.md)
- [Day one](/guides/day-one/overview.md)
- [Set up an AI agent](/guides/day-one/set-up-agent.md)
- [Set up your first workspace](/guides/day-one/set-up-workspace.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.