[{"data":1,"prerenderedAt":400},["ShallowReactive",2],{"cms-page:documents":3,"icon:alert-triangle":214,"icon:arrows-exchange":225,"icon:chart-bar":232,"icon:clipboard-check":245,"icon:file-text":255,"icon:flag":271,"icon:forms":278,"icon:gauge":297,"icon:message-report":310,"icon:microscope":320,"icon:notebook":342,"icon:refresh":352,"icon:route":359,"icon:school":369,"icon:signature":376,"icon:truck":380,"icon:user-shield":390},{"slug":4,"seo":5,"sections":8},"\u002Fdocuments",{"title":6,"description":7},"Document Control Software — QAbility","Document control for SOPs and policies: a database-enforced version lifecycle, signed approvals, one effective version at a time and hash-verifiable PDFs.",[9,25,137,158,185,194,208],{"type":10,"id":11,"eyebrow":12,"title":13,"highlight":14,"blurb":15,"actions":16,"image":23},"hero","top","Documents","Every SOP,","controlled and current.","Manage SOPs, policies and quality records with version history, signed approvals and a hash-verifiable snapshot of every effective version — so the document your team uses is always the one in force.",[17,20],{"label":18,"href":19},"Book a demo","\u002Fcontact",{"label":21,"href":22},"See pricing","\u002Fpricing",{"src":24},"documents.hero",{"type":26,"id":27,"name":28,"eyebrow":29,"title":30,"blurb":31,"data":32},"signature","version-graph","versionGraph","The version lifecycle","A version can only move where the database lets it","Every controlled document version walks the same graph. The moves below are the database’s own list — not a convention the interface follows.",{"states":33,"edges":74,"refusal":101,"notOfferedNote":102,"timeline":103,"onEffective":125},[34,40,46,51,57,62,68],{"id":35,"label":36,"tone":37,"col":38,"row":38,"detail":39},"DRAFT","Draft","draft",0,"Authored and edited. The only state a version can be created in.",{"id":41,"label":42,"tone":43,"col":44,"row":38,"detail":45},"IN_REVIEW","In review","open",1,"Routed through its approval workflow, step by step.",{"id":47,"label":48,"tone":43,"col":49,"row":38,"detail":50},"APPROVED","Approved",2,"Signed off, waiting for its scheduled effective date.",{"id":52,"label":53,"tone":54,"col":55,"row":38,"detail":56},"EFFECTIVE","Effective","closed",3,"In force. At most one per document.",{"id":58,"label":59,"tone":37,"col":60,"row":38,"detail":61},"SUPERSEDED","Superseded",4,"A newer version took effect. Kept on record, never deleted.",{"id":63,"label":64,"tone":65,"col":66,"row":44,"detail":67},"CHANGES_REQUESTED","Changes requested","warn",0.45,"Sent back for edits. In the graph, not offered in the app today.",{"id":69,"label":70,"tone":71,"col":72,"row":44,"detail":73},"REJECTED","Rejected","cancelled",1.6,"Turned down. The author fixes it in place and resubmits.",[75,79,81,83,85,88,90,92,94,97,99],{"from":35,"to":41,"offered":76,"bend":77,"trigger":78},true,-14,"The author submits it for review.",{"from":41,"to":35,"offered":76,"bend":77,"trigger":80},"The author cancels the review and takes it back.",{"from":41,"to":47,"offered":76,"trigger":82},"The last approval step completes; the version waits for its effective date.",{"from":47,"to":52,"offered":76,"trigger":84},"Its effective date arrives and a scheduled job re-checks and releases it — or an approver sets it effective.",{"from":41,"to":52,"offered":76,"bend":86,"trigger":87},-62,"Auto-effective: the last approval releases it at once. Refused unless its approval workflow has completed.",{"from":52,"to":58,"offered":76,"trigger":89},"A newer version takes effect; the database demotes this one in the same write.",{"from":41,"to":69,"offered":76,"bend":77,"trigger":91},"A reviewer rejects it, with a comment.",{"from":69,"to":41,"offered":76,"bend":77,"trigger":93},"The author fixes it and resubmits.",{"from":41,"to":63,"offered":95,"bend":77,"trigger":96},false,"A reviewer requests changes.",{"from":63,"to":41,"offered":95,"bend":77,"trigger":98},"The author resubmits.",{"from":63,"to":35,"offered":95,"trigger":100},"The author pulls it back to editing.","Eleven moves are legal, and the database refuses every other one. It also refuses any status change that doesn’t come from the server: a version is created as a draft and moves only through review, approval and its effective date.","Moves 9 to 11 are in the database’s graph, but the approval screen doesn’t offer “request changes” today. A reviewer who wants edits rejects the version, and the author fixes and resubmits it (moves 7 and 8).",{"title":104,"blurb":105,"versions":106,"caption":124},"In force on any date, one version at a time","Each version holds the slot until the next one takes effect. Ask which SOP was in force on a given day and there is exactly one answer — with the PDF that was filed the day it took effect.",[107,112,115,120],{"label":108,"state":109,"inForce":110,"record":111},"1.0","superseded","In force until 2.0 took effect","Its PDF snapshot and hash stay on record.",{"label":113,"state":109,"inForce":114,"record":111},"2.0","In force until 3.0 took effect",{"label":116,"state":117,"inForce":118,"record":119},"3.0","effective","In force since 27 Apr 2026","PDF snapshot filed and hashed when it took effect.",{"label":121,"state":37,"inForce":122,"record":123},"4.0","Not in force — being written","No snapshot until it takes effect.","Demo data: SOP-QA-014 Deviation Management in the Nordvale Biotech Labs demo company, whose printed 3.0 is shown further down. Earlier effective dates are left out.",{"title":126,"steps":127},"The moment a version takes effect",[128,131,134],{"label":129,"detail":130},"The previous version is superseded","In the same database write. A unique index backs it up, so two versions of one document can never both be effective.",{"label":132,"detail":133},"A PDF snapshot is filed and hashed","The cover and sections are rendered to PDF with attachments merged in, and its SHA-256 hash is recorded on the version. The hash can be re-checked against the stored file on demand.",{"label":135,"detail":136},"Training goes out on that version","Where training is set up for the version, the roles and people it names are assigned it, pinned to the version that just took effect.",{"type":138,"id":138,"items":139},"showcase",[140,149],{"eyebrow":141,"title":142,"body":143,"points":144,"image":148},"Electronic approvals","Every approval, signed by the person who gave it.","Route a version through your review workflow: steps in order, reviewers chosen by role or by name, and an all-or-any rule on each step. On steps that require a signature, the approver re-enters a dedicated signature PIN at the moment of signing, and the signature records who signed, what it means and when.",[145,146,147],"Sequential steps with all-or-any approval","Re-authentication at signing","An approval already in flight keeps the rules it started under","documents.approvals",{"eyebrow":150,"title":151,"body":152,"points":153,"image":157},"Controlled copies","Every printed copy says which version it is.","The controlled print view puts the document number, version, status and effective date at the top of the copy. Behind it, the hashed PDF filed on the effective date is the record of exactly what was in force.",[154,155,156],"Schedule a future effective date, or release on approval","Every revision records its reason, type and impact","Periodic review as a signed decision: no change, revise or retire","documents.snapshots",{"type":159,"id":159,"eyebrow":160,"title":161,"blurb":162,"rules":163},"ledger","What the system enforces","The rules behind a controlled document","Each rule says where it lives — so you know which ones a misconfiguration can’t switch off.",[164,168,171,174,177,181],{"rule":165,"detail":166,"enforcedBy":167},"Created as a draft, moved only by the server","A version can only be created as a draft, and its status can’t be changed by a direct data edit — only by submit, the approval workflow or its effective date.","db",{"rule":169,"detail":170,"enforcedBy":167},"One effective version per document","The outgoing version is superseded in the same write, and a unique index refuses a second effective version even if two releases race.",{"rule":172,"detail":173,"enforcedBy":167},"Auto-effective needs a completed approval","A version can’t jump from In review to Effective unless its approval workflow has actually completed.",{"rule":175,"detail":176,"enforcedBy":167},"Approved and effective versions can’t be deleted","Only a draft or a rejected version can be deleted. A version that was approved or in force is part of the record; the document is made obsolete instead.",{"rule":178,"detail":179,"enforcedBy":180},"A snapshot’s hash can be re-checked","On request, the stored PDF is read back, hashed again and compared with the hash recorded when it was filed.","server",{"rule":182,"detail":183,"enforcedBy":184},"Signatures where your workflow asks for them","You decide which approval steps require an electronic signature, and whether all or any of the reviewers must approve.","configure",{"type":186,"id":187,"focus":188,"eyebrow":189,"title":190,"blurb":191,"emptyFrom":192,"relatedNote":193},"lineageRail","lineage-rail","document","Connected records","Where a document sits in your quality system","The links QAbility keeps, visible from both records.","A new version starts from the document itself. A change request or CAPA that prompted it can be linked to it as related.","Any NC, CAPA, change request, internal complaint, quality event, inspection lot, document or custom-module record can also be linked by hand as related.",{"type":195,"id":195,"eyebrow":196,"title":197,"items":198},"faq","Document control questions","Straight answers",[199,202,205],{"q":200,"a":201},"Can a document be approved without an electronic signature?","Yes, if you allow it. Signatures are set per workflow step: steps marked as requiring one ask the approver to re-authenticate, and other steps record the approval as a completed task.",{"q":203,"a":204},"What happens to the old version when a new one takes effect?","It becomes Superseded. It stays on record with its approvals and snapshot, so you can show exactly which version was in force on any date. Only one version of a document can be effective at a time.",{"q":206,"a":207},"Does QAbility escalate a review that runs late?","Not automatically. Each review and approval step gets a due date from the workflow, and overdue tasks show in the assignee’s queue, but nothing escalates or reassigns them on its own today.",{"type":209,"id":210,"eyebrow":211,"title":212,"action":213},"ctaPanel","cta","Document control, done right","See a controlled document go from draft to effective.",{"label":18,"href":19},[215,219,222],[216,217],"path",{"d":218},"M12 9v4",[216,220],{"d":221},"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0",[216,223],{"d":224},"M12 16h.01",[226,229],[216,227],{"d":228},"M7 10h14l-4 -4",[216,230],{"d":231},"M17 14h-14l4 4",[233,236,239,242],[216,234],{"d":235},"M3 13a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -6",[216,237],{"d":238},"M15 9a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -10",[216,240],{"d":241},"M9 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -14",[216,243],{"d":244},"M4 20h14",[246,249,252],[216,247],{"d":248},"M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2",[216,250],{"d":251},"M9 5a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2",[216,253],{"d":254},"M9 14l2 2l4 -4",[256,259,262,265,268],[216,257],{"d":258},"M14 3v4a1 1 0 0 0 1 1h4",[216,260],{"d":261},"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2",[216,263],{"d":264},"M9 9l1 0",[216,266],{"d":267},"M9 13l6 0",[216,269],{"d":270},"M9 17l6 0",[272,275],[216,273],{"d":274},"M5 5a5 5 0 0 1 7 0a5 5 0 0 0 7 0v9a5 5 0 0 1 -7 0a5 5 0 0 0 -7 0v-9",[216,276],{"d":277},"M5 21v-7",[279,282,285,288,291,294],[216,280],{"d":281},"M12 3a3 3 0 0 0 -3 3v12a3 3 0 0 0 3 3",[216,283],{"d":284},"M6 3a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3",[216,286],{"d":287},"M13 7h7a1 1 0 0 1 1 1v8a1 1 0 0 1 -1 1h-7",[216,289],{"d":290},"M5 7h-1a1 1 0 0 0 -1 1v8a1 1 0 0 0 1 1h1",[216,292],{"d":293},"M17 12h.01",[216,295],{"d":296},"M13 12h.01",[298,301,304,307],[216,299],{"d":300},"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",[216,302],{"d":303},"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",[216,305],{"d":306},"M13.41 10.59l2.59 -2.59",[216,308],{"d":309},"M7 12a5 5 0 0 1 5 -5",[311,314,317],[216,312],{"d":313},"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12",[216,315],{"d":316},"M12 8v3",[216,318],{"d":319},"M12 14v.01",[321,324,327,330,333,336,339],[216,322],{"d":323},"M5 21h14",[216,325],{"d":326},"M6 18h2",[216,328],{"d":329},"M7 18v3",[216,331],{"d":332},"M9 11l3 3l6 -6l-3 -3l-6 6",[216,334],{"d":335},"M10.5 12.5l-1.5 1.5",[216,337],{"d":338},"M17 3l3 3",[216,340],{"d":341},"M12 21a6 6 0 0 0 3.715 -10.712",[343,346,349],[216,344],{"d":345},"M6 4h11a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-11a1 1 0 0 1 -1 -1v-14a1 1 0 0 1 1 -1m3 0v18",[216,347],{"d":348},"M13 8l2 0",[216,350],{"d":351},"M13 12l2 0",[353,356],[216,354],{"d":355},"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",[216,357],{"d":358},"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",[360,363,366],[216,361],{"d":362},"M3 19a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",[216,364],{"d":365},"M19 7a2 2 0 1 0 0 -4a2 2 0 0 0 0 4",[216,367],{"d":368},"M11 19h5.5a3.5 3.5 0 0 0 0 -7h-8a3.5 3.5 0 0 1 0 -7h4.5",[370,373],[216,371],{"d":372},"M22 9l-10 -4l-10 4l10 4l10 -4v6",[216,374],{"d":375},"M6 10.6v5.4a6 3 0 0 0 12 0v-5.4",[377],[216,378],{"d":379},"M3 17c3.333 -3.333 5 -6 5 -8c0 -3 -1 -3 -2 -3s-2.032 1.085 -2 3c.034 2.048 1.658 4.877 2.5 6c1.5 2 2.5 2.5 3.5 1l2 -3c.333 2.667 1.333 4 3 4c.53 0 2.639 -2 3 -2c.517 0 1.517 .667 3 2",[381,384,387],[216,382],{"d":383},"M5 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[216,385],{"d":386},"M15 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[216,388],{"d":389},"M5 17h-2v-11a1 1 0 0 1 1 -1h9v12m-4 0h6m4 0h2v-6h-8m0 -5h5l3 5",[391,394,397],[216,392],{"d":393},"M6 21v-2a4 4 0 0 1 4 -4h2",[216,395],{"d":396},"M22 16c0 4 -2.5 6 -3.5 6s-3.5 -2 -3.5 -6c1 0 2.5 -.5 3.5 -1.5c1 1 2.5 1.5 3.5 1.5",[216,398],{"d":399},"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",241564436]