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

# Sanity

> Connect your Sanity CMS to search content

Enhance your chatbot with real-time access to your Sanity content. The Sanity integration allows your chatbot to search documents.

## Why Connect Sanity?

<CardGroup cols={2}>
  <Card title="Content Search" icon="magnifying-glass">
    Chatbot can search and retrieve Sanity documents
  </Card>

  <Card title="Structured Content" icon="layers">
    Works with Sanity's powerful structured content
  </Card>

  <Card title="Project Token Auth" icon="lock">
    Secure authentication with project tokens
  </Card>
</CardGroup>

## Prerequisites

* Sanity project with content
* Admin access to your Sanity project
* Project token (API token) generated from your Sanity dashboard
* Sanity dataset configured

## Setup Steps

<Steps>
  <Step title="Navigate to Integrations">
    Go to **Dashboard** → **Integrations** and find the Sanity card
  </Step>

  <Step title="Click Connect">
    Click **Connect Sanity** to open the connection form
  </Step>

  <Step title="Get Project ID">
    Find your Sanity Project ID:

    <ol>
      <li>Log in to your Sanity dashboard</li>
      <li>Navigate to your project</li>
      <li>Copy the Project ID from the project URL or settings</li>
      <li>Format: <code>[https://www.sanity.io/contacts/project/YOUR\_PROJECT\_ID](https://www.sanity.io/contacts/project/YOUR_PROJECT_ID)</code></li>
    </ol>
  </Step>

  <Step title="Generate API Token">
    Create an API Token in your Sanity dashboard:

    <ol>
      <li>Go to <strong>Manage</strong> → <strong>API</strong> → <strong>Tokens</strong></li>
      <li>Click <strong>Add API token</strong></li>
      <li>Enter a label (e.g., "BubblaV Integration")</li>
      <li>Select permissions: <strong>Editor</strong> or <strong>Viewer</strong></li>
      <li>Click <strong>Add</strong></li>
      <li>Copy the generated token (shown only once)</li>
    </ol>
  </Step>

  <Step title="Enter Dataset">
    Enter your Sanity dataset name (default is "production")
  </Step>

  <Step title="Enter Credentials">
    Enter your Project ID, Dataset, and API Token
  </Step>

  <Step title="Verify Connection">
    Click <strong>Connect</strong>. The Sanity card should now show **Connected**
  </Step>
</Steps>

## Available Tools After Connection

| Tool                    | What It Does            | Example Query                 |
| ----------------------- | ----------------------- | ----------------------------- |
| `sanity_search_content` | Search Sanity documents | "Find articles about pricing" |

## Test Your Integration

Try these queries on your website:

* "What do you have about \[topic]?"
* "Show me articles about \[subject]"
* "Find documents related to \[keyword]"

## Troubleshooting

<AccordionGroup>
  <Accordion title="Authentication fails">
    <ul>
      <li>Verify your Project ID and API Token are correct</li>
      <li>Check that the token hasn't been revoked</li>
      <li>Ensure the token has at least Viewer permissions</li>
      <li>Make sure you're entering the dataset name correctly (case-sensitive)</li>
    </ul>
  </Accordion>

  <Accordion title="Connection fails">
    <ul>
      <li>Verify your Project ID is correct</li>
      <li>Check that your dataset exists and has content</li>
      <li>Ensure your project is accessible via the API</li>
      <li>Try using Sanity's API explorer to test access</li>
    </ul>
  </Accordion>

  <Accordion title="Dataset not found">
    <ul>
      <li>Ensure you're using the correct dataset name</li>
      <li>Default dataset is usually "production"</li>
      <li>Check your dataset names in the Sanity dashboard</li>
      <li>Dataset names are case-sensitive</li>
    </ul>
  </Accordion>

  <Accordion title="GROQ query issues">
    <ul>
      <li>Sanity uses GROQ (Graph-Relational Object Queries)</li>
      <li>The integration uses standard queries that work with most schemas</li>
      <li>Custom schemas may require query adjustments</li>
      <li>Contact support if you have complex schema requirements</li>
    </ul>
  </Accordion>
</AccordionGroup>

<Info>
  **Security**: We use Sanity API Tokens for authentication. These tokens can be revoked or regenerated at any time from your Sanity dashboard without affecting your application.
</Info>

<Warning>
  **Important**: Save your API Token securely when you create it. Sanity only shows it once and you'll need to regenerate it if lost.
</Warning>

<Tip>
  **Best Practice**: Create a dedicated token for the BubblaV integration with Viewer or Editor permissions rather than using Administrator tokens. This follows the principle of least privilege.
</Tip>
