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

# Salesforce Data Ingestion

> Import Salesforce Knowledge Base articles as knowledge sources

Turn your Salesforce Knowledge Base into AI knowledge. Import published articles so your Guru can answer questions based on your existing customer-facing documentation.

## Why Ingest Salesforce Data?

<CardGroup cols={2}>
  <Card title="Knowledge Base Sync" icon="book">
    Import your Salesforce Knowledge articles as AI knowledge sources
  </Card>

  <Card title="SOQL-Powered Selection" icon="filter">
    Use SOQL WHERE clauses to import specific articles
  </Card>

  <Card title="Images Included" icon="image">
    Embedded and attached images are indexed too
  </Card>

  <Card title="Auto-Sync" icon="rotate">
    Backfill jobs automatically import new articles on a schedule
  </Card>
</CardGroup>

## What Gets Indexed

| Content Type | What's Included                          |
| ------------ | ---------------------------------------- |
| **Articles** | Full article content from Knowledge Base |
| **Images**   | Embedded images and attached files       |
| **Metadata** | Title, summary, language, publish status |

<Note>
  **Self-hosted:** This integration is in beta for selected users.
  **Cloud:** Available to all users.
</Note>

***

## Setup

<Steps>
  <Step title="Get Salesforce Security Token">
    1. Go to your Salesforce security token settings:

    ```
    https://{your-subdomain}.lightning.force.com/lightning/settings/personal/ResetApiToken/home
    ```

    2. Click **Reset Security Token**
    3. Check your email for the new security token
  </Step>

  <Step title="Navigate to Salesforce Integration">
    Go to **Gurubase Dashboard** → Select your Guru → **Integrations** → **Ingestions** → **Salesforce**
  </Step>

  <Step title="Connect Your Salesforce">
    Fill in the connection details:

    | Field              | Value                     |
    | ------------------ | ------------------------- |
    | **Username**       | Your Salesforce username  |
    | **Password**       | Your Salesforce password  |
    | **Security Token** | The token from your email |

    <Frame>
      <img src="https://mintcdn.com/gurubase/vDuuSfwcXiznMD84/images/ingestion/salesforce/before.png?fit=max&auto=format&n=vDuuSfwcXiznMD84&q=85&s=ac653dfcee2a3d796caee985fee0fc03" alt="Salesforce Integration Fields" width="2992" height="1434" data-path="images/ingestion/salesforce/before.png" />
    </Frame>

    After connecting:

    <Frame>
      <img src="https://mintcdn.com/gurubase/vDuuSfwcXiznMD84/images/ingestion/salesforce/after.png?fit=max&auto=format&n=vDuuSfwcXiznMD84&q=85&s=fa8e9df2aec5430bfa446f03119e562c" alt="Salesforce Integration Success" width="2996" height="1528" data-path="images/ingestion/salesforce/after.png" />
    </Frame>
  </Step>
</Steps>

***

## Adding Salesforce Content

After connecting, you can import articles in two ways:

<Frame>
  <img src="https://mintcdn.com/gurubase/vDuuSfwcXiznMD84/images/ingestion/salesforce/modal.png?fit=max&auto=format&n=vDuuSfwcXiznMD84&q=85&s=154285bf53041b8d0c5b76d078b3023b" alt="Add Salesforce Content Modal" width="3014" height="1600" data-path="images/ingestion/salesforce/modal.png" />
</Frame>

### Option 1: Add Individual Articles

Best for importing specific articles by URL or SOQL filter.

<Frame>
  <img src="https://mintcdn.com/gurubase/vDuuSfwcXiznMD84/images/ingestion/salesforce/individual.png?fit=max&auto=format&n=vDuuSfwcXiznMD84&q=85&s=e96b4fa97099a7306c2cf998eb302415" alt="Add Individual Salesforce Articles" width="3006" height="1580" data-path="images/ingestion/salesforce/individual.png" />
</Frame>

| Setting               | Description                        |
| --------------------- | ---------------------------------- |
| **URLs**              | Enter article URLs, one per line   |
| **SOQL WHERE Clause** | Filter articles with SOQL criteria |

### Option 2: Create Backfill Job

Best for bulk imports and automatic ongoing sync.

<Frame>
  <img src="https://mintcdn.com/gurubase/vDuuSfwcXiznMD84/images/ingestion/salesforce/backfill.png?fit=max&auto=format&n=vDuuSfwcXiznMD84&q=85&s=2594aba4b6e748842dff683feeaeb17a" alt="Create Salesforce Backfill Job" width="3002" height="1590" data-path="images/ingestion/salesforce/backfill.png" />
</Frame>

| Setting               | Description                                          |
| --------------------- | ---------------------------------------------------- |
| **SOQL WHERE Clause** | Query to select which articles to import             |
| **Sync Interval**     | How often to check for new articles (minimum 1 hour) |
| **Sync Now**          | Manually trigger an immediate sync                   |

### Example SOQL WHERE Clauses

```sql theme={null}
-- Only published articles
PublishStatus = 'Online'

-- English articles only
Language = 'en_US'

-- Recently modified articles
LastModifiedDate >= 2024-01-01T00:00:00Z

-- Articles with specific keywords in title
Title LIKE '%API%'

-- Combined filters
PublishStatus = 'Online' AND Language = 'en_US'
```

<Tip>
  Use backfill jobs with `PublishStatus = 'Online'` to automatically sync all published articles.
</Tip>

***

## Knowledge Base Requirements

Gurubase queries the `Knowledge__kav` table with these fields:

| Field              | Description               |
| ------------------ | ------------------------- |
| `Id`               | Unique article identifier |
| `Title`            | Article title             |
| `Summary`          | Article summary           |
| `LastModifiedDate` | Last modification date    |
| `UrlName`          | URL-friendly name         |
| `PublishStatus`    | Publication status        |
| `Language`         | Article language          |
| `ArticleBody__c`   | Main article content      |

<Warning>
  If your Knowledge Base uses custom field names, [contact us](https://gurubase.io/contact/) for assistance with custom field mapping.
</Warning>

***

## Viewing Indexed Content

Imported articles appear as individual sources in your Guru's data sources list. You can:

* View the exact content that was indexed
* Remove specific articles
* Check when content was last synced

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Zendesk Ingestion" icon="headset" href="/integrations/ingestion/zendesk">
    Import Zendesk tickets and articles
  </Card>

  <Card title="Confluence Ingestion" icon="confluence" href="/integrations/ingestion/confluence">
    Import Confluence pages
  </Card>

  <Card title="Slack Bot" icon="slack" href="/integrations/bots/slack">
    Deploy Gurubase in Slack
  </Card>

  <Card title="Data Sources" icon="database" href="/guides/data-sources">
    Add more knowledge sources
  </Card>
</CardGroup>
