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

# Add a Vector Store

> Connect a vector database to Raily so your collections become searchable

Connect a vector database (Qdrant, Pinecone, and others) to Raily. Once connected, Raily can search its collections with access control and usage tracking on top.

The steps are similar for every provider. Pick your provider in the tabs below for its connection fields and steps.

## What you can do

Once a vector store is connected, Raily searches it with:

* **Semantic search** - find content by meaning, not just keywords.
* **Metadata filtering** - narrow results by date, author, category, or any field in your [Data Catalog](/integrations/data-catalog).
* **Hybrid search** - combine semantic similarity with keyword matching.
* **RAG** - feed retrieved passages to an LLM so its answers are grounded in your content.

Access control and usage analytics apply to every search, whichever provider you connect.

## Before you start

* Admin access to the tenant.
* The connection details for your vector store (URL, API key, or connection string).
* At least one collection (or index/table) that already holds embeddings.

## Steps

In the sidebar, open **Search Rail** (under **Rails**) and click **Connect source**.

<Frame caption="Pick where your data lives">
  <img src="https://mintcdn.com/railyai/XX1nxXkekI9EWYGS/images/vector-store/connect-source.png?fit=max&auto=format&n=XX1nxXkekI9EWYGS&q=85&s=20998c013981b93347a63d1c797a2d46" alt="Connect a data source in Search Rail" width="2550" height="1256" data-path="images/vector-store/connect-source.png" />
</Frame>

Then pick your provider and follow its steps.

<Tabs>
  <Tab title="Qdrant">
    <Steps>
      <Step title="Open Qdrant">
        Click the **Qdrant** card.
      </Step>

      <Step title="Enter the connection details">
        * **Name** for the integration.
        * **Qdrant URL**, for example `your-project.europe-west3-0.gcp.cloud.qdrant.io:6333`.
        * **API Key**. Required for Qdrant Cloud, optional for local Qdrant.

        <Frame caption="Qdrant connection form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/qdrant.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=8e0bfb5ec30e672ffa7d7e2538b72dc9" alt="Qdrant connection form" width="1031" height="1198" data-path="images/vector-store/qdrant.png" />
        </Frame>
      </Step>

      <Step title="Add collections">
        Click **Fetch Collections** and enable the ones you want, or add a collection by name (lowercase letters, numbers, and underscores).
      </Step>

      <Step title="Set an embedding config">
        Pick an embedding config for each collection. It must match the model that created the vectors.

        Don't have one yet? Open the embedding config picker and click **Create New**.

        <Frame caption="Create a new embedding config">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create1.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=61879b413bbc70398a16893cb781b2fc" alt="Embedding config picker with Create New" width="384" height="115" data-path="images/vector-store/create1.png" />
        </Frame>

        Enter a **Name**, pick a **Provider**, and set the **Model Name** and **Dimension** to match the model that created your vectors. Add an **API Key** if the provider needs one, then save.

        <Frame caption="Embedding config form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create2.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7cd576be83273091a9c9f0f47df8a244" alt="Embedding config form fields" width="592" height="599" data-path="images/vector-store/create2.png" />
        </Frame>
      </Step>

      <Step title="Save">
        Click **Create Integration**. Raily then configures agentic search for each collection automatically. This can take a few minutes, after which the integration appears under **My Integrations** with an **Active** status.

        <Note>
          Once it finishes, open **Inventory → Data Catalog** to see the generated configuration for each collection.
        </Note>
      </Step>

      <Step title="See it in the Data Catalog">
        After generation finishes, Raily opens the collection in **Data Catalog**.

        <Frame caption="Collection configuration in the Data Catalog">
          <img src="https://mintcdn.com/railyai/jfCeh5-7enF3hO2p/images/vector-store/data_catalog_qdrant.png?fit=max&auto=format&n=jfCeh5-7enF3hO2p&q=85&s=2bb749a998d3c0ce305445f16cb6d144" alt="Collection configuration in the Data Catalog" width="2311" height="1117" data-path="images/vector-store/data_catalog_qdrant.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Pinecone">
    <Steps>
      <Step title="Open Pinecone">
        Click the **Pinecone** card.
      </Step>

      <Step title="Enter the connection details">
        * **Name** for the integration.
        * **API Key** from your Pinecone console.

        <Frame caption="Pinecone connection form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/pinecone.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=799f3924d45a7a150c8ac01b9d5aee8c" alt="Pinecone connection form" width="913" height="845" data-path="images/vector-store/pinecone.png" />
        </Frame>
      </Step>

      <Step title="Add indexes">
        Click **Fetch Indexes** and enable the ones you want. Each enabled index needs its **Index Host URL**, which Raily fills in from Pinecone.
      </Step>

      <Step title="Set an embedding config">
        Pick an embedding config for each index. It must match the model that created the vectors. If embeddings are server-generated, set the config to **built-in**.

        Don't have one yet? Open the embedding config picker and click **Create New**.

        <Frame caption="Create a new embedding config">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create1.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=61879b413bbc70398a16893cb781b2fc" alt="Embedding config picker with Create New" width="384" height="115" data-path="images/vector-store/create1.png" />
        </Frame>

        Enter a **Name**, pick a **Provider**, and set the **Model Name** and **Dimension** to match the model that created your vectors. Add an **API Key** if the provider needs one, then save.

        <Frame caption="Embedding config form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create2.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7cd576be83273091a9c9f0f47df8a244" alt="Embedding config form fields" width="592" height="599" data-path="images/vector-store/create2.png" />
        </Frame>
      </Step>

      <Step title="Save">
        Click **Create Integration**. Raily then configures agentic search for each collection automatically. This can take a few minutes, after which the integration appears under **My Integrations** with an **Active** status.

        <Note>
          Once it finishes, open **Inventory → Data Catalog** to see the generated configuration for each collection.
        </Note>
      </Step>

      <Step title="See it in the Data Catalog">
        After generation finishes, Raily opens the collection in **Data Catalog**.

        <Frame caption="Collection configuration in the Data Catalog">
          <img src="https://mintcdn.com/railyai/jfCeh5-7enF3hO2p/images/vector-store/data_catalog_pinecone.png?fit=max&auto=format&n=jfCeh5-7enF3hO2p&q=85&s=b15f82070b9af3ed8fab0cfdaf92b4a5" alt="Collection configuration in the Data Catalog" width="2303" height="304" data-path="images/vector-store/data_catalog_pinecone.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Zilliz">
    <Steps>
      <Step title="Open Zilliz">
        Click the **Zilliz** card.
      </Step>

      <Step title="Enter the connection details">
        * **Name** for the integration.
        * **Cluster endpoint URL**, for example `your-cluster.serverless.gcp-us-west1.cloud.zilliz.com`.
        * **API Key** for your Zilliz Cloud cluster.

        <Frame caption="Zilliz connection form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/zilliz.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7500db44193414b52352167145e34512" alt="Zilliz connection form" width="848" height="1141" data-path="images/vector-store/zilliz.png" />
        </Frame>
      </Step>

      <Step title="Add collections">
        Click **Fetch Collections** and enable the ones you want, or add a collection by name (start with a letter or underscore; letters, numbers, and underscores).
      </Step>

      <Step title="Set an embedding config">
        Pick an embedding config for each collection. It must match the model that created the vectors.

        Don't have one yet? Open the embedding config picker and click **Create New**.

        <Frame caption="Create a new embedding config">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create1.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=61879b413bbc70398a16893cb781b2fc" alt="Embedding config picker with Create New" width="384" height="115" data-path="images/vector-store/create1.png" />
        </Frame>

        Enter a **Name**, pick a **Provider**, and set the **Model Name** and **Dimension** to match the model that created your vectors. Add an **API Key** if the provider needs one, then save.

        <Frame caption="Embedding config form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create2.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7cd576be83273091a9c9f0f47df8a244" alt="Embedding config form fields" width="592" height="599" data-path="images/vector-store/create2.png" />
        </Frame>
      </Step>

      <Step title="Save">
        Click **Create Integration**. Raily then configures agentic search for each collection automatically. This can take a few minutes, after which the integration appears under **My Integrations** with an **Active** status.

        <Note>
          Once it finishes, open **Inventory → Data Catalog** to see the generated configuration for each collection.
        </Note>
      </Step>

      <Step title="See it in the Data Catalog">
        After generation finishes, Raily opens the collection in **Data Catalog**.

        <Frame caption="Collection configuration in the Data Catalog">
          <img src="https://mintcdn.com/railyai/jfCeh5-7enF3hO2p/images/vector-store/data_catalog_zilliz.png?fit=max&auto=format&n=jfCeh5-7enF3hO2p&q=85&s=ff0a77a48f6031f1dbc6122ad291bdc0" alt="Collection configuration in the Data Catalog" width="2301" height="299" data-path="images/vector-store/data_catalog_zilliz.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Milvus">
    <Steps>
      <Step title="Open Milvus">
        Click the **Milvus** card.
      </Step>

      <Step title="Enter the connection details">
        * **Name** for the integration.
        * **Cluster endpoint URL**, for example `milvus.your-company.com`.
        * **API Key**. Optional for self-hosted Milvus.

        <Frame caption="Milvus connection form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/zilliz.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7500db44193414b52352167145e34512" alt="Milvus connection form" width="848" height="1141" data-path="images/vector-store/zilliz.png" />
        </Frame>
      </Step>

      <Step title="Add collections">
        Click **Fetch Collections** and enable the ones you want, or add a collection by name (start with a letter or underscore; letters, numbers, and underscores).
      </Step>

      <Step title="Set an embedding config">
        Pick an embedding config for each collection. It must match the model that created the vectors.

        Don't have one yet? Open the embedding config picker and click **Create New**.

        <Frame caption="Create a new embedding config">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create1.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=61879b413bbc70398a16893cb781b2fc" alt="Embedding config picker with Create New" width="384" height="115" data-path="images/vector-store/create1.png" />
        </Frame>

        Enter a **Name**, pick a **Provider**, and set the **Model Name** and **Dimension** to match the model that created your vectors. Add an **API Key** if the provider needs one, then save.

        <Frame caption="Embedding config form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create2.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7cd576be83273091a9c9f0f47df8a244" alt="Embedding config form fields" width="592" height="599" data-path="images/vector-store/create2.png" />
        </Frame>
      </Step>

      <Step title="Save">
        Click **Create Integration**. Raily then configures agentic search for each collection automatically. This can take a few minutes, after which the integration appears under **My Integrations** with an **Active** status.

        <Note>
          Once it finishes, open **Inventory → Data Catalog** to see the generated configuration for each collection.
        </Note>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Weaviate">
    <Steps>
      <Step title="Open Weaviate">
        Click the **Weaviate** card.
      </Step>

      <Step title="Enter the connection details">
        * **Name** for the integration.
        * **Weaviate URL**, for example `your-cluster.c0.europe-west3.gcp.weaviate.cloud`.
        * **API Key**. Required for Weaviate Cloud, optional if your instance has no authentication.

        <Frame caption="Weaviate connection form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/weaviate.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=5918aca16a01947e745d9ebc6d94a9e7" alt="Weaviate connection form" width="826" height="1016" data-path="images/vector-store/weaviate.png" />
        </Frame>
      </Step>

      <Step title="Add collections">
        Click **Fetch Collections** and enable the ones you want, or add a collection by name. Weaviate uses PascalCase names, for example `MyCollection`.
      </Step>

      <Step title="Set an embedding config">
        Pick an embedding config for each collection. It must match the model that created the vectors. If embeddings are server-generated, set the config to **built-in**.

        Don't have one yet? Open the embedding config picker and click **Create New**.

        <Frame caption="Create a new embedding config">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create1.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=61879b413bbc70398a16893cb781b2fc" alt="Embedding config picker with Create New" width="384" height="115" data-path="images/vector-store/create1.png" />
        </Frame>

        Enter a **Name**, pick a **Provider**, and set the **Model Name** and **Dimension** to match the model that created your vectors. Add an **API Key** if the provider needs one, then save.

        <Frame caption="Embedding config form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create2.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7cd576be83273091a9c9f0f47df8a244" alt="Embedding config form fields" width="592" height="599" data-path="images/vector-store/create2.png" />
        </Frame>
      </Step>

      <Step title="Save">
        Click **Create Integration**. Raily then configures agentic search for each collection automatically. This can take a few minutes, after which the integration appears under **My Integrations** with an **Active** status.

        <Note>
          Once it finishes, open **Inventory → Data Catalog** to see the generated configuration for each collection.
        </Note>
      </Step>

      <Step title="See it in the Data Catalog">
        After generation finishes, Raily opens the collection in **Data Catalog**.

        <Frame caption="Collection configuration in the Data Catalog">
          <img src="https://mintcdn.com/railyai/jfCeh5-7enF3hO2p/images/vector-store/data_catalog_weaviate.png?fit=max&auto=format&n=jfCeh5-7enF3hO2p&q=85&s=61c26a50abfdaf6066a1438e7c2a54cc" alt="Collection configuration in the Data Catalog" width="2323" height="302" data-path="images/vector-store/data_catalog_weaviate.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>

  <Tab title="pgvector">
    <Steps>
      <Step title="Open pgvector">
        Click the **pgVector** card.
      </Step>

      <Step title="Enter the connection details">
        * **Name** for the integration.
        * **Connection String**, for example `postgresql://user@host:5432/dbname`.
        * **Password**. Optional if the password is already in the connection string.

        <Frame caption="pgvector connection form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/pgvector.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=e9a8c01fe42880cb66d66d5d3b31b956" alt="pgvector connection form" width="874" height="910" data-path="images/vector-store/pgvector.png" />
        </Frame>
      </Step>

      <Step title="Confirm the connection">
        Raily checks the credentials automatically. The **Credentials** section shows **Verified** when they work, or **Failed** if not.
      </Step>

      <Step title="Add tables">
        Click **Fetch Tables** and enable the ones you want, or add a table by name. Schema-qualified names are supported, for example `public.documents`.
      </Step>

      <Step title="Set an embedding config">
        Pick an embedding config for each table. It must match the model that created the vectors.

        Don't have one yet? Open the embedding config picker and click **Create New**.

        <Frame caption="Create a new embedding config">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create1.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=61879b413bbc70398a16893cb781b2fc" alt="Embedding config picker with Create New" width="384" height="115" data-path="images/vector-store/create1.png" />
        </Frame>

        Enter a **Name**, pick a **Provider**, and set the **Model Name** and **Dimension** to match the model that created your vectors. Add an **API Key** if the provider needs one, then save.

        <Frame caption="Embedding config form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create2.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7cd576be83273091a9c9f0f47df8a244" alt="Embedding config form fields" width="592" height="599" data-path="images/vector-store/create2.png" />
        </Frame>
      </Step>

      <Step title="Save">
        Click **Create Integration**. Raily then configures agentic search for each collection automatically. This can take a few minutes, after which the integration appears under **My Integrations** with an **Active** status.

        <Note>
          Once it finishes, open **Inventory → Data Catalog** to see the generated configuration for each collection.
        </Note>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Oracle">
    <Steps>
      <Step title="Open Oracle">
        Click the **Oracle** card.
      </Step>

      <Step title="Enter the connection details">
        * **Name** for the integration.
        * **Connection String** in Easy Connect form, for example `user@host:1521/FREEPDB1`. For Autonomous Database, add `?wallet_location=...`.
        * **Password**. Optional if the password is already in the connection string.

        <Frame caption="Oracle connection form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/oracle.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=a4ec184d667941a7afde555018cb1244" alt="Oracle connection form" width="829" height="1097" data-path="images/vector-store/oracle.png" />
        </Frame>
      </Step>

      <Step title="Confirm the connection">
        Raily checks the credentials automatically. The **Credentials** section shows **Verified** when they work, or **Failed** if not.
      </Step>

      <Step title="Add tables">
        Click **Fetch Tables** and enable the ones you want, or add a table by name. Schema-qualified names are supported, for example `RAILY.ARTICLES`.
      </Step>

      <Step title="Set an embedding config">
        Pick an embedding config for each table. It must match the model that created the vectors. If embeddings are server-generated, set the config to **built-in**.

        Don't have one yet? Open the embedding config picker and click **Create New**.

        <Frame caption="Create a new embedding config">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create1.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=61879b413bbc70398a16893cb781b2fc" alt="Embedding config picker with Create New" width="384" height="115" data-path="images/vector-store/create1.png" />
        </Frame>

        Enter a **Name**, pick a **Provider**, and set the **Model Name** and **Dimension** to match the model that created your vectors. Add an **API Key** if the provider needs one, then save.

        <Frame caption="Embedding config form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create2.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7cd576be83273091a9c9f0f47df8a244" alt="Embedding config form fields" width="592" height="599" data-path="images/vector-store/create2.png" />
        </Frame>
      </Step>

      <Step title="Save">
        Click **Create Integration**. Raily then configures agentic search for each collection automatically. This can take a few minutes, after which the integration appears under **My Integrations** with an **Active** status.

        <Note>
          Once it finishes, open **Inventory → Data Catalog** to see the generated configuration for each collection.
        </Note>
      </Step>

      <Step title="See it in the Data Catalog">
        After generation finishes, Raily opens the collection in **Data Catalog**.

        <Frame caption="Collection configuration in the Data Catalog">
          <img src="https://mintcdn.com/railyai/jfCeh5-7enF3hO2p/images/vector-store/data_catalog_oracle.png?fit=max&auto=format&n=jfCeh5-7enF3hO2p&q=85&s=c4c537ce7e87a490c2c3dad389ee96bb" alt="Collection configuration in the Data Catalog" width="2301" height="297" data-path="images/vector-store/data_catalog_oracle.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>

  <Tab title="IBM Ceph">
    <Steps>
      <Step title="Open IBM Ceph">
        Click the **IBM Ceph** card.
      </Step>

      <Step title="Enter the connection details">
        * **Name** for the integration.
        * **RGW Endpoint URL** of the Ceph RADOS Gateway, for example `https://ceph.example.com`.
        * **Region**. Required by the S3 client; Ceph ignores it. `us-east-1` is fine.
        * **Object Bucket** where uploaded files are stored. Vectors live in `<bucket>-vectors`.
        * **Index Name**. Use `default` unless you have multiple indexes per bucket.
        * **Access Key ID** and **Secret Access Key** for the Ceph cluster.

        <Frame caption="IBM Ceph connection form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/ceph.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=6299a6dacbfed737553a56bede44fcf9" alt="IBM Ceph connection form" width="680" height="1194" data-path="images/vector-store/ceph.png" />
        </Frame>
      </Step>

      <Step title="Add vector buckets">
        Click **Fetch Vector Buckets** and enable the ones you want.
      </Step>

      <Step title="Set an embedding config">
        Pick an embedding config for each vector bucket. It must match the model that created the vectors.

        Don't have one yet? Open the embedding config picker and click **Create New**.

        <Frame caption="Create a new embedding config">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create1.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=61879b413bbc70398a16893cb781b2fc" alt="Embedding config picker with Create New" width="384" height="115" data-path="images/vector-store/create1.png" />
        </Frame>

        Enter a **Name**, pick a **Provider**, and set the **Model Name** and **Dimension** to match the model that created your vectors. Add an **API Key** if the provider needs one, then save.

        <Frame caption="Embedding config form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/create2.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=7cd576be83273091a9c9f0f47df8a244" alt="Embedding config form fields" width="592" height="599" data-path="images/vector-store/create2.png" />
        </Frame>
      </Step>

      <Step title="Save">
        Click **Create Integration**. Raily then configures agentic search for each collection automatically. This can take a few minutes, after which the integration appears under **My Integrations** with an **Active** status.

        <Note>
          Once it finishes, open **Inventory → Data Catalog** to see the generated configuration for each collection.
        </Note>
      </Step>

      <Step title="See it in the Data Catalog">
        After generation finishes, Raily opens the collection in **Data Catalog**.

        <Frame caption="Collection configuration in the Data Catalog">
          <img src="https://mintcdn.com/railyai/jfCeh5-7enF3hO2p/images/vector-store/data_catalog_ceph.png?fit=max&auto=format&n=jfCeh5-7enF3hO2p&q=85&s=8d04973b5f3444cfdf3f23a3722b6d69" alt="Collection configuration in the Data Catalog" width="2337" height="377" data-path="images/vector-store/data_catalog_ceph.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Salesforce">
    <Steps>
      <Step title="Open Salesforce">
        Click the **Salesforce** card.
      </Step>

      <Step title="Enter the connection details">
        * **Name** for the integration.
        * **Instance URL**, for example `https://myorg.my.salesforce.com`.
        * **Client ID**, your Connected App consumer key.
        * **Client Secret**, your Connected App consumer secret.

        <Frame caption="Salesforce connection form">
          <img src="https://mintcdn.com/railyai/LT7rWl_muWq2wYsL/images/vector-store/salesforce.png?fit=max&auto=format&n=LT7rWl_muWq2wYsL&q=85&s=ca70563d105b5627eb00b0e371822a55" alt="Salesforce connection form" width="667" height="818" data-path="images/vector-store/salesforce.png" />
        </Frame>
      </Step>

      <Step title="Confirm the connection">
        Raily checks the credentials automatically. The **Credentials** section shows **Verified** when they work, or **Failed** if not.
      </Step>

      <Step title="Add collections">
        Click **Fetch Collections** and enable the ones you want. Salesforce search runs over Cases via SOSL, so no embedding config is needed.
      </Step>

      <Step title="Save">
        Click **Create Integration**. Raily then configures agentic search for each collection automatically. This can take a few minutes, after which the integration appears under **My Integrations** with an **Active** status.

        <Note>
          Once it finishes, open **Inventory → Data Catalog** to see the generated configuration for each collection.
        </Note>
      </Step>

      <Step title="See it in the Data Catalog">
        After generation finishes, Raily opens the collection in **Data Catalog**.

        <Frame caption="Collection configuration in the Data Catalog">
          <img src="https://mintcdn.com/railyai/jfCeh5-7enF3hO2p/images/vector-store/data_catalog_saleforce.png?fit=max&auto=format&n=jfCeh5-7enF3hO2p&q=85&s=9dab4b5a53769498405ec10bafb0dcf3" alt="Collection configuration in the Data Catalog" width="2309" height="424" data-path="images/vector-store/data_catalog_saleforce.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Raily Vector Store">
    Don't have a vector database yet? [Talk to us](https://www.raily.ai/contact) and we can provide one for you.
  </Tab>
</Tabs>

## Best practices

<CardGroup cols={2}>
  <Card title="Match the embedding config" icon="vector-square">
    The embedding config must match the model that created the vectors.
  </Card>

  <Card title="Design useful metadata" icon="tags">
    Index the fields people filter by so the agent can use them.
  </Card>

  <Card title="Keep embeddings current" icon="arrows-rotate">
    Re-embed when content changes so search stays accurate.
  </Card>

  <Card title="Use access control" icon="shield-check">
    Apply policies so each endpoint exposes only what it should.
  </Card>
</CardGroup>
