Workday's own tenants datasheet says the Sandbox tenant is refreshed weekly, data and configuration alike, with the current data from the production tenant, and that Sandbox Preview is refreshed twice a year (Workday tenants datasheet); Workday's course material adds that the data in the sandbox is typically a copy of production. So a test setup built in the sandbox has a shelf life measured in days, the fixtures an agent's tests depend on are rebuilt after every refresh, and between refreshes the tenant is shared by everyone who tests anything. The Workday world is a stateful Workday mock built for testing agents: the same URLs, the same errors and the same business process rules as the real API, on your machine, verified against the real system.
Workday sandbox refresh
Weekly is the right cadence for a person and the wrong one for a test suite. An agent that approves time off, moves a worker between organizations or changes compensation needs the tenant in a known state before every run, and needs the run after it to start from the same state. A shared sandbox gives neither: the previous run's approvals are still there, and on refresh day everything built by hand is gone. A world is a pseudonymized copy of your own tenant, taken when you ask for it: the same workers in the same positions, the same supervisory organizations, the same balances, under new names. Every run starts from those bytes, in milliseconds, and ends by throwing the world away.
A stateful Workday mock: workers, org changes, compensation, time off ledgers
The world keeps workers with their positions, managers and supervisory organizations, compensation with its effective dates, time off plans and balances, and the business processes that carry a change through its approvals. It keeps Workday's rules with them. A change takes effect on its effective date, not when it was entered, and a change dated before the last one is refused the way Workday refuses it. A time off request larger than the balance is refused. A termination closes the position and ends the balances. An approval by the wrong role does not count. Everything the agent creates or changes stays in the world, so the second request sees what the first one did.
Test your AI agent against Workday
Point the agent's Workday client at the world. Nothing in the agent changes. The path is three commands: the first copies the tenant and writes the worlds folder, the second turns your own case export into tasks, one per row, with the expected outcome on the rows where you know it, and the third runs the agent three times on fresh copies and writes the report. The three steps take about ten minutes; the GET ACCESS form on this page is where the Workday world starts.
Grade what the agent did, not what it said
A run starts from a mark and ends with a diff: every worker moved, every compensation change and its effective date, every time off request approved or denied and the balance it left, every termination. The transcript says the raise was entered for July; the diff shows June. The transcript says the request was approved; the diff shows a balance that went negative. The transcript says the worker was moved to the new team; the diff shows the position unchanged and a comment on the process. Where a change carries money, the diff says so in the currency the tenant keeps. The report gives every task a verdict and a reason, and replays the worst run to the byte.
Break it on purpose
Integrations time out, sessions expire and the API meters requests, and an agent working a queue will meet all three at the worst moment. In the world that moment is on your schedule: a timeout on every third call, an outage in the middle of an approval, a slow API, an expired session. Does the retry logic submit the compensation change twice? Does the agent report the request approved when the call never landed? Then move the clock, so effective dates arrive and balances accrue, and read the diff again.
Workday test environment for agents, in CI
The same command that runs on a laptop is the CI step the first command wrote. No tenant to share, no refresh day to plan around: the world starts fresh inside the job, the agent runs every task, the report is the artifact, and nothing leaves the machine. Every world in the catalog takes the same path; Okta, Salesforce and Stripe are three more of them, and the docs are the path in full.