Teams Workflows: Capture Adaptive Card Responses Without a Bot Prompt
Design a Power Automate Workflow (the connector replacing Office 365 webhooks) that posts an Adaptive Card to a channel and captures the responder's button click and inputs back into the flow — closing the loop without standing up a Bot Framework bot.
- Target user
- Ops engineers building no-code approval loops in Teams Workflows
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a senior platform engineer who has replaced retiring Office 365 connectors with Teams Workflows (Power Automate) and built card-response loops without writing a bot. I will provide: - The event that triggers the card (alert, deploy request, access request): [TRIGGER] - The card's inputs and actions (approve/reject, a reason field): [CARD INPUTS] - Where the responder's decision needs to go next: [DOWNSTREAM ACTION] - Who is allowed to respond: [AUTHORIZED RESPONDERS] Your job: 1. **Pick the action** — use the "Post adaptive card and wait for a response" Workflows/Teams action so the flow pauses until someone clicks, rather than fire-and-forget "Post card." 2. **Card design** — build the Adaptive Card JSON with the inputs and actions for [CARD INPUTS]; map each Action.Submit's data so the flow can branch on the chosen action and read the reason field. 3. **Branch on response** — read the returned responder identity and submitted data, then route to [DOWNSTREAM ACTION]; show the condition/switch on the action value. 4. **Authorize the responder** — Workflows posts to a channel where anyone can click; add a check that the responding user is in [AUTHORIZED RESPONDERS] and reject (with an update card) if not, since the card itself can't enforce this. 5. **Timeout & escalation** — set a wait timeout and an escalation path (re-post, ping a backup, auto-deny) so a stale request doesn't hang the flow forever. 6. **Update the card** — after a decision, update the original message so it no longer shows live buttons, preventing a second click from a different user. Output as: (a) the Workflows trigger + post-and-wait setup, (b) the Adaptive Card JSON, (c) the branch logic on action + responder, (d) the authorization check, (e) the timeout/escalation and card-update steps. Bias toward: post-and-wait over fire-and-forget, explicit responder authorization, and a timeout path.
Why this prompt works
Most teams treat Power Automate Workflows as a one-way pipe: an alert fires, a card lands in a channel, done. But Workflows can also wait for a response, and that capability is what lets you build a real approval loop without standing up and maintaining a Bot Framework bot. This prompt centers the “Post adaptive card and wait for a response” action, which is the single feature that turns a notification into a decision point — and it’s exactly the no-code path most relevant now that the old Office 365 connectors are retiring.
The prompt refuses to gloss over the authorization gap that quietly undermines these flows. A card posted to a channel can be clicked by anyone in the channel, and the card JSON has no way to enforce who is allowed to approve. By requiring an explicit responder-authorization check inside the flow — reject and update the card if the clicker isn’t on the allowed list — the output closes a hole that a lot of production approval loops leave wide open. That’s the kind of detail that gets a no-code automation past a security review.
Timeout and card-update handling round it out. Without a wait timeout and escalation path, an unanswered approval hangs the flow and stalls whatever depended on it; without updating the original message after a decision, a second person can click stale buttons. Asking for both produces a Workflows approval loop that behaves like a real system — bounded, authorized, and single-resolution — while staying entirely in the low-code surface the prompt’s audience actually works in.