We switched “Requires approval” on for a supplier entity, the way the settings screen and the help page both describe, and edits in the grid went to a queue exactly as promised. Then we sent the same write through the REST API. It went live in under a second. No queue, no approver, no record that anyone had bypassed anything. The setting was on. It was only ever on for one door.
This is what happens when a governance feature gets built against the interface someone is looking at, and never checked against every other way data can arrive: it works exactly where you tested it, and nowhere else. We fixed it in version 1.2026.8.23. Here is what we found checking each route, and the one route we decided, on purpose, to leave open.
Five ways data reaches an entity. Four respected the setting.
The grid checked the setting because the grid was where approval workflows were built and tested. The REST API, added later, wrote to the same tables through a different code path and simply never learned the rule existed. A file import worked the same way. Neither was a deliberate decision — both were the setting quietly applying to less than the name promised.
Grid — typing and saving
Queued
Always did. This is the door the demo shows.
Grid — pasting
Queued
Same check as typing, always did.
REST API — create, update, delete
Queued as of 1.2026.8.23
Used to write straight through. Now answers 202 with the request number instead of 200.
File import (Excel, CSV, JSON)
Refused as of 1.2026.8.23
Not queued — a 50,000-row file in a review queue is a wall, not a review. The importer has to switch approval off deliberately.
Staging
Publishes directly, on purpose
No user to notify, nobody to second-guess a scheduled feed at 3am. The one route where the exception is a decision, not a gap.
Two of the fixes were sharper than “now it queues.” A delete through the API used to apply immediately on an entity that requires approval — the grid had always turned Delete into Mark for deletion, a queued and reversible request, but the API had not, so the one write nobody can undo was guarded by the browser and nothing else. And business rules used to be checked only when an approver applied a change, not when it was first submitted, which meant a blocking rule failure landed on the approver, who had never typed the value and had no way to fix it. Both are checked at submission now, on every route.
Why staging is the one route left open
It would be tidy to say every route now respects approval, but that is not true and we are not going to write around it. A scheduled load into the stg schema still publishes straight to the database on an entity that requires approval, every time.
The reason is not that staging is automated. The REST API is automated too, and the API is now fully covered. The difference is that staging has no user. A feed running at three in the morning has nobody to email and nobody standing behind it who could meaningfully second-guess the system sending the data — putting that load in a queue does not add a review, it just adds a wait, and within a week somebody switches the setting off to make the wait go away. That leaves you with less governance than before, not more.
So the rule ended up as one line: every route with a user offers that person’s change to an approver first. Staging has no user, so it cannot. What it gets instead is a full record — every batch shows up in batch history and the audit log, so what a load changed is always traceable afterward, even without anyone having reviewed it first. Approval prevents. An audit trail records. Staging keeps the second and gives up the first, and that trade only makes sense if you know you made it. If an entity cannot tolerate that, the fix is to keep it out of staging, not to hope nobody notices.
The question worth asking any vendor, not just us
“Does it support approval workflows” is a checkbox question, and every MDM and PIM tool answers yes to it. The question that actually tells you something is narrower: does the setting apply to every way data gets in, or only to the screen the demo shows you? A tool built for one interface and bolted onto an API afterward tends to get this wrong in exactly the shape described above — the review queue is real, it is just optional for anyone who does not use the UI, which in practice means it is optional for the migration script, the nightly integration and the colleague who found the API docs.
Worth checking in your own stack, whatever you run: does a bulk import respect the same setting as manual entry, does an API write get queued or does it just succeed, and does a scheduled feed have an explicit, stated exception — or an unstated one nobody has gone looking for yet.
Common questions
Does a REST API write respect an approval workflow?
In Primentra, yes, as of version 1.2026.8.23. A create, update or delete through the API on an entity that requires approval is submitted to the queue instead of written, and the call answers 202 with the request number rather than 200. Before that release, the API wrote straight through regardless of the setting.
Do file imports bypass approval workflows?
They used to. Now a file import into an entity that requires approval is refused, naming the setting to turn off — not queued, because a fifty-thousand-row file in front of one approver is not a review. The person importing has to make a deliberate choice instead of an accidental one.
Why does staging still write directly?
Not because it is automated — the API is automated too, and the API is now covered. Staging has no user. Nobody is watching a nightly feed at 3am, and nobody could meaningfully second-guess the system sending it. Every route with a person behind it now offers that person's change to an approver. Staging has no person behind it.
What should I ask a vendor about their approval workflow?
Whether the setting applies everywhere data can get in, or only where the sales demo points the mouse. Ask specifically about the API, bulk import and paste. If the answer is "we check it in the grid," the feature is real for exactly one route, and it is not the one an integration or a migration script uses.
For the full mechanics of how a request moves from submission to a live record, see how Primentra’s approval workflow works. For what the REST API covers beyond this fix, see the REST API overview.
See what a queued change looks like from both sides
The 60-day trial is the full product — grid, API and all — so you can push a write through each route yourself and watch which ones queue.