2025-08-05
Build Secure Custom Connectors for Power Apps

Built-in connectors stop where real business data begins. This episode shows how to turn any documented API into a first-class Power Apps data source using a custom connector—from reading API docs and wiring authentication to shaping payloads, testing, and production hardening.
Who This Is For
-
App makers who need live data beyond Microsoft 365
-
Power Platform admins/architects connecting LOB/legacy systems
-
Developers standardizing integrations for re-use across apps/flows
Key Takeaways
-
Custom connectors = universal adapter: Teach Power Apps to talk to your API with actions, triggers, and typed schemas.
-
Auth first: Nail OAuth 2.0 / API key / Basic flows up front; scope least privilege; plan token refresh.
-
OpenAPI wins: Import vendor Swagger when available; otherwise author a minimal spec focused on real use cases.
-
Shape the payloads: Provide sample requests/responses for clean UI bindings and resilient parsing.
-
Production guardrails: Error messages users can understand, retry/backoff for throttling, monitoring, and versioning.
Highlights
-
Why built-in connectors hit a wall with niche or legacy systems
-
The anatomy of a connector: host, base path, security, actions, schemas
-
Handling “tricky” OAuth (auth URL, token URL, scopes, redirect URI)
-
Reliable testing flow: Postman → connector test tab → Power Apps
-
Hardening: timeouts, throttling, error maps, and secure secret storage
Step-by-Step Blueprint (Copy/Paste)
-
Scope the use case
-
Pick 2–3 endpoints that matter (e.g.,
GET /inventory,GET /shipments/{id},POST /orders).
-
-
Collect docs & test the API
-
Validate endpoints in Postman (auth, headers, params). Save working examples.
-
Note rate limits, required headers, and common error codes.
-
-
Create the connector (Power Apps → Custom connectors)
-
General: Name, icon, host, base URL, schemes (HTTPS only).
-
Security: Choose OAuth 2.0 (auth URL, token URL, scopes) or API Key; set Least Privilege scopes.
-
Definition: Add actions; for each, define method, path, query/body params, headers. Provide sample JSON responses.
-
Code (optional): Add policies (set headers, rewrite URLs) or small transformations.
-
-
Test & iterate
-
Use Test tab to call each action; compare with Postman results.
-
Fix schema mismatches and required/optional params.
-
-
Use in Power Apps/Automate
-
Add connector; bind outputs to galleries/forms; parameterize inputs.
-
In flows, chain actions and handle error branches.
-
-
Harden for production
-
Error mapping: Translate 4xx/5xx to friendly messages; surface correlation IDs.
-
Resilience: Implement retry with exponential backoff for 429/503; respect server rate limits.
-
Security: Store secrets in Azure Key Vault/environment variables; never hardcode.
-
Governance: Limit who can create connections; DLP policies to zone the connector.
-
On-prem? Use On-premises Data Gateway for internal APIs.
-
-
Operate & evolve
-
Monitor failures/latency (Flow run history, Azure Monitor/App Insights via custom logging).
-
Version your OpenAPI; document breaking changes; pilot before widening rollout.
-
Pitfalls & Fixes
-
Works for me, not for others → Missing OAuth scopes/consent or redirect URI mismatch. Fix: verify app registration, multi-user consent, and connector redirect URL.
-
Blank data, no errors → Response shape differs from sample. Fix: update response schema; mark optional fields; add error object schema.
-
Token timeouts → No refresh/short expiry. Fix: use refresh tokens/Client Credentials (service scenario) and monitor expiry.
-
Throttling (429s) → Tight loops in flows. Fix: add retry/backoff; cache where possible.
-
Security drift → Broad scopes or shared keys. Fix: least privilege, per-env secrets in Key Vault, rotate credentials.
Security & Governance Essentials
-
Apply DLP policies (Business/Non-Business) to control where the connector can be used.
-
Use Managed Identities / service principals for server-to-server scenarios.
-
Enable auditing for connector usage; log correlation IDs for support.
-
Separate dev/test/prod connectors; restrict who can publish to prod.
Testing & Monitoring Checklist
-
Postman regression collection (+ environment variables for dev/test/prod)
-
Connector Test tab suite for core actions
-
Power Automate probe flow on a schedule (alerts to Teams/email on failure)
-
Dashboards: success rate, latency, top error codes, throttling events
FAQs
Do I need the vendor’s OpenAPI file?
No—helpful but optional. You can author the spec in the wizard using working Postman calls.
Which auth should I choose?
Use whatever the API supports. Prefer OAuth 2.0; fall back to API key only if required, and store keys securely.
Can I trigger flows from the external system?
Yes, via custom connector triggers (webhooks/polling) if the API supports callbacks.
What about on-prem APIs?
Use the On-premises Data Gateway and ensure firewall/DNS rules allow it.
Host: Mirko Peters