Post

Use Dataverse state tables for durable Copilot Studio processes

Diesen Beitrag auf Deutsch lesen

Persist long-running work in Dataverse, use guarded agent-flow transitions, and route uncertain cases to people instead of relying on chat memory.

TL;DR

Run long-lived Copilot Studio work from a Dataverse case table rather than a conversation. Use one guarded TransitionCase agent flow to validate state changes, write before side effects and confirm afterward. Store attempts, NextActionAt, confidence and an append-only audit trail; sweep due cases and send low-confidence work to NeedsHuman.

Original by Holger Imbery, on Holger Imbery - fieldnotes and insights. Read the original

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

Governance takeaway

  • Makers: Keep specialist agents narrow, put deterministic checks in agent flows, and persist confidence so uncertain extraction reaches human review.
  • Admins/CoE: Make a single guarded flow the only writer of State, validate allowed transitions, and retain attempts, errors and audit entries for recovery.
  • Leadership/Business: Define business states before building, then use the Dataverse table and Power BI to inspect queues, dwell times and recurring exceptions.

Frequently asked questions

Why should a Copilot Studio agent not hold the state of a long-running process?

The agent is treated as a stateless worker, and the process lives in a persistent Dataverse table.

What does the single-writer rule mean for the State column?

Only one component, a dedicated agent flow, may write the State column, and it validates transitions against an allowed list. Everything else reads the state and proposes transitions.

How can a process wait several days without keeping a Copilot Studio session open?

Scheduled sweeper flows check the NextActionAt timestamp and pick up cases that are due. An approval agent, for example, writes PendingApproval with a deadline for reminders and then stops, holding no session.

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