plugins/lobbi-m365-automator/skills/power-automate-gen/SKILL.md
Design Power Automate flow specifications for business process automation including approvals, document routing, notifications, and M365 system synchronization.
npx skillsauth add markus41/claude plugins/lobbi-m365-automator/skills/power-automate-genInstall 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.
Produce a complete Power Automate flow specification. The output must be precise enough that a Power Platform developer can build the flow without clarification calls. Make all decisions explicitly — do not present alternatives.
Choose the flow type based on what starts the process:
| Trigger Category | Flow Type | When to Use | |-----------------|-----------|-------------| | Something happens in a system | Automated cloud flow | SharePoint item changes, email received, Teams message, form submitted | | A person starts it manually | Instant cloud flow | Button in Teams/SharePoint, mobile trigger, manual data entry | | Time-based | Scheduled cloud flow | Nightly sync, weekly report, monthly archive | | External system calls in | Automated (HTTP trigger) | Webhook receiver, API-triggered process |
Document the trigger with full configuration:
SharePoint triggers:
@not(equals(triggerOutputs()?['body/Status/Value'], 'Archived'))Email triggers:
Form submission triggers:
Scheduled triggers:
HTTP request triggers:
X-API-Key) OR OAuth (specify scope)Design the complete action sequence. Number each step. Group related steps in a Scope action for error handling.
Step template:
Step N: [Action Name]
Connector: [Connector name]
Action: [Exact action name as shown in Power Automate]
Inputs:
- [Parameter]: [Value or dynamic content reference]
- [Parameter]: [Value or dynamic content reference]
Output stored as: [Variable or referenced downstream as...]
Notes: [Any important configuration detail]
Common action patterns for insurance and financial services:
Get related record:
Step 2: Get client record from SharePoint
Connector: SharePoint
Action: Get item
Site: [Site URL]
List: Clients
Id: [triggerOutputs()?['body/ClientID']]
Send notification:
Step 3: Post Teams notification
Connector: Microsoft Teams
Action: Post message in a chat or channel (V3)
Post as: Flow bot
Post in: Channel
Team: [Team ID]
Channel: [Channel ID]
Message: New [item type] submitted by @{triggerOutputs()?['body/Author/DisplayName']} — [link]
Send for approval:
Step 4: Start approval
Connector: Approvals
Action: Start and wait for an approval (V2)
Approval type: [See Approval Workflow Design section]
Title: [Descriptive title with dynamic content]
Assigned to: [Email addresses or dynamic content]
Details: [Formatted details block]
Item link: [Direct URL to the SharePoint item or Teams message]
Item link description: View item
Choose approval type based on business requirement:
| Approval Type | Use When | |---------------|----------| | First to respond | Any one approver's decision is sufficient (e.g., manager group) | | Everyone must approve | All listed approvers must approve (e.g., dual-control for financial transactions) | | Sequential | Approvers must respond in order (e.g., manager then director) — use multiple chained approvals |
Approval configuration:
[Document Type] Approval Request — [Client Name] — [Date]Approval response handling:
Condition: Approval outcome
If Approve:
Step A: Update SharePoint item Status to "Approved"
Step B: Send confirmation email to requestor
Step C: [Next business process step]
If Reject:
Step A: Update SharePoint item Status to "Rejected"
Step B: Send rejection email to requestor with comments from approver
Step C: Create Teams notification in manager channel
Wrap the main action sequence in a Scope named "Try". Add a second Scope named "Catch" configured to run on failure of the Try scope.
Catch scope contents:
Step C1: Send failure notification email
To: [IT admin email or DL]
Subject: Flow failure: [Flow name] — [Timestamp]
Body:
Flow: [Flow name]
Run ID: @{workflow()?['run']?['name']}
Error: @{result('Try')?[0]?['error']?['message']}
Trigger data: [Key fields from trigger]
Step C2: Update item Status to "Error — Manual Review Required"
[Only if a SharePoint item is involved]
Configure Scope "Catch" run-after settings: Check "has failed" and "has timed out" for the Try scope.
List all values that vary between environments (development, test, production) or between client deployments:
| Variable Name | Type | Description | Example Value | |--------------|------|-------------|---------------| | SiteUrl | String | SharePoint site URL | https://[tenant].sharepoint.com/sites/[site] | | ApproverEmail | String | Primary approver email address | [email protected] | | NotificationTeamId | String | Teams team GUID | [resolved at deploy time] | | NotificationChannelId | String | Teams channel GUID | [resolved at deploy time] |
Use environment variables in all connector configurations — never hardcode URLs, email addresses, or IDs.
List all connection references the flow requires. One connection reference per connector. These are separate from environment variables:
| Connection Reference | Connector | Runs As | |---------------------|-----------|---------| | SharePoint-ServiceAccount | SharePoint | Service account (not user) | | Outlook-Notifications | Office 365 Outlook | Service account | | Teams-Bot | Microsoft Teams | Flow bot (no personal account) | | Approvals-Service | Approvals | [Requesting user] |
Use service accounts for connectors that run automated actions. Use [requesting user] only for actions that must be attributed to the person who triggered the flow.
Deliver as:
development
Enhanced plan-authoring skill with Pre-Writing context gathering, task metadata, non-TDD templates, Red Flags, telemetry, and an automated plan linter. Use when you have a spec or requirements for a multi-step task, before touching code.
tools
Documentation intelligence engine with graph-based API docs, algorithm library, and drift detection
tools
Ultraplan cloud planning — kick off a plan in the cloud from your terminal, review and revise in the browser, then execute remotely or send back to CLI
tools
--- name: mcp description: Configure MCP servers for Claude Code — stdio vs HTTP, authentication, Tools/Resources/Prompts distinction, channels (CI webhook, mobile relay, Discord bridge, fakechat), and cost of always-loaded tools. Use this skill whenever adding an MCP server, debugging connection issues, choosing between MCP Tools vs Prompts vs Resources, installing channel servers, or managing .mcp.json. Triggers on: "MCP server", "mcp config", "add Obsidian MCP", "install context7", "channels"