Sandboxes
A copy of this workspace that is safe to break — its own address, its own expiry, and an outbox that captures everything it would have sent.

What it is
A sandbox is a separate workspace provisioned as a copy of this one, so that "can we try the new approval rules against our own data first" has an answer that is not "clone the database and hope". It gets its own address, it expires on its own clock, and nothing it does reaches the outside world.
How to get there
Organization → Sandboxes in the admin console rail, at /<workspace>/admin/sandbox. It sits beside Company and Settings because a sandbox is a copy of the whole workspace, not a resourcing artefact.
Seeing the list, the clone history and the captured outbox needs sandbox.view. Creating, extending and destroying one needs sandbox.manage and the platform.sandbox plan entitlement.
How to use it
Create one
- Press New sandbox. At the cap — five at once — the button is disabled and says so, rather than letting you find out from a refusal.
- Give it a name.
- Choose what to copy:
- Configuration only — settings, roles and rate cards. No projects, tasks or client records come across. - Configuration and data — projects, tasks and time as well.
- Replace names and email addresses is on by default. Turn it off only if the people using the sandbox may already see the real records. With it off and the data mode chosen, the copy carries real client names and real email addresses, and the sentence under the form says so in those words as you change the controls.
- Set the lifetime in days, between 1 and 365. It is destroyed automatically when it runs out.
- Set the sampling bounds — how many projects and how many **months of history** to copy. Only the most recent are taken, so a large workspace still clones quickly. At most 200 projects and 60 months.
- Create it. The new workspace gets its own slug, of the form
sbx-followed by a short id, and appears in the list.
Manage a live one
- The list shows each sandbox's name, its address, and how long it has left. The days-remaining figure is the server's — nothing on the screen recomputes it against a browser clock that may be an hour out.
- Extend adds days to what is left, not to today.
- Destroy removes it and everything in it.
- Captured mail opens what that sandbox tried to send.
Read the clone history
The history lists every clone attempt in all three states — finished, still running, and failed — with how long it took and which tables carried the most rows. The row is written before the copy starts, so a request that died mid-flight leaves evidence. A history of successes would hide exactly the rows somebody came here to find.
Read the captured outbox
A sandbox never sends anything. Every email, push, webhook, chat message, outbound integration call and payment attempt it makes is captured instead, with its recipient and subject. This is the panel that removes the reason anybody would ever turn real sending on to find out whether their rule fired.
What it affects
- Nothing leaves a sandbox. The suppression lives inside the dispatch functions themselves — the last code that runs before the network — so a new feature inherits it by construction rather than by remembering.
- There are two layers of that guard. By workspace, for everything that knows which workspace it is acting for; and by recipient, for the send paths that do not, which catches the call site nobody remembered to update.
- An anonymised clone adds a third layer: its addresses are on a reserved domain that can never resolve.
- Ids are remapped by value, including ids buried inside JSON columns like an automation's conditions or a dashboard panel's filter. A rule copied into a sandbox points at the sandbox's own project, not the original.
- The owner is warned before it expires — seven days out, and one day out — and then it is deleted. A sandbox that vanished mid-test with no notice would teach people to distrust the feature.
- Expiry is the feature. A sandbox that lived forever would be a second production workspace nobody audits, holding a copy of a client list.
On mobile
Admin → Sandbox leads with what is about to expire, shows all three clone states, and puts the captured outbox one tap away. Creating one stays on a laptop — it is a form whose most important element is the sentence saying whether real client names are about to be copied, and that is not a thing to fill in one-handed on a train.
Limits and gotchas
- Five sandboxes at once. Destroy one to make another.
- A failed clone is torn down rather than rolled back — the sandbox workspace is created first and its rows deleted in reverse order on any failure, because a single transaction around a large clone would hold locks on tables production is writing to.
- Any one table is capped at 5,000 rows in a clone, after the sampling bounds are applied. That is what makes "the clone finishes" a property of the code rather than of the customer.
- Extending is bounded by the same 1-to-365 range. There is no "never expires".
- A running clone that never finishes leaves a row in the history saying so; it is not evidence of a sandbox you cannot see.
Related
- Settings — the configuration a sandbox copies.
- Workspaces — the workspaces inside a company.
- Automation — the commonest thing people rehearse in one.
- Data and privacy — where copies of customer data live.