Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Note
This article applies to classic chatbots only. This feature isn't available in the new Copilot Studio experience.
When you use a classic chatbot as a skill with a Bot Service bot, the Bot Service bot determines if anything the user says matches the classic chatbot's trigger phrases. If there's a match, the Bot Service bot can pass the conversation to the classic chatbot. The classic chatbot extracts any entities and triggers the matching topic.
Important
You must have a trial or full Copilot Studio license to use classic chatbots as skills. This capability isn't available with the Teams Copilot Studio license.
To set up your classic chatbot as a skill:
Prerequisites
Add your Bot Service bot to the allowlist for your classic chatbot
Add the Bot Service bot's app ID to the allowlist for the classic chatbot that you want to use as a skill. The bots must be in the same tenant.
Get the Microsoft app ID for your Bot Services bot. You can find this information in the Azure portal or in the bot configurations.
In Copilot Studio, open the classic chatbot you want to use as a skill.
In the navigation menu, go to Settings and select Security. Then select Allowlist.
Select Add allowed caller.
Paste your Bot Service bot's app ID and select Next.
Caution
A classic chatbot can't act as a skill for other classic chatbots. If you try to add an app ID that belongs to a Power Virtual Agent bot to the allowlist, you get an error. You can only add an app ID for a Bot bot.
Copilot Studio validates the Bot Service bot's app ID and confirms that it belongs to a bot in the same tenant.
(Optional) Add a Display name for the bot you added to the allowlist.
Select Save.
The Bot Service bot appears by its display name if you entered one, or by its app ID if you didn't enter a display name. To delete or edit it at any time, select the icon to the right of the bot's display name or app ID.
Note
Bot Service bots added to the allowlist aren't exported as part of the bot content.
Download the classic chatbot skill manifest for your classic chatbot
Bot Service bots can use a Copilot Studio skill manifest to configure a connection to the classic chatbot that produced the manifest.
All classic chatbots have skill manifests. A skill manifest is a JSON file that includes the skill's name, interface, and trigger phrases.
A Bot Service bot can use a skill manifest to know when to trigger the classic chatbot (for example, in response to something a user says to it).
Copilot Studio skill manifests follow version 2.2 of the Bot Service skill manifest schema and consist of intents.lu and manifest.json files.
A Bot Service bot might decide that a classic chatbot should handle the user's request, based on the manifest data. It passes everything the user said to the classic chatbot. Then, the classic chatbot matches what the user said to a Copilot Studio topic, extracts any entities that are needed for slot filling, and triggers the Copilot Studio topic.
Copilot Studio skill manifests are automatically generated and updated. A classic chatbot has two skill manifests:
Test manifest: Allows the Bot Service bot to connect to the test version of your classic chatbot. Use the test manifest to validate changes to your skill before you publish it.
- The test manifest is immediately available for every newly created classic chatbot.
- It's automatically updated to reflect changes every time you save your classic chatbot.
Published manifest: Allows the Bot Service bot to connect to the published version of your classic chatbot.
- The published manifest is only available for classic chatbots that were published at least once.
- It's automatically updated to reflect changes every time you publish your agent.
Note
The Published manifest isn't available for classic chatbots that were never published.
To generate your bot's Published manifest, publish your classic chatbot.
Both skill manifests are shown on the Manage allowlist panel.
The skill manifests are also shown on the copilot's Details page. In the navigation menu, select Settings, and then select Details. The Details page shows other metadata, including Environment ID, Tenant ID, and Bot app ID.
To download a manifest, select it. It downloads as a .zip file labeled _<bot name>manifest for the Published manifest, or <bot name>test__manifest for the Test manifest.
Note
The skill manifest doesn't include system topics. Only topics that were created by copilot authors and intent triggers that authors add to the bot are included.
Connect to a Copilot Studio skill from your bot
You can use the information from your Copilot Studio skill manifest to create a skill connection in your Bot Service bot.
To learn more about the structure of the skill manifest, see Skills manifest.
The activities section of the skill manifest contains the topics that are available in your classic chatbot.
You can implement a skill consumer in your Bot Service bot to call a classic chatbot as a skill.
Test your classic chatbot as a skill with a Bot Service bot
You can the Bot Service Emulator to test that your Bot Service bot is properly calling a classic chatbot as a skill.
Important
Your Bot Service bot must be added to the classic chatbot's allowlist for the skill connection to work.
Update a multitenant Bot Service bot to a single-tenant bot
The following illustration shows the scenario where a Bot Service bot calls a classic chatbot, to use it as a skill.
Both the Bot Service bot and the classic chatbot have a Microsoft Entra ID app registration, which is referenced by the Azure Bot instances. These Microsoft Entra ID app registrations were created as multitenant. The Bot Service bot requests a token from the Bot Service tenant, and uses this token to authenticate to Copilot Studio using Azure Bot Service. Copilot Studio uses the same mechanism to contact the Bot Service bot.
The Copilot Studio chatbot's application registration is now created as a single-tenant, so this communication no longer works. Microsoft Entra ID refuses to create tokens for single-tenant application registrations that aren't in the same tenant.
Additionally, Copilot Studio validates the incoming token and rejects requests from tenants it doesn't expect, such as the tenant ID in which the classic chatbot's application registration was created.
To resolve this issue, there are two possible fixes.
Classic chatbots in the same tenant as the Bot Service bot
In scenarios where the Copilot Studio chatbot is already deployed in the same tenant as the Bot Service bot and is only used by this bot, update the bot to a single-tenant configuration, then redeploy your Bot Service bot. For more information on how to configure a Bot Service bot for single-tenant, see Provision and publish a bot.
Copilot Studio chatbot that can't be updated to single-tenant
In scenarios where the Copilot Studio chatbot is already deployed in the same tenant as the Bot Service bot, but the bot can't be updated so single-tenant, you need to update the code in the Bot Service bot to create the token to communicate with the Copilot Studio chatbot. The token needs to be created for the tenant in which the Copilot Studio chatbot was also created. In addition, the response must be accepted, which probably requires that you follow the steps in Convert an existing skill from multitenant to single-tenant.