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.
Provides guidance on integrating Microsoft Power Platform with Dataverse for Power Apps, Power Automate, and Power BI.
/plugin marketplace add Sahib-Sawhney-WH/dapr-claude-plugin/plugin install sahib-sawhney-wh-dataverse-plugins-dataverse@Sahib-Sawhney-WH/dapr-claude-pluginThis skill inherits all available tools. When active, it can use any tool Claude has access to.
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 patternsThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.