Integrating Azure AI Search with Copilot Studio Using a Custom Connector

Learn how to integrate a manually created Azure AI Search Vector Index with Microsoft Copilot Studio using Power Automate and a Custom Connector, bypassing integrated vectorization limitations.

Hero Image

Introduction

After exploring how to build a manual Vector RAG solution with Azure AI Search in the previous blog, it’s now time to actually use it in a real-world low-code scenario.

Since we specialize in low-code solutions, the next logical step was integrating our Azure AI Search index with Microsoft Copilot Studio.

At first glance, the integration appears straightforward — simply add a Tool, provide the Azure AI Search endpoint and API key, and Copilot Studio should instantly query your knowledge base.

However, we quickly encountered an unexpected limitation caused by the architecture of our manually created vector index and the restrictions of the Azure AI Search Free Tier.

Unsupported Indexes Error

The issue appeared as the following message inside Copilot Studio:

Unsupported indexes — Some of your indexes are unsupported because they don't use integrated vectorization.
Unsupported Indexes

This happens because our Azure AI Search index was created as a traditional full-text/vector hybrid index where embeddings were generated externally and manually pushed into the index.

While the index already contained a vector field (contentVector) along with a vector search profile and algorithm configuration, it was missing one critical component:

"vectorizers": []

Copilot Studio specifically expects indexes configured with integrated vectorization, meaning Azure AI Search itself must manage the embedding generation pipeline through a configured vectorizer.

Workaround — Use Azure AI Search Through a Custom Connector

Instead of using the native Azure AI Search connector in Copilot Studio, we can bypass the validation entirely by calling the Azure AI Search REST API directly through Power Automate.
Copilot Studio
↓
Power Automate
↓
Azure AI Search REST API

Testing the API with Postman

Before building the Power Automate flow or Custom Connector, it’s a good idea to first test the Azure AI Search REST API using Postman.

Postman API Test

Create a new POST request using:

https://your-search-service.search.windows.net/indexes/documents-index/docs/search?api-version=2024-07-01

Add the following headers:

Or use the following cURL sample to test directly from a terminal:

curl --location 'https://your-search-service.search.windows.net/indexes/documents-index/docs/search?api-version=2024-07-01' \
--header 'Content-Type: application/json' \
--header 'api-key: YOUR_API_KEY_HERE' \
--data '{
    "search": "What does Bhagavad Gita teach about selfless action?",
    "top": 5,
    "select": "content"
}'

Creating the Custom Connector

Once the REST API works correctly in Postman, the next step is to create a Custom Connector in Power Platform.

This allows Copilot Studio and Power Automate to communicate directly with Azure AI Search without relying on the native connector restrictions.

Use the following Swagger/OpenAPI definition when creating the custom connector. Replace your-search-service.search.windows.net with your actual Azure AI Search service hostname:

swagger: '2.0'
info:
  title: AzureAISearch
  description: Azure AI Search Custom Connector
  version: '1.0'
host: your-search-service.search.windows.net
basePath: /
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
paths:
  /indexes/documents-index/docs/search:
    post:
      summary: Search Documents
      description: Search Azure AI Search index
      operationId: SearchDocuments
      parameters:
        - name: api-version
          in: query
          required: true
          type: string
          default: '2024-07-01'
        - name: body
          in: body
          required: true
          schema:
            type: object
            required:
              - search
            properties:
              search:
                type: string
                description: Search Query
              top:
                type: integer
                format: int32
                description: Number of results
                default: 5
              select:
                type: string
                description: Fields to return
                default: content
      responses:
        '200':
          description: Successful search response
          schema:
            type: object
            properties:
              '@odata.context':
                type: string
              value:
                type: array
                items:
                  type: object
                  properties:
                    '@search.score':
                      type: number
                      format: float
                    content:
                      type: string
securityDefinitions:
  api_key:
    type: apiKey
    in: header
    name: api-key
security:
  - api_key: []
definitions: {}

Once imported, configure the API Key authentication using the Azure AI Search admin/query key, and the connector will be ready to use inside Power Automate or Copilot Studio.

Integrating the Custom Connector with Copilot Studio

Copilot Studio

With the Custom Connector now working successfully, the final step is integrating it into Copilot Studio and using Azure AI Search as the grounding source for AI-generated responses.

Step 1 — Create a New Topic

Create a Topic with trigger phrases such as:

Step 2 — Add the Custom Connector Action

Connect in Topic

Add the SearchDocuments action from the Custom Connector and pass:

Step 3 — Use Results as Grounding Context

Finally, add a Message node and instruct Copilot Studio to generate responses only from the returned search results.

The result is a lightweight low-code RAG solution where Copilot Studio uses Azure AI Search as its knowledge source through a Custom Connector, completely bypassing native connector limitations.

Conclusion

This approach demonstrates how low-code platforms like Copilot Studio can still integrate with advanced AI architectures, even when native connectors impose limitations.

By combining Azure AI Search, Power Automate, and Custom Connectors, we can create flexible and scalable RAG solutions without depending on integrated vectorization support.