Build durable Copilot Studio processes with Dataverse state tables
Diesen Beitrag auf Deutsch lesen
A practical pattern for long-running invoice and purchase order processes using Copilot Studio agents, agent flows, Dataverse and scheduled sweeps.
TL;DR
Use a central Dataverse state table as the source of truth for long-running Copilot Studio processes. An orchestrator agent routes cases to specialist agents, while agent flows guard transitions, perform deterministic work, call connectors and periodically sweep due items.
Original by Holger Imbery, on Holger Imbery - fieldnotes and insights. Read the original
This is our own summary, not a republication or full translation.
Why it matters
- Makers: Design the business states first, then keep routing in Copilot Studio and deterministic checks in agent flows so each component has a clear responsibility.
- Admins/IT: Use Dataverse rows, guarded transitions and scheduled sweeps instead of keeping long-running work in conversation memory, so cases survive waiting periods and restarts.
- BI/Data teams: Build Power BI reporting over the state table to track state counts, dwell times and low-confidence extraction fields.
- Leadership/Business: Start with one document type and supplier group, then use the audit trail and NeedsHuman queue to monitor reliability before widening the process.
Frequently asked questions
How can Copilot Studio handle an invoice process that waits for days?
Store the case and its next action time in Dataverse, then use a scheduled agent flow to resume due work. The conversation does not remain open.
What does the Copilot Studio TransitionCase agent flow do?
TransitionCase validates a requested state change against an allowed-transition list and writes the new row version. It ensures one component controls state changes.
How are scanned invoices processed in this Copilot Studio pattern?
A specialist agent sends scanned documents through OCR or document intelligence, returns structured invoice fields with per-field confidence, and stores the result in the state table.
