[{"data":1,"prerenderedAt":361},["ShallowReactive",2],{"cms-page:suppliers":3,"icon:alert-triangle":175,"icon:arrows-exchange":186,"icon:chart-bar":193,"icon:clipboard-check":206,"icon:file-text":216,"icon:flag":232,"icon:forms":239,"icon:gauge":258,"icon:message-report":271,"icon:microscope":281,"icon:notebook":303,"icon:refresh":313,"icon:route":320,"icon:school":330,"icon:signature":337,"icon:truck":341,"icon:user-shield":351},{"slug":4,"seo":5,"sections":8},"\u002Fsuppliers",{"title":6,"description":7},"Supplier Management — QAbility Quality Management","A supplier record with risk, evaluations and quality history, document requests answered line by line, and a portal where each supplier sees only its own.",[9,25,102,114,123,148,168],{"type":10,"id":11,"eyebrow":12,"title":13,"highlight":14,"blurb":15,"actions":16,"image":23},"hero","top","Suppliers","Your suppliers,","inside the quality system.","Keep the supplier’s risk, facilities, evaluations and quality history on one record. Ask for documents one line at a time. Their own staff answer in a portal that shows them only what you have shared or asked of them.",[17,20],{"label":18,"href":19},"Book a demo","\u002Fcontact",{"label":21,"href":22},"See pricing","\u002Fpricing",{"src":24},"suppliers.documentRequests",{"type":26,"name":27,"id":28,"eyebrow":29,"title":30,"blurb":31,"data":32},"signature","membrane","boundary","The boundary","What crosses the line, and what doesn’t","A supplier’s staff sign in to their own portal inside your system. Nothing reaches them unless a row names them, and what they send back lands on the supplier’s record.",{"ours":33,"theirs":36,"crossings":39,"neverCrosses":73,"request":82},{"label":34,"caption":35},"Your QMS","The supplier record: risk, facilities, contacts, portal users, evaluations, certificates, and the NCs, CAPAs and audits raised against them.",{"label":37,"caption":38},"The supplier’s portal","The supplier’s own staff, invited by you, on logins that carry no roles and so no permissions of their own.",[40,47,51,58,64,69],{"what":41,"direction":42,"ours":43,"theirs":44,"rule":45,"enforcedBy":46},"Shared documents","out","Share a controlled document with named portal users. A document it cites is shared with it, one level deep, as a separate grant you can see.","They read the version in effect. Drafts and superseded versions stay hidden, and the next revision reaches them when it takes effect.","The version filter is a row policy in the database.","db",{"what":48,"direction":42,"ours":49,"theirs":50},"Document requests","Ask for a bundle: one line per document, from the catalog or typed ad hoc, addressed to named portal users. Types already on file are grayed out before it goes.","They get a queue of what is pending, and the lines they have already answered, each with a Replace action.",{"what":52,"direction":53,"ours":54,"theirs":55,"rule":56,"enforcedBy":57},"Uploaded files","in","The line turns Received, the file is filed on the supplier’s Documents tab, and whoever raised the request is notified. With no line left pending, the whole request is Received.","They upload one file against each line, and can replace a file they already sent.","An upload is refused unless the caller is a portal user of that request’s supplier.","server",{"what":59,"direction":60,"ours":61,"theirs":62,"rule":63,"enforcedBy":57},"Supplier NCs","both","An NC that names the supplier and is marked supplier-facing sends its action steps to that supplier’s portal users. Its approval steps stay with your people.","They work the steps assigned to them on that NC, from their own task list.","An approval step assigned to a supplier user is refused.",{"what":65,"direction":60,"ours":66,"theirs":67,"rule":68,"enforcedBy":46},"Quality events","Share an event with the supplier. A comment they leave comes back as a task for your reviewer.","They read the event and acknowledge it. Notes you marked internal are not in what they read.","Internal notes are filtered out of a supplier account’s reads by the database.",{"what":70,"direction":42,"ours":71,"theirs":72},"Supplier audits","Send the agenda for a supplier audit, and release the audit when you are ready.","The agenda gives them read-only access to the audit. Release opens the requirements and findings to them, and emails them the report.",{"title":74,"items":75},"What stays on your side",[76,77,78,79,80,81],"Another supplier’s document requests and files. Those rows are filtered by supplier in the database.","Drafts and superseded versions of the documents you share.","Notes marked internal on a quality event you share.","Approval steps on a supplier-facing NC.","Your registers and admin screens. The app turns supplier accounts away from them.","Anything you revoke. Revoking a share stops it working at once, and the revocation is in the audit trail.",{"title":83,"blurb":84,"name":85,"lines":86,"caption":100,"rule":101,"enforcedBy":46},"Ask for a list. Get a file per line.","A request is a bundle of lines, and each line has its own status, its own file, and its own record of who sent it and when. A half-answered request is visible at a glance, not buried in an email thread.","Annual document refresh",[87,92,94,96],{"title":88,"kind":89,"status":90,"file":91},"Insurance","Catalog type","received","uploaded by the supplier, replaceable",{"title":93,"kind":89,"status":90,"file":91},"ISO Certificate",{"title":95,"kind":89,"status":90,"file":91},"Quality Certificate",{"title":97,"kind":98,"status":99},"Cleaning validation summary","Ad-hoc line","pending","Modeled on the Nordic demo tenant’s “Annual document refresh” request to Hjortvig Biologics. The fourth, ad-hoc line is added here to show a pending state.","Pending, Received and Skipped are the only values a line’s status can hold, and a line is a catalog type or an ad-hoc title, never both. Both are database constraints.",{"type":103,"id":103,"items":104},"showcase",[105],{"eyebrow":106,"title":107,"body":108,"points":109,"image":113},"The portal","An account that holds no permissions at all.","A supplier’s staff are invited from the supplier record and sign in as external users of your company. The app invites them with no roles, so the permission check answers no to everything they ask. What they can read reaches them one of a few ways: a record shared with them by name, a request raised for their supplier, a step assigned to them, or an audit they were sent. Their navigation is replaced with the portal’s own, and your registers and admin screens turn them away.",[110,111,112],"No roles, so no permissions of their own","Access from share rows, requests and assigned steps","A shared document shows its version in effect, never a draft","suppliers.portal",{"type":115,"id":116,"focus":117,"eyebrow":118,"title":119,"blurb":120,"emptyFrom":121,"relatedNote":122},"lineageRail","lineage-rail","supplier","Where it leads","A supplier problem becomes a nonconformance","The supplier record doesn’t carry the investigation. The NC does. The supplier’s Quality Records tab shows the open NCs, CAPAs and audits against them, with links to the full lists filtered to that supplier.","A supplier starts here: onboarded with a code, a category, a risk level, its facilities and contacts.","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":124,"id":124,"eyebrow":125,"title":126,"blurb":127,"rules":128},"ledger","The rules","What holds the boundary","A supplier portal is the one place a regulated system lets an outsider in. These are the controls on that seam.",[129,132,135,138,141,144],{"rule":130,"detail":131,"enforcedBy":46},"Approve a supplier without the right","Setting a supplier to Approved needs the supplier approve permission. Rejected or Blocked needs reject. A database trigger refuses the change otherwise. Company owners are the one exception.",{"rule":133,"detail":134,"enforcedBy":57},"Upload for someone else’s supplier","The upload path compares the caller’s login to the request’s supplier. A portal user of a different supplier is refused, and so is an internal user: your team files documents from the supplier record instead.",{"rule":136,"detail":137,"enforcedBy":57},"Send a file type that isn’t on the list","A file whose type is not on the allowlist is refused before anything is stored.",{"rule":139,"detail":140,"enforcedBy":46},"Re-point a supplier NC after the fact","Once an NC is submitted, a database trigger refuses any change to its supplier-facing flag or, on a supplier-facing NC, to the supplier it names. The only way to open a submitted NC to a supplier is the convert action, which reassigns its open steps.",{"rule":142,"detail":143,"enforcedBy":46},"Keep reading after a share is revoked","Revoking a share marks the grant row, and the row policies on shared documents, CAPAs, NCs, quality events and audits skip marked rows. The next read no longer returns it.",{"rule":145,"detail":146,"enforcedBy":147},"Choose what they are asked for","Build each request from the document-type catalog plus any ad-hoc lines, and name the portal users it goes to.","configure",{"type":149,"id":149,"eyebrow":150,"title":151,"items":152},"faq","Before you ask","The questions a quality manager asks first",[153,156,159,162,165],{"q":154,"a":155},"Does a supplier need an account, or can we just send a link?","They need an account. Documents and document requests reach a supplier through a portal user, a login tied to that supplier, so each upload carries a name. There is no anonymous link: the unauthenticated share pages were removed in favor of this. Inviting the supplier’s staff is part of onboarding. A request raised for a supplier with nobody invited has no one to reach.",{"q":157,"a":158},"Can a supplier see anything else in our quality system?","Their login carries no roles, so the permission check refuses everything by default, and the portal replaces your navigation with its own. What they can read comes from rows that name them: a share, a request for their supplier, a step assigned to them, an audit you sent them. A document request, and the files filed against a supplier, are readable by that supplier’s portal users and not by another supplier’s.",{"q":160,"a":161},"Do we get warned before a supplier certificate expires?","Yes, when your team files it with an expiry date. Upload a document on the supplier’s Documents tab with a certificate type and an expiry date, and a daily job reminds the person who uploaded it and the company owner 90 days before, 30 days before, and on the day it expires. Files a supplier uploads through the portal don’t carry an expiry date.",{"q":163,"a":164},"Do you score or rank suppliers?","No. There is no supplier scorecard. Qualification is an evaluation: a record against a form template you design, with the rating and next review date your template asks for, linked to the supplier. The supplier’s status (Pending, Approved, Rejected or Blocked) is set by someone holding the permission for it.",{"q":166,"a":167},"Can we show an auditor what a supplier was given?","Every share is a row that names who granted it, to whom, and against which record, and whether it was a deliberate share or came along with a document that cites it. Grants and revocations are both in the audit trail. What the system does not record today is a supplier opening something, so it shows what was granted rather than what was read.",{"type":169,"id":170,"eyebrow":171,"title":172,"body":173,"action":174},"ctaPanel","cta","Supplier quality","Stop chasing supplier documents by email.","See the supplier record, a request going out, and the supplier’s side of the portal in one walkthrough.",{"label":18,"href":19},[176,180,183],[177,178],"path",{"d":179},"M12 9v4",[177,181],{"d":182},"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",[177,184],{"d":185},"M12 16h.01",[187,190],[177,188],{"d":189},"M7 10h14l-4 -4",[177,191],{"d":192},"M17 14h-14l4 4",[194,197,200,203],[177,195],{"d":196},"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",[177,198],{"d":199},"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",[177,201],{"d":202},"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",[177,204],{"d":205},"M4 20h14",[207,210,213],[177,208],{"d":209},"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",[177,211],{"d":212},"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",[177,214],{"d":215},"M9 14l2 2l4 -4",[217,220,223,226,229],[177,218],{"d":219},"M14 3v4a1 1 0 0 0 1 1h4",[177,221],{"d":222},"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2",[177,224],{"d":225},"M9 9l1 0",[177,227],{"d":228},"M9 13l6 0",[177,230],{"d":231},"M9 17l6 0",[233,236],[177,234],{"d":235},"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",[177,237],{"d":238},"M5 21v-7",[240,243,246,249,252,255],[177,241],{"d":242},"M12 3a3 3 0 0 0 -3 3v12a3 3 0 0 0 3 3",[177,244],{"d":245},"M6 3a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3",[177,247],{"d":248},"M13 7h7a1 1 0 0 1 1 1v8a1 1 0 0 1 -1 1h-7",[177,250],{"d":251},"M5 7h-1a1 1 0 0 0 -1 1v8a1 1 0 0 0 1 1h1",[177,253],{"d":254},"M17 12h.01",[177,256],{"d":257},"M13 12h.01",[259,262,265,268],[177,260],{"d":261},"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",[177,263],{"d":264},"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",[177,266],{"d":267},"M13.41 10.59l2.59 -2.59",[177,269],{"d":270},"M7 12a5 5 0 0 1 5 -5",[272,275,278],[177,273],{"d":274},"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",[177,276],{"d":277},"M12 8v3",[177,279],{"d":280},"M12 14v.01",[282,285,288,291,294,297,300],[177,283],{"d":284},"M5 21h14",[177,286],{"d":287},"M6 18h2",[177,289],{"d":290},"M7 18v3",[177,292],{"d":293},"M9 11l3 3l6 -6l-3 -3l-6 6",[177,295],{"d":296},"M10.5 12.5l-1.5 1.5",[177,298],{"d":299},"M17 3l3 3",[177,301],{"d":302},"M12 21a6 6 0 0 0 3.715 -10.712",[304,307,310],[177,305],{"d":306},"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",[177,308],{"d":309},"M13 8l2 0",[177,311],{"d":312},"M13 12l2 0",[314,317],[177,315],{"d":316},"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",[177,318],{"d":319},"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",[321,324,327],[177,322],{"d":323},"M3 19a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",[177,325],{"d":326},"M19 7a2 2 0 1 0 0 -4a2 2 0 0 0 0 4",[177,328],{"d":329},"M11 19h5.5a3.5 3.5 0 0 0 0 -7h-8a3.5 3.5 0 0 1 0 -7h4.5",[331,334],[177,332],{"d":333},"M22 9l-10 -4l-10 4l10 4l10 -4v6",[177,335],{"d":336},"M6 10.6v5.4a6 3 0 0 0 12 0v-5.4",[338],[177,339],{"d":340},"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",[342,345,348],[177,343],{"d":344},"M5 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[177,346],{"d":347},"M15 17a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[177,349],{"d":350},"M5 17h-2v-11a1 1 0 0 1 1 -1h9v12m-4 0h6m4 0h2v-6h-8m0 -5h5l3 5",[352,355,358],[177,353],{"d":354},"M6 21v-2a4 4 0 0 1 4 -4h2",[177,356],{"d":357},"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",[177,359],{"d":360},"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",241564436]