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.
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-studio-33description: <!-- 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.9---1011# Microsoft Copilot Studio1213Build enterprise AI bots using Microsoft Copilot Studio with 1,000+ Power Platform connectors to SAP, Salesforce, ServiceNow, Oracle, and other enterprise systems.1415## When to Use1617- Building low-code/no-code AI chatbots connected to enterprise systems18- Leveraging Power Platform's 1,000+ pre-built connectors for enterprise integration19- Creating Copilot plugins that extend Microsoft 365 Copilot20- Implementing AI bots with Azure OpenAI models and enterprise data grounding2122## Power Platform Enterprise Connectors (Key Selection)2324| Category | Connectors |25|---|---|26| **ERP** | SAP (RFC, BAPI, IDoc, ABAP -- one of the most mature), Oracle ERP Cloud, Dynamics 365 |27| **CRM** | Salesforce (full CRUD + triggers), HubSpot, Dynamics 365 Sales |28| **ITSM** | ServiceNow (incidents, changes, problems), Jira |29| **HR** | Workday, SuccessFactors, BambooHR |30| **Cloud** | AWS (S3, SQS, SNS, Lambda), GCP (BigQuery, Pub/Sub, Storage) |31| **Data** | Snowflake (ODBC/REST), SQL Server, PostgreSQL, Oracle DB, Cosmos DB |32| **Productivity** | SharePoint, OneDrive, Outlook, Teams, Google Workspace |33| **Communication** | Slack, Twilio, SendGrid |3435## Patterns3637### 1. Copilot Studio + Power Automate Flow3839```40User asks: "What's the status of PO 4500001234?"4142Copilot Studio:43 1. Extracts intent: purchase_order_status44 2. Extracts entity: PO number = 450000123445 3. Triggers Power Automate flow:46 --> SAP Connector: GET /API_PURCHASEORDER_PROCESS_SRV/A_PurchaseOrder('4500001234')47 --> Transform response (DataWeave/expressions)48 --> Return to Copilot Studio49 4. Generates natural language response with PO details50```5152### 2. Azure Logic Apps for Complex Orchestration5354```json55{56 "definition": {57 "triggers": {58 "When_Copilot_requests_data": {59 "type": "Request",60 "kind": "Http"61 }62 },63 "actions": {64 "Query_SAP_Order": {65 "type": "ApiConnection",66 "inputs": {67 "host": { "connection": { "name": "@parameters('$connections')['sap']['connectionId']" } },68 "method": "get",69 "path": "/CallRfc",70 "queries": { "rfcName": "BAPI_SALESORDER_GETDETAIL", "parameters": "{...}" }71 }72 },73 "Enrich_with_Azure_OpenAI": {74 "type": "ApiConnection",75 "inputs": {76 "host": { "connection": { "name": "@parameters('$connections')['azureopenai']['connectionId']" } },77 "method": "post",78 "path": "/openai/deployments/gpt-4o/chat/completions",79 "body": {80 "messages": [81 { "role": "system", "content": "Summarize this SAP order data for a business user." },82 { "role": "user", "content": "@body('Query_SAP_Order')" }83 ]84 }85 }86 }87 }88 }89}90```9192### 3. Azure OpenAI On Your Data (RAG)9394```python95import openai9697client = openai.AzureOpenAI(98 azure_endpoint="https://my-resource.openai.azure.com/",99 api_key="...",100 api_version="2024-08-01-preview",101)102103response = client.chat.completions.create(104 model="gpt-4o",105 messages=[{"role": "user", "content": "What is our refund policy?"}],106 extra_body={107 "data_sources": [{108 "type": "azure_search",109 "parameters": {110 "endpoint": "https://my-search.search.windows.net",111 "index_name": "enterprise-knowledge-base",112 "authentication": {"type": "system_assigned_managed_identity"},113 "query_type": "vector_semantic_hybrid",114 "embedding_dependency": {115 "type": "deployment_name",116 "deployment_name": "text-embedding-ada-002",117 },118 },119 }],120 },121)122```123124## Enterprise Security125126- Azure Private Link for model access (no public internet)127- Managed Identity authentication (no API keys)128- Azure Key Vault for secret management129- Customer-managed encryption keys (CMK)130- Content filtering and responsible AI controls131- FedRAMP High, HIPAA, SOC 2, ISO 27001, PCI DSS132133## Anti-Patterns134135- Building custom connectors when Power Platform connectors exist -- always check the catalog first136- Using Copilot Studio for complex data transformations -- use Power Automate or Logic Apps137- Skipping Azure AD integration -- always use SSO for enterprise bots138- Not setting up content safety filters in Azure OpenAI -- required for enterprise use139140## References141142- [Copilot Studio Documentation](https://learn.microsoft.com/en-us/microsoft-copilot-studio/)143- [Power Platform Connectors](https://learn.microsoft.com/en-us/connectors/connector-reference/)144- [Azure Logic Apps Connectors](https://learn.microsoft.com/en-us/connectors/connector-reference/)145- [Azure OpenAI On Your Data](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/use-your-data)146147<!-- Source: .faos/custom/skills/cloud/azure/ai-agents/azure-copilot-studio/SKILL.md -->