In one sentence
When a standard is reissued — ISO 9001:2015 → 2025, AS9100 Rev D → Rev E, or any cross-standard move — the Migrate Standard tool walks you through mapping each old clause to its equivalent in the new standard and rewrites every reference in your controlled documents and audit questions in one pass.
- It's a clause remap, not a deactivation. Migration rewrites the references in place — documents continue to render correctly under the new standard, and old references stop showing the old standard's clause numbers. You don't need to deactivate the old standard separately.
- Affected documents are reset to Draft and require re-approval. Editing a controlled document — even a clause-ref swap — is a content change. Each affected doc lands in Draft and the standard approval chain re-runs. That's deliberate: the rewritten content must be re-signed by an approver.
- Audit questions update in place. Question text doesn't change, only the
audit_question_standardslink rows are remapped. No question is reset to a draft; the new clause reference shows immediately on the next audit run.
When to use it
Three common triggers:
- Standard reissued. ISO 9001:2025 supersedes ISO 9001:2015 and most clauses have shifted or been renumbered. Migration moves every reference in one motion.
- Switching certification scope. Your org adds AS9100 alongside ISO 9001 and wants existing ISO 9001 references on aerospace procedures rebadged to AS9100D.
- Cleaning up a mistake. Someone marked SOPs against IATF 16949 when they should have been API Q1. Migration is the safer fix than hand-editing every document.
If your migration is just a one-off label change on a handful of clauses, editing the documents directly is usually faster. The tool comes into its own once the changes span many clauses or many documents.
Where to find it
Admin → Regulatory Standards → Migrate Standard (or click the Migrate Standard button on the Regulatory Standards admin page).
Admin-only — gated on the Access audit admin permission.
The flow
The whole flow is reversible by running migration the other way — but unmapped clauses and skipped documents are simply left alone, so a partial run never paints you into a corner.
Clause mapping in detail
The clause-mapping table is the heart of the tool. Each row shows:
- The From clause with its code and title.
- A dropdown to map to the new standard's clauses, grouped by section so you can quickly find the equivalent.
- Docs and Questions counts — how many of each reference this clause.
A few patterns:
- Identical clause codes auto-match. When the same clause number exists in both standards (typical for minor revisions), the dropdown is pre-selected. Don't trust this blindly for major revisions — clauses get renumbered, scopes shift, and the title is the better signal.
- One-to-one only. You can't fan a single From clause out to multiple To clauses, or merge multiple From clauses into one. If a clause genuinely splits or merges, leave it unmapped, apply what you can, then hand-edit the affected documents.
- Unmapped clauses are untouched. Leaving a row on — Don't remap — means the old standard's references on that clause stay exactly where they were. Useful when you genuinely don't have an equivalent yet.
The per-document review step
Before the Apply migration button enables, you must walk every affected document through a confirm-or-skip decision in the review modal.
What the modal shows for each doc:
- Document number, title, and current status badge.
- The list of clause changes that will be applied to this document.
- An amber warning if the document is currently Approved — confirming will reset it to Draft and require re-approval.
Confirm update queues the doc for migration. Skip leaves it untouched (you can come back later via a fresh migration run).
Why the per-doc step exists: a clause-ref change is a content change. Surfacing each affected document up-front avoids the surprise of "I migrated a standard and now 47 SOPs are sitting in Draft." You see the blast radius and decide deliberately, document by document.
What gets changed when you apply
Documents you confirmed
- The clause-ref spans in the document's HTML body are rewritten — the old standard's clause numbers are swapped for the mapped new-standard ones.
- Status flips to Draft.
- The approval chain is reset (current step, submitter, prior approver signatures are cleared) so the document re-routes through your normal approval flow.
- The change is captured in the document's record history like any other edit — you can see exactly what changed in the History tab.
Audit questions referencing any mapped clause
- Each question's
audit_question_standardsrow pointing at the old (standard, clause) pair is removed and a new row pointing at (new_standard, mapped_clause) is inserted, carrying the new clause's title. - The question itself is not edited or deactivated. It immediately tags audits and gaps against the new standard.
- The remap is captured in the row-change feed (per-question history isn't surfaced yet, but the change is captured at the DB).
Things left alone
- Documents you skipped in the review modal.
- Documents that reference an unmapped clause (and have no other mapped clauses).
- Documents in Obsolete / Superseded status (they never enter the preview).
- Gap analyses — these carry a single
standard_idfield, not a list of clause refs, so they're not part of the migration. To move a gap analysis to a new standard, close the existing one and start a new gap analysis against the new standard. - The old standard itself in your Active Standards list — migration doesn't deactivate it. Deactivate separately at Admin → Regulatory Standards if you no longer want it appearing in pickers.
A document currently Under review is reset to Draft the same as an approved doc when you confirm it for migration. Approvers in the middle of a review will see the chain disappear and a fresh review start. If a doc is mid-approval and the migration isn't urgent, Skip it and run the migration again later.
What it doesn't do
- No undo button. The migration applies the changes immediately. There's no single-click rollback. You can run migration the other way (To → From) to reverse, but skipped docs and unmapped clauses won't be touched on the reverse pass — they were already correct. Re-approval of reset documents is also irreversible from this tool; the chain has to run again.
- No partial document remap. Confirming a document remaps every clause on that document that has a mapping. There's no "remap clause 7.1 but leave 8.3 alone within the same doc" — the dropdown's Don't remap is the per-clause off-switch, applied globally.
- No multi-org or cross-org migration. This is per-organization. If you run two QFormance orgs with shared content, you run the migration in each one.
- No effect on archived versions. Prior
document_versionsrows are snapshots — they keep the old clause references the document had when that version was approved. Only the live document content is rewritten. That's by design: a frozen version is frozen.
Permissions
Migration requires the Access audit admin permission. The default Admin role has it. The Standard User role does not. If you've built a custom role for regulatory review, grant Access audit admin on that role and the migration tool becomes available to that user.
Related
- Compliance mapping — pinning clauses to documents in the first place
- Document approvals & versions — the approval chain that reset documents run through after migration
- Record history — where the migration's changes appear in each document's history
- Audits — how the remapped audit questions feed into new audit runs
- Roles & permissions