name: azure-copilot-studio
description: Microsoft Copilot Studio patterns for building low-code AI bots with 1,000+ Power Platform connectors. Use when creating enterprise chatbots connected to SAP, Salesforce, ServiceNow, Oracle, or other systems via Power Platform.
tags: [azure, copilot, power-platform, low-code]
Microsoft Copilot Studio
Build enterprise AI bots using Microsoft Copilot Studio with 1,000+ Power Platform connectors to SAP, Salesforce, ServiceNow, Oracle, and other enterprise systems.
When to Use
- Building low-code/no-code AI chatbots connected to enterprise systems
- Leveraging Power Platform's 1,000+ pre-built connectors for enterprise integration
- Creating Copilot plugins that extend Microsoft 365 Copilot
- Implementing AI bots with Azure OpenAI models and enterprise data grounding
Power Platform Enterprise Connectors (Key Selection)
| Category |
Connectors |
| ERP |
SAP (RFC, BAPI, IDoc, ABAP -- one of the most mature), Oracle ERP Cloud, Dynamics 365 |
| CRM |
Salesforce (full CRUD + triggers), HubSpot, Dynamics 365 Sales |
| ITSM |
ServiceNow (incidents, changes, problems), Jira |
| HR |
Workday, SuccessFactors, BambooHR |
| Cloud |
AWS (S3, SQS, SNS, Lambda), GCP (BigQuery, Pub/Sub, Storage) |
| Data |
Snowflake (ODBC/REST), SQL Server, PostgreSQL, Oracle DB, Cosmos DB |
| Productivity |
SharePoint, OneDrive, Outlook, Teams, Google Workspace |
| Communication |
Slack, Twilio, SendGrid |
Patterns
1. Copilot Studio + Power Automate Flow
User asks: "What's the status of PO 4500001234?"
Copilot Studio:
1. Extracts intent: purchase_order_status
2. Extracts entity: PO number = 4500001234
3. Triggers Power Automate flow:
--> SAP Connector: GET /API_PURCHASEORDER_PROCESS_SRV/A_PurchaseOrder('4500001234')
--> Transform response (DataWeave/expressions)
--> Return to Copilot Studio
4. Generates natural language response with PO details
2. Azure Logic Apps for Complex Orchestration
{
"definition": {
"triggers": {
"When_Copilot_requests_data": {
"type": "Request",
"kind": "Http"
}
},
"actions": {
"Query_SAP_Order": {
"type": "ApiConnection",
"inputs": {
"host": { "connection": { "name": "@parameters('$connections')['sap']['connectionId']" } },
"method": "get",
"path": "/CallRfc",
"queries": { "rfcName": "BAPI_SALESORDER_GETDETAIL", "parameters": "{...}" }
}
},
"Enrich_with_Azure_OpenAI": {
"type": "ApiConnection",
"inputs": {
"host": { "connection": { "name": "@parameters('$connections')['azureopenai']['connectionId']" } },
"method": "post",
"path": "/openai/deployments/gpt-4o/chat/completions",
"body": {
"messages": [
{ "role": "system", "content": "Summarize this SAP order data for a business user." },
{ "role": "user", "content": "@body('Query_SAP_Order')" }
]
}
}
}
}
}
}
3. Azure OpenAI On Your Data (RAG)
import openai
client = openai.AzureOpenAI(
azure_endpoint="https://my-resource.openai.azure.com/",
api_key="...",
api_version="2024-08-01-preview",
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "What is our refund policy?"}],
extra_body={
"data_sources": [{
"type": "azure_search",
"parameters": {
"endpoint": "https://my-search.search.windows.net",
"index_name": "enterprise-knowledge-base",
"authentication": {"type": "system_assigned_managed_identity"},
"query_type": "vector_semantic_hybrid",
"embedding_dependency": {
"type": "deployment_name",
"deployment_name": "text-embedding-ada-002",
},
},
}],
},
)
Enterprise Security
- Azure Private Link for model access (no public internet)
- Managed Identity authentication (no API keys)
- Azure Key Vault for secret management
- Customer-managed encryption keys (CMK)
- Content filtering and responsible AI controls
- FedRAMP High, HIPAA, SOC 2, ISO 27001, PCI DSS
Anti-Patterns
- Building custom connectors when Power Platform connectors exist -- always check the catalog first
- Using Copilot Studio for complex data transformations -- use Power Automate or Logic Apps
- Skipping Azure AD integration -- always use SSO for enterprise bots
- Not setting up content safety filters in Azure OpenAI -- required for enterprise use
References
1---2name: azure-copilot-studio3description: <!-- AUTO-GENERATED by export-skills.py — DO NOT EDIT -->4---5<!-- AUTO-GENERATED by export-skills.py — DO NOT EDIT -->6---7name: azure-copilot-studio8description: Microsoft Copilot Studio patterns for building low-code AI bots with 1,000+ Power Platform connectors. Use when creating enterprise chatbots connected to SAP, Salesforce, ServiceNow, Oracle, or other systems via Power Platform.9tags: [azure, copilot, power-platform, low-code]10---1112# Microsoft Copilot Studio1314Build enterprise AI bots using Microsoft Copilot Studio with 1,000+ Power Platform connectors to SAP, Salesforce, ServiceNow, Oracle, and other enterprise systems.1516## When to Use1718- Building low-code/no-code AI chatbots connected to enterprise systems19- Leveraging Power Platform's 1,000+ pre-built connectors for enterprise integration20- Creating Copilot plugins that extend Microsoft 365 Copilot21- Implementing AI bots with Azure OpenAI models and enterprise data grounding2223## Power Platform Enterprise Connectors (Key Selection)2425| Category | Connectors |26|---|---|27| **ERP** | SAP (RFC, BAPI, IDoc, ABAP -- one of the most mature), Oracle ERP Cloud, Dynamics 365 |28| **CRM** | Salesforce (full CRUD + triggers), HubSpot, Dynamics 365 Sales |29| **ITSM** | ServiceNow (incidents, changes, problems), Jira |30| **HR** | Workday, SuccessFactors, BambooHR |31| **Cloud** | AWS (S3, SQS, SNS, Lambda), GCP (BigQuery, Pub/Sub, Storage) |32| **Data** | Snowflake (ODBC/REST), SQL Server, PostgreSQL, Oracle DB, Cosmos DB |33| **Productivity** | SharePoint, OneDrive, Outlook, Teams, Google Workspace |34| **Communication** | Slack, Twilio, SendGrid |3536## Patterns3738### 1. Copilot Studio + Power Automate Flow3940```41User asks: "What's the status of PO 4500001234?"4243Copilot Studio:44 1. Extracts intent: purchase_order_status45 2. Extracts entity: PO number = 450000123446 3. Triggers Power Automate flow:47 --> SAP Connector: GET /API_PURCHASEORDER_PROCESS_SRV/A_PurchaseOrder('4500001234')48 --> Transform response (DataWeave/expressions)49 --> Return to Copilot Studio50 4. Generates natural language response with PO details51```5253### 2. Azure Logic Apps for Complex Orchestration5455```json56{57 "definition": {58 "triggers": {59 "When_Copilot_requests_data": {60 "type": "Request",61 "kind": "Http"62 }63 },64 "actions": {65 "Query_SAP_Order": {66 "type": "ApiConnection",67 "inputs": {68 "host": { "connection": { "name": "@parameters('$connections')['sap']['connectionId']" } },69 "method": "get",70 "path": "/CallRfc",71 "queries": { "rfcName": "BAPI_SALESORDER_GETDETAIL", "parameters": "{...}" }72 }73 },74 "Enrich_with_Azure_OpenAI": {75 "type": "ApiConnection",76 "inputs": {77 "host": { "connection": { "name": "@parameters('$connections')['azureopenai']['connectionId']" } },78 "method": "post",79 "path": "/openai/deployments/gpt-4o/chat/completions",80 "body": {81 "messages": [82 { "role": "system", "content": "Summarize this SAP order data for a business user." },83 { "role": "user", "content": "@body('Query_SAP_Order')" }84 ]85 }86 }87 }88 }89 }90}91```9293### 3. Azure OpenAI On Your Data (RAG)9495```python96import openai9798client = openai.AzureOpenAI(99 azure_endpoint="https://my-resource.openai.azure.com/",100 api_key="...",101 api_version="2024-08-01-preview",102)103104response = client.chat.completions.create(105 model="gpt-4o",106 messages=[{"role": "user", "content": "What is our refund policy?"}],107 extra_body={108 "data_sources": [{109 "type": "azure_search",110 "parameters": {111 "endpoint": "https://my-search.search.windows.net",112 "index_name": "enterprise-knowledge-base",113 "authentication": {"type": "system_assigned_managed_identity"},114 "query_type": "vector_semantic_hybrid",115 "embedding_dependency": {116 "type": "deployment_name",117 "deployment_name": "text-embedding-ada-002",118 },119 },120 }],121 },122)123```124125## Enterprise Security126127- Azure Private Link for model access (no public internet)128- Managed Identity authentication (no API keys)129- Azure Key Vault for secret management130- Customer-managed encryption keys (CMK)131- Content filtering and responsible AI controls132- FedRAMP High, HIPAA, SOC 2, ISO 27001, PCI DSS133134## Anti-Patterns135136- Building custom connectors when Power Platform connectors exist -- always check the catalog first137- Using Copilot Studio for complex data transformations -- use Power Automate or Logic Apps138- Skipping Azure AD integration -- always use SSO for enterprise bots139- Not setting up content safety filters in Azure OpenAI -- required for enterprise use140141## References142143- [Copilot Studio Documentation](https://learn.microsoft.com/en-us/microsoft-copilot-studio/)144- [Power Platform Connectors](https://learn.microsoft.com/en-us/connectors/connector-reference/)145- [Azure Logic Apps Connectors](https://learn.microsoft.com/en-us/connectors/connector-reference/)146- [Azure OpenAI On Your Data](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/use-your-data)147148<!-- Source: .faos/custom/skills/cloud/azure/ai-agents/azure-copilot-studio/SKILL.md -->