plugins/dataverse/skills/dataverse-power-platform/SKILL.md
# dataverse-power-platform This skill provides guidance on integrating with the Microsoft Power Platform ecosystem. Use when users ask about "Power Apps", "Power Automate", "Power BI", "Dataverse connector", "canvas app", "model-driven app", "Power Automate flow", or need help with Power Platform integration. ## Power Apps Integration ### Canvas Apps with Dataverse Canvas apps can connect to Dataverse tables as data sources. **Connection setup:** 1. Add Dataverse connector in Power Apps 2. S
npx skillsauth add sahib-sawhney-wh/sahibs-claude-plugin-marketplace plugins/dataverse/skills/dataverse-power-platformInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides guidance on integrating with the Microsoft Power Platform ecosystem. Use when users ask about "Power Apps", "Power Automate", "Power BI", "Dataverse connector", "canvas app", "model-driven app", "Power Automate flow", or need help with Power Platform integration.
Canvas apps can connect to Dataverse tables as data sources.
Connection setup:
Common formulas:
// Read all accounts
ClearCollect(colAccounts, Accounts)
// Filter records
Filter(Accounts, Status = "Active")
// Create record
Patch(Accounts, Defaults(Accounts), {Name: "New Account"})
// Update record
Patch(Accounts, LookUp(Accounts, AccountId = varId), {Name: "Updated"})
// Delete record
Remove(Accounts, LookUp(Accounts, AccountId = varId))
Model-driven apps are built directly on Dataverse tables.
Key components:
Best practices:
When a row is added, modified or deleted
├── Table name: Accounts
├── Scope: Organization
└── Filter rows: statecode eq 0
// List rows
List rows
├── Table name: Accounts
├── Select columns: name,telephone1
├── Filter rows: statecode eq 0
└── Row count: 100
// Get a row by ID
Get a row by ID
├── Table name: Accounts
└── Row ID: @{triggerOutputs()?['body/accountid']}
// Add a new row
Add a new row
├── Table name: Accounts
└── Name: "New Account"
// Update a row
Update a row
├── Table name: Accounts
├── Row ID: @{variables('accountId')}
└── Name: "Updated Name"
// Delete a row
Delete a row
├── Table name: Accounts
└── Row ID: @{variables('accountId')}
Sync data from external system:
HTTP Request received
↓
Parse JSON
↓
Apply to each (items)
↓
├── List rows (check if exists)
├── Condition (exists?)
│ ├── Yes → Update a row
│ └── No → Add a new row
Send notification on record change:
When a row is added (Accounts)
↓
Get a row by ID (Owner)
↓
Send an email (to Owner)
// Use query folding
let
Source = CommonDataService.Database("https://yourorg.crm.dynamics.com"),
accounts = Source{[Schema="dbo", Item="account"]}[Data],
filtered = Table.SelectRows(accounts, each [statecode] = 0),
selected = Table.SelectColumns(filtered, {"name", "revenue"})
in
selected
import requests
# HTTP trigger URL from Power Automate
flow_url = "https://prod-xx.westus.logic.azure.com/workflows/..."
# Trigger the flow
response = requests.post(flow_url, json={
"account_name": "New Account",
"source": "Python App"
})
# Python app writes to Dataverse
# Power Automate flow triggers on change
# Sends notifications, updates other systems
client = get_client()
client.create("account", {"name": "From Python"})
# Power Automate flow handles the rest
references/power-apps.md for Power Apps patternsreferences/power-automate.md for flow examplesreferences/power-bi.md for reporting patternstools
# dataverse-web-apps This skill provides guidance on building web applications (any language) that connect to Microsoft Dataverse. Use when users ask about ".NET Dataverse", "Node.js Dataverse", "JavaScript Dataverse", "REST API Dataverse", "web app Dataverse", "OAuth Dataverse", or need help with web application integration. ## Dataverse Web API All languages can access Dataverse via the OData Web API. **Base URL:** `https://yourorg.api.crm.dynamics.com/api/data/v9.2/` ### Authentication
tools
# dataverse-sdk This skill provides guidance on using the PowerPlatform Dataverse Client SDK for Python. Use when users ask about "Dataverse SDK", "Dataverse Python", "DataverseClient", "Dataverse authentication", "Dataverse CRUD operations", "create Dataverse records", "query Dataverse", "Dataverse connection", or need help with the Microsoft Dataverse Python SDK. ## Quick Start Install the SDK: ```bash pip install PowerPlatform-Dataverse-Client azure-identity ``` Basic setup: ```python fro
tools
# dataverse-schema-design This skill provides guidance on designing Dataverse table schemas and data models. Use when users ask about "Dataverse table design", "Dataverse schema", "Dataverse relationships", "Dataverse columns", "data modeling Dataverse", "Dataverse best practices", or need help designing their data structure. ## Table Design Fundamentals ### Naming Conventions - **Table prefix**: Use publisher prefix (e.g., `new_`, `cr123_`) - **Table names**: PascalCase, singular (e.g., `new
tools
# dataverse-queries This skill provides guidance on querying data from Microsoft Dataverse. Use when users ask about "Dataverse query", "OData filter", "Dataverse SQL", "FetchXML", "query Dataverse records", "Dataverse filter syntax", "search Dataverse", or need help constructing queries. ## Query Methods The Dataverse SDK supports two query methods: 1. **OData queries** - Standard Web API query syntax 2. **SQL queries** - T-SQL-like syntax (read-only) ## OData Query Basics ```python # Basi