Skill: Integration Patterns
When to Use
Trigger when designing integrations between Power Platform and Azure services — Service Bus messaging, Azure Functions for compute, Dataverse webhooks, Event Grid, on-premises gateway, VNet connectivity, or hybrid architectures.
Integration Pattern Overview
| Pattern |
Direction |
Coupling |
Best For |
| Service Bus |
Dataverse → Azure (async) |
Loose |
Reliable messaging, event distribution |
| Azure Functions |
Bidirectional |
Medium |
Custom compute, API intermediary |
| Webhooks |
Dataverse → External (sync/async) |
Loose |
Real-time push notifications |
| Event Grid |
Azure → Power Platform |
Loose |
Azure event-driven triggers |
| On-premises gateway |
Power Platform → On-prem |
Tight |
Legacy system access |
| VNet integration |
Power Platform ↔ Azure VNet |
Tight |
Network-level security |
| Custom connectors |
Power Platform → Any API |
Medium |
REST API integration |
⚠️ REQUIRED: Load Sub-Files Before Implementation
SKILL.md is a summary only — it is NOT sufficient for implementation.
The detailed content (complete payloads, XML templates, working examples, edge-case handling) lives in sub-files in the same directory as this SKILL.md. Before writing any code, you MUST use read_file on the sub-files relevant to your task:
- Service Bus — Azure Service Bus integration, topic/queue patterns, Dataverse plugin to Service Bus, reliable messaging, dead-letter handling, session-aware processing
- Azure Functions — when to use Functions vs plugins vs flows, HTTP-triggered for Custom Connectors, Dataverse bindings, managed identity auth, cold start mitigation
- Webhooks & Events — Dataverse webhooks (real-time push), webhook registration via API, payload schema, retry behavior, Event Grid integration
- Hybrid Connectivity — on-premises data gateway, Azure VNet integration, private endpoints for Dataverse, Azure Relay, security considerations
Decision Table: Which Integration Pattern?
| Requirement |
Pattern |
Why |
| Reliable async messaging |
Service Bus |
Guaranteed delivery, dead-letter, retry |
| Real-time event notification |
Webhook |
Immediate push on data change |
| Custom compute (validation, transformation) |
Azure Function |
Serverless, scalable, any language |
| Legacy on-prem database access |
On-prem gateway |
Bridge to SQL, Oracle, SAP |
| Network-isolated Azure resources |
VNet integration |
Private endpoint access |
| Fan-out to multiple subscribers |
Service Bus topics or Event Grid |
One event, many consumers |
| Simple REST API call |
Custom connector |
Low-code, reusable |
| High-volume batch processing |
Azure Function + Service Bus |
Decouple producer from consumer |
Anti-Patterns
- Synchronous HTTP calls in Dataverse plugins to external APIs (2-minute timeout, blocks user)
- On-premises gateway for everything (single point of failure, bottleneck)
- No dead-letter handling on Service Bus (lost messages go unnoticed)
- Webhook without retry-aware endpoint (missed events)
- Azure Functions with long cold starts on critical paths (user-facing latency)
- Tight coupling between Dataverse and external systems (breaks when external system changes)
- No monitoring on integration points (failures go undetected)
- VNet integration without private endpoints (traffic still goes over public internet)
Related Skills
plugins — Dataverse plugins that trigger integrations
power-automate — Flow-based integrations with connectors
azure-openai — Azure Functions as AI intermediary
custom-connectors — Custom connector creation for APIs
security — Authentication for external integrations
Source: korchard333/claude-power-platform-community — distributed by TomeVault.
1---2name: korchard333-claude-power-platform-community-claude-power-pla3description: Skill: Integration Patterns4---56# Skill: Integration Patterns78## When to Use9Trigger when designing integrations between Power Platform and Azure services — Service Bus messaging, Azure Functions for compute, Dataverse webhooks, Event Grid, on-premises gateway, VNet connectivity, or hybrid architectures.1011---1213## Integration Pattern Overview1415| Pattern | Direction | Coupling | Best For |16|---|---|---|---|17| **Service Bus** | Dataverse → Azure (async) | Loose | Reliable messaging, event distribution |18| **Azure Functions** | Bidirectional | Medium | Custom compute, API intermediary |19| **Webhooks** | Dataverse → External (sync/async) | Loose | Real-time push notifications |20| **Event Grid** | Azure → Power Platform | Loose | Azure event-driven triggers |21| **On-premises gateway** | Power Platform → On-prem | Tight | Legacy system access |22| **VNet integration** | Power Platform ↔ Azure VNet | Tight | Network-level security |23| **Custom connectors** | Power Platform → Any API | Medium | REST API integration |2425---2627## ⚠️ REQUIRED: Load Sub-Files Before Implementation2829**SKILL.md is a summary only — it is NOT sufficient for implementation.**3031The detailed content (complete payloads, XML templates, working examples, edge-case handling) lives in sub-files in the **same directory** as this SKILL.md. Before writing any code, you MUST use `read_file` on the sub-files relevant to your task:32- **[Service Bus](service-bus.md)** — Azure Service Bus integration, topic/queue patterns, Dataverse plugin to Service Bus, reliable messaging, dead-letter handling, session-aware processing33- **[Azure Functions](azure-functions.md)** — when to use Functions vs plugins vs flows, HTTP-triggered for Custom Connectors, Dataverse bindings, managed identity auth, cold start mitigation34- **[Webhooks & Events](webhooks-events.md)** — Dataverse webhooks (real-time push), webhook registration via API, payload schema, retry behavior, Event Grid integration35- **[Hybrid Connectivity](hybrid-connectivity.md)** — on-premises data gateway, Azure VNet integration, private endpoints for Dataverse, Azure Relay, security considerations3637---3839## Decision Table: Which Integration Pattern?4041| Requirement | Pattern | Why |42|---|---|---|43| Reliable async messaging | **Service Bus** | Guaranteed delivery, dead-letter, retry |44| Real-time event notification | **Webhook** | Immediate push on data change |45| Custom compute (validation, transformation) | **Azure Function** | Serverless, scalable, any language |46| Legacy on-prem database access | **On-prem gateway** | Bridge to SQL, Oracle, SAP |47| Network-isolated Azure resources | **VNet integration** | Private endpoint access |48| Fan-out to multiple subscribers | **Service Bus topics** or **Event Grid** | One event, many consumers |49| Simple REST API call | **Custom connector** | Low-code, reusable |50| High-volume batch processing | **Azure Function** + **Service Bus** | Decouple producer from consumer |5152---5354## Anti-Patterns5556- Synchronous HTTP calls in Dataverse plugins to external APIs (2-minute timeout, blocks user)57- On-premises gateway for everything (single point of failure, bottleneck)58- No dead-letter handling on Service Bus (lost messages go unnoticed)59- Webhook without retry-aware endpoint (missed events)60- Azure Functions with long cold starts on critical paths (user-facing latency)61- Tight coupling between Dataverse and external systems (breaks when external system changes)62- No monitoring on integration points (failures go undetected)63- VNet integration without private endpoints (traffic still goes over public internet)6465---6667## Related Skills6869- `plugins` — Dataverse plugins that trigger integrations70- `power-automate` — Flow-based integrations with connectors71- `azure-openai` — Azure Functions as AI intermediary72- `custom-connectors` — Custom connector creation for APIs73- `security` — Authentication for external integrations7475---76> Source: [korchard333/claude-power-platform-community](https://github.com/korchard333/claude-power-platform-community) — distributed by [TomeVault](https://tomevault.io).77<!-- tomevault:4.0:skill_md:2026-06-21 -->