Post

Secure Human-in-the-Loop Workflows with a Copilot Studio Custom Connector

Diesen Beitrag auf Deutsch lesen

A webhook action lets Copilot Studio workflows pause for human input, resume through a custom UI, and protect callback URLs with production controls.

TL;DR

A Copilot Studio custom connector can pause a workflow through a webhook action and resume it when the backend posts to the generated notificationUrl. The flow dehydrates while waiting. The OpenAPI definition needs x-ms-notification-url, x-ms-notification-content, no x-ms-trigger, and a DELETE unsubscribe endpoint.

Original by Adi Leibowitz, on The Custom Engine. Read the original

This is our own summary, not a republication or full translation.

Governance takeaway

  • Makers: Use the Human-in-the-Loop connector action when built-in email or Teams responses create workflow noise, and shape the custom UI around the process.
  • Admins/CoE: Replace in-memory storage and dev tunnels before production, using persistent storage and HTTPS hosting for the backend.
  • Security/Compliance: Keep the SAS-signed notificationUrl server-side and add OAuth plus user authorization, because anyone with the URL can resume the flow.

Frequently asked questions

What does x-ms-notification-url do in a Copilot Studio custom connector?

It tells Power Platform to generate a callback URL and inject it into the connector request for later workflow resumption.

How does a Copilot Studio webhook action resume a paused workflow?

The backend posts the human response to notificationUrl, causing Power Platform to rehydrate the flow and continue with the response data.

How should a Human-in-the-Loop connector protect notificationUrl in production?

Keep the SAS-signed notificationUrl server-side and never expose it to browsers or end users, because anyone with it can resume the flow.

This post is licensed under CC BY 4.0 by the author.