Copilot Integration of an Azure Bot as Skill

In this section we will integrate the RheinInsights Retrieval Suite as a Copilot skill. This way, you can easily and securely chat with your data. This means that as with the search experiences we use security trimming for making sure that no knowledge is exposed, the user does not have access to.

When using skills in Copilot, users always need to be quite precise in querying the skill. Similar to searching for Graph connected knowledge, Copilot needs to be pushed a bit in using a skill. Like “use a skill to search for <questing to be answered>”.

Prerequisites

  1. Please make sure that you configured an Azure Bot in the same tenant, your Teams belongs to, following the documentation at Azure Bot Configuration .

  2. Please make sure that no self-signed certificates are used by the Suite

Downloading the Skill Manifest

  1. Open the RheinInsights Retrieval Suite Admin UI

  2. Go to Query Pipelines > Bot Integrations

    image-20250901-085554.png
  3. In the links section below find your bot, you want to integrate into Copilot. Click on Copilot Skill Manifest and make a note of the URL.

Configure the Entra Id App

Behind your bot is an Entra Id app (see Teams App (Bot) Registration ). The Home page URL must match the skill endpoint. Therefore

  1. Open https://portal.azure.com

  2. Open Entra Id > App Registrations > Click on your Bot app

  3. Click on Branding & properties

  4. Add as Homepage URL the URL from Step 3 (or the publicly available version of this URL)

  5. Click on save

Configuring the Skill

  1. Go to Copilot Studio

  2. Open an existing or create a new agent

  3. Click on Settings

    image-20250901-085858.png
  4. Click on Skills

  5. Click on Add a skill

    image-20250901-085930.png

  6. Choose the correct URL to the skill manifest. See step 3 in the RheinInsights Configuration above. Here the URL must be accessible from the Microsoft Cloud. This URL must match the one in the Entra app, as described in Entra Id section above

    1. If the validation runs into issues then please refer to the Microsoft documentation.

    2. A successful outcome is

      image-20250901-094458.png
  7. Click on save and after saving close the dialog by clicking on close

  8. Close the settings by clicking on the X in the right hand side upper corner

  9. Click on topics

  10. Add a topic

    image-20250901-094827.png
  11. Choose from blank

  12. Click on the plus at the arrow

  13. Choose add a tool

  14. And in the dropdown the Research tool from RheinInsights is listed now

    image-20250901-095013.png

  15. Click on save

  16. As a topic use a reasonable keyword. This will be used to trigger the search.

  17. Save the topic

  18. Then you can test search for instance via the Test your agent dialog on the right hand side:
    ”Use organizational search to find an answer to <your question>”

Troubleshooting

Duplicate Copilot Responses

Observation: When working with the skill, Copilot agent produces two answers. First it is the response from our Retrieval Suite, i.e., the original tool response. Then in a second step, Copilot summarizes the just posted response.

Solution: Instead of including the Retrieval Suite as a Tool, you should include it as a topic which always triggers. As the only step, the topic calls the RheinInsights Tool and afterwards it must end the conversation. See the following workflow:

image-20260102-140044.png

Deployment Issues

Issue 1

Observation: When trying to fetch the skill manifest, the message “We ran into problems getting the skill manifest.” is shown. The network trace console shows for this call the message statusCode: 404. See the following screenshot:

image-20260102-140342.png

Possible solution: The URL is actually not accessible from the Microsoft network. Make sure that the URL can be reached from the outside (e.g. by adjusting your firewall settings).

Issue 2

Observation: When trying to fetch the skill manifest, the message “We ran into problems getting the skill manifest.” is shown. The network trace console shows for this call the message statusCode: 404. See the following screenshot:

image-20260102-140808.png

Possible solution: The URL is accessible but might produce the wrong content type or the URL is accessible but comes with a self signed certificate. Make sure that the URL can be reached and that the content type is application/json. Also make sure that the SSL certificate is certificate by a well-known root-authority.

Issue 3

Observation: When trying to fetch the manifest, Copilot Studio displays “Something went wrong while validating your skill. Please try again later” and browser console shows { "ErrorCode": 500, "ErrorMessage": "No credentials provided. (Parameter 'existingCredentials')", "DiagnosticsMessage": null, "ErrorInfo": null }

Possible Solution: In this case, it might be helpful to create a new agent from scratch and try again.