Good question and you've diagnosed the platform correctly.
The hard limits to design around:
- Copilot Studio enforces a 100-second limit on synchronous flow responses (the Respond to the agent action must fire within 100 seconds)
- There's also a ~2-minute total flow timeout in some configurations
- There is no streaming or intermediate status mechanism from flow to agent
Pattern 1: Split the flow at the Respond to the agent action (confirmed supported)
This is the Microsoft-recommended approach. Place the Respond to the agent action early in the flow immediately after you've done enough work to give the user a meaningful acknowledgment and put the heavy HTTP work after it. Actions placed after Respond to the agent continue running up to the full 30-day flow duration limit without blocking the agent response.
So the flow responds to the agent: "Your request is being processed, I'll notify you when it's done" and then continues running the long HTTP call in the background.
Pattern 2: Proactive message when complete (confirmed supported, Teams only)
After the background work finishes, the flow sends a proactive message to the user via the Teams connector with Post as: Microsoft Copilot Studio agent. This delivers the result directly to the user's personal chat with the agent without requiring a new user message.
Limitations to know: proactive messages only work in Teams, not in web chat or other channels. The user must have the agent installed and not blocked it.
Pattern 3: Express mode (preview)
Microsoft recently released express mode for agent flows which speeds up execution significantly, increasing the likelihood of completing within the 2-minute window. Worth enabling if your environment supports it no extra cost, toggle it on in the flow's Overview page.
For regulated/enterprise environments, Pattern 1 + 2 combined is the cleanest architecture:
1. Agent calls flow
2. Flow validates input, kicks off the HTTP call, immediately responds to agent: "Processing your request"
3. HTTP call completes in the background
4. Flow sends proactive Teams message with the result
5. Result optionally stored in Dataverse for the agent to retrieve on follow-up query
Best regards,
Valantis
✅ If this helped solve your issue, please Accept as Solution so others can find it quickly.
❤️ If it didn’t fully solve it but was still useful, please click “Yes” on “Was this reply helpful?” or leave a Like :).
🏷️ For follow-ups @Valantis.
📝 https://valantisond365.com/