Feature Reference

A screen-by-screen reference to Veil, using the exact labels you will see in the product. Wherever the two regimes differ, both wordings are shown in a callout — everything else is identical in LGOIMA and OIA mode.

Dashboard & navigation

The left navigation rail carries the whole product. Depending on your role you may see: “Home”, “Cases”, “My Queue”, “New Case”, “Custom Rules”, “Governance”, “Reports”, and “Settings”. A Final Approver sees “Approvals” in place of “My Queue”.

The dashboard (“Home”) shows a “Statutory deadline health” panel that classifies your cases as “On track”, “Urgent”, or “Overdue”, alongside your personal queue. “My Queue” lists every document awaiting review across all the cases you can see — which cases those are is set by your visibility scope (department or organisation-wide), separately from your role.

The Veil dashboard (Home) with the Statutory deadline health panel and the personal queue
The dashboard — deadline health and the personal queue (shown on a council-branded demo instance)

Creating a request

On “New Case” (“Log a new request”), the Lead enters the request and Veil does the rest. Fill in “Request summary”, “Requester name”, “Requester type”, “Date received”, “Priority”, and “Department(s)”, then press “Create Case”.

Veil assigns the “Reference” and the “Statutory deadline” automatically — neither can be edited on this form. The Lead can later formally extend the deadline with “Extend deadline” on the case’s Details page: alongside the read-only “Current deadline:”, enter a “New deadline” and a mandatory “Reason for extension”, which is written to the audit trail. Help text shows the ceiling as “Max extension: {N} working days”.

Under LGOIMA the deadline is calculated per s 12 (20 working days). Under OIA the deadline is calculated per s 15 (20 working days).
The Log a new request form with the read-only Assigned on creation panel showing the reference and statutory deadline
“Log a new request” — the reference and statutory deadline are assigned on creation (shown on a council-branded demo instance)

Document ingestion & supported formats

On “Document Ingestion”, use “Drag and drop files or folders here” or click to browse. Watch the “Processing Progress” and “Processing Queue” cards as each file runs the automated pipeline; when processing finishes, press “Continue to Review”. Re-uploading the same file shows a non-blocking amber “Duplicate” warning — the file is still added, so remove it yourself if it really is a duplicate.

Veil accepts PDF, DOCX, XLSX, PPTX, email as EML / MSG (each email’s attachments become their own child documents), and TXT. .PST email archives and .ZIP folders are rejected — Veil does not expand them; export emails as EML or MSG, or unzip first, and upload the files individually. Standalone image files (PNG, JPG and similar) are also rejected at upload — scanned material must arrive as a PDF, which is read through OCR as normal.

⚠ Warning: Audio and video files are not screened. They may upload via drag-and-drop, but in a standard deployment Veil does not transcribe, detect, or redact them — never treat a media file as reviewed or safe to release.
Note: An archive attached to an email (.zip and similar) is never processed silently — it becomes its own child document marked “Error”, so you can see it needs manual handling. Extract the archive and upload its files individually.
Tip: OCR is a cloud feature your administrator configures. Every upload relies on it: Veil converts each document (including DOCX, XLSX, TXT, EML, and MSG) to a canonical PDF and reads it through the OCR service, so if OCR is unavailable, uploads show “Error” until the service recovers.
The Document Ingestion dropzone with format badges and the Processing Queue list
“Document Ingestion” — the dropzone, format badges, and the Processing Queue (shown on a council-branded demo instance)

Document review

The Document Review screen is a split view: the document on the left, the “Detections” panel on the right, with filters “All Detections”, “Personal”, “Commercial”, and “Other”. For each detection you choose “Redact” (withhold) or “Don’t redact — keep visible”; the card shows its state as “to decide”, “redacted”, or “kept visible”. Card details include “Reasoning”, “AI Explanation”, “Public Interest Consideration”, “Suggested ground”, and “Change History”. Nothing is ever pre-redacted — every detection starts pending and a person decides each one.

Toggle the preview between “Original” and “Redacted” to see the effect of your decisions. You can add a manual detection by selecting text in the document, and use “Change type” or “Edit grounds” on any card. Every redacted detection needs a withholding ground before the case can be exported: use “Edit grounds”“Select Withholding Ground” — grounds are grouped by section of the Act, and an optional reviewer note appears in the withholding schedule.

Under LGOIMA the middle grounds group is “Section 7 — Public interest test required”; privacy of a natural person is s 7(2)(a). Under OIA the middle grounds group is “Section 9 — Public interest test required”; privacy of a natural person is s 9(2)(a).
⚠ Warning: The “Original” / “Redacted” preview is visual only — the underlying text is still present in the app. Permanent redaction happens at export, when redactions are burned in and the withheld text is destroyed, not hidden. There is no undo after that point.

“Accept all ≥ 90%” clears high-confidence detections in bulk; lower-confidence ones stay for hand review, and anything it accepts can still be reverted individually.

Note: “Accept all ≥ 90%” never sweeps detections flagged [REVIEW REQUIRED] (legal privilege, safety, law enforcement…). They are skipped and stay pending — an amber notice reports how many require manual review. Decide those cards individually, as always.
The full Document Review screen — original and redacted panels, the Detections list, and the sign-off action group
Document Review — the split view with the Detections panel and sign-off actions (shown on a council-branded demo instance)
The Detections panel with a detection card expanded, showing the Redact and Don’t redact buttons and the grounds editor
A detection card with the decision buttons and the grounds editor open (shown on a council-branded demo instance)

Bulk review

For large requests, the “Bulk review” page applies one redaction decision across many documents at once — highest-reach detections first. Open it with “Bulk Review” from the case’s Documents tab. A scope chip shows what you are reviewing, and a case-wide meter tracks how many detections are cleared and how many are left. The page works in three numbered steps:

  1. “Auto-accept high-confidence detections” (Lead / Senior Reviewer) — set the “Confidence threshold” slider and watch three tiles preview the effect live: “auto-accept above {X}%”, “held for manual review”, and “documents affected”. Press “Show the {N} detections this will redact” to inspect the literal result before committing with “Auto-accept {N} above {X}%”. Each accepted detection keeps its own suggested ground.
  2. “Auto-clear structured PII (emails, phone numbers, IDs)” (Senior Reviewer and above) — one chip per structured identifier type with a live count, such as “Redact all phone numbers”, “Redact all email addresses”, and “Redact all IRD numbers”. One press decides every pending detection of that type case-wide. The sweep is deliberately fenced to structured PII — as the page puts it, “Names, commercial information and legal grounds aren’t offered here” — and the fence is enforced server-side.
  3. “Review by reach” (open to every case participant to work through; “Hide everywhere” is a disclosure decision and needs Senior Reviewer or above) — Veil groups repeated values into entity groups, most-repeated first, each showing how many times it appears and across how many documents. Three moves per card: “Hide everywhere” (accept the group case-wide under its ground), “Look first” (open the first affected document), or “Not sensitive” (reject the group). After any batch action a banner offers “Review these {N}” and “Undo this batch”; when nothing is left to decide, “Continue to sign-off” unlocks.
⚠ Warning: Detection types that need extra scrutiny (legal privilege, safety, law enforcement…) are excluded from every sweep on this page — Step 1 holds them back (“Legal advice and safety grounds are never swept.”), Step 2 never offers them, and in Step 3 their card shows “This needs a closer look.” and routes you to per-document review. Decide those individually, always.
Tip: Bulk operations are still human-controlled and fully audited — use “Undo this batch” immediately after a sweep, and anything accepted here can also be reverted individually back in the normal review screen.

Review workflow setup & assignment

The Lead configures who works each stage on “Review Workflow Setup”. Drag people from the “Reviewers” and “Approvers” palettes — and from the regime-aware Leads palette — onto the stages “Collect”, “First-Pass Review”, “Second-Pass Review”, and “Final Sign-off”, then press “Save Workflow”. The “Currently with:” / “Awaiting sign-off:” strip shows live progress.

Under LGOIMA the Leads palette is labelled “LGOIMA Leads”. Under OIA the Leads palette is labelled “OIA Leads”.
Tip: This screen configures the workflow stages, not who works each document. To assign a document to a person, use “Assign Reviewer” on the case’s Documents tab (Lead only). The Documents tab also offers bulk actions — “Sign Off Selected”, “Mark Excluded”, “Bulk Review”, and “Delete” — each authorised per document by the server.

Sign-off, senior review & final approval

When every detection on a document is decided, the assigned reviewer presses “Sign Off” and confirms with “Submit” — the document becomes “Reviewed (Initial)”. A senior reviewer or approver can press “Request Changes”“Send Back” to return it to “In Review” with an optional reason. A Senior Reviewer cannot give final sign-off — that separation of duties is deliberate.

A Final Approver (or the Lead) presses “Final Approval”“Confirm Approval”: the document becomes “Signed Off” and is frozen — its detections are locked and can no longer be changed. At the case level, on “Finalise & Close”, the assigned approver completes the “Final sign-off” panel: choose the “Disclosure outcome” (“Granted in full”, “Granted in part”, or “Refused”) and press “Attest case complete”.

Document status badge progression — Ready for Review, In Review, Reviewed (Initial), Signed Off
The document status progression — “Ready for Review” → “In Review” → “Reviewed (Initial)” → “Signed Off” (shown on a council-branded demo instance)

Version comparison

Veil snapshots a document’s redaction decisions at each milestone, so you can see exactly what changed — ideal for checking a document that has come back after a send-back. Open “Compare” (the “Compare version snapshots” button) from the review toolbar and choose a “Left Version” and “Right Version” — any snapshot or “Current State”. Snapshots are labelled “Draft (Submitted for Review)” and “Final (Signed Off)”.

Each detection is marked “Added”, “Removed”, “Modified”, or “Unchanged”, with “Left Ground” / “Right Ground” columns so a changed statutory ground stands out. The “Summary:” pills filter the table.

Tip: Snapshots are created automatically on draft sign-off and final approval. Before then you’ll see “No Snapshots Available” — there is simply no earlier version to compare yet.
The Version Comparison screen — Left and Right version selectors and the detection diff table with change badges and ground columns
Version comparison — the diff table with change badges and the Left/Right ground columns (shown on a council-branded demo instance)

Export packages & release

Export lives on “Finalise & Close”. Check “Document Readiness” — only “Signed off — ready to export” documents export cleanly — then choose the documents and one of three packages: “Requester Package” (the only package screened for external release: it omits withheld text and reviewer reasoning and anonymises filenames), “Internal Package” (marked “Recommended”, for your own records — adds the audit trail and verification report), or “Ombudsman Package” (the full disclosure file, including the unredacted originals — never send it to a requester).

Press “Generate Export Package”. Veil burns in the redactions and verifies they are permanent — you’ll see “Verifying redactions are permanent...” — then offers “Download Package” with a SHA-256 integrity hash. Generating an external package requires the case to be fully attested and your agency name to be set.

⚠ Warning: Veil fails closed. An external release (Requester or Ombudsman package) is blocked if the automated check finds a leak or cannot run — a blocked export shows “Export Failed” and nothing is assembled. “Couldn’t verify” is not “clean”; never override or work around a block. If you hit this, see FAQ: an export is blocked.

Once attested, the Lead presses “Mark as released” under “Release for disclosure”. This freezes the case and all its documents and stamps the disclosure date — release is terminal and irreversible. The case then reads “Released for disclosure”; finally, “Close & archive” the case (the Lead can “Reopen case” later if needed).

The Select Export Package cards with the per-package Includes lists
The three package cards with their “Includes” lists (shown on a council-branded demo instance)
An export with the redaction-permanence verification passed
A generated package with the redaction verification passed (shown on a council-branded demo instance)
The Finalise & Close screen with the three package cards and the Generate Export Package button
“Finalise & Close” — export, attestation, release, and close on one screen (shown on a council-branded demo instance)

Custom detection rules

“Custom Rules” teaches Veil agency-specific things to look for — “Agency-specific detection rules that run alongside the AI — keywords, patterns and entities mapped to withholding grounds.” The screen is shared between the Lead and the Senior Reviewer. “New rule” opens the editor: “Rule name”, “Type” (Keyword / Pattern / Entity / Combination), “Match mode” (Exact / Fuzzy / Regex), “Keywords / pattern”, “Withholding ground”, “Priority”, and “Description”.

Save with “Save as Draft” or “Save & Activate”; the per-row switch flips a rule between Active and Draft, and only Active rules run (“Drafts are saved but never match documents”). “Import” / “Export” move whole rule sets as JSON, and the stat strip tracks “active rules”, “drafts — not yet running”, “matches”, and “grounds covered”.

Tip: These are detection rules, not redaction rules — “Rules supplement the AI — they never override a reviewer.” A match becomes an ordinary detection for a person to accept or reject.
The Custom Rules screen — rule list with Type, Withholding ground and Active/Draft toggles, and the stat strip
“Custom Rules” — the rule list, stat strip, and Active/Draft toggles (shown on a council-branded demo instance)

Schedule & audit trail tabs; Reports; AI Governance

Two case tabs show the live disclosure record without generating a PDF. “Withholding Schedule” (the Schedule tab) lists every withheld item grouped by ground, with an editable “Covering Statement”, the “Right of Review (Standard Text)”, and a “Preview as PDF” button. “Audit Trail” (the Audit tab) is the “Immutable audit log”“entries cannot be modified or deleted” — recording every action with its user, role, target, and timestamp, searchable and filterable, with “Export CSV” and “Export PDF”.

The “Reports” screen produces statutory reports and disclosure analytics (case roles only — not available to the Administrator): the regime’s Compliance Summary, “Withholding Schedule”, “Chain of Custody”, and “Cost Recovery”, with a “Reporting period” selector for the analytics.

Under LGOIMA the compliance report is “LGOIMA Compliance Summary”. Under OIA the compliance report is “OIA Compliance Summary”.
The Reports screen — the Generate a report cards and the reporting-period selector
“Reports” — compliance, schedule, chain-of-custody, and cost-recovery reports (shown on a council-branded demo instance)

“AI Governance” is the single source for accuracy metrics (any case role; not the Administrator): “Detection accuracy · Rolling 30 days” with “Precision”, “False Positive Rate”, and “Reviewed” counts; “Human overrides”; “AI Miss Analysis (False Negatives)”; and “Processing performance” with “Model Information”. Until 10 AI detections have been reviewed the page shows “Insufficient Review Data” with a progress counter.

The AI Governance dashboard — rolling-30-day accuracy tiles and accuracy by category and entity type
“AI Governance” — the rolling-30-day accuracy tiles (shown on a council-branded demo instance)

Pre-release QA

Between final approval and export, a case can pass through a “QA” status — a pre-release quality-assurance check that the case is genuinely ready to go out. The readiness badges on “Finalise & Close” show exactly what still blocks a clean export: “Signed Off”, “Not Signed Off”, “Missing Grounds”, or “Review Incomplete”. The export itself then runs the redaction-permanence verification described above — the final, authoritative check before anything leaves the building.

The pre-release quality-assurance view for a case
The pre-release QA view (shown on a council-branded demo instance)

Microsoft 365 / SharePoint

SharePoint integration is a conditional feature — it appears only when your instance is connected to Microsoft 365. If you don’t see it, your organisation hasn’t enabled it; use direct upload instead.

The “Import from SharePoint” tab appears on “Document Ingestion” and is enabled when your instance is connected. On the current release the connected tab shows “SharePoint import — coming soon”: in-app library browsing and selection is on the roadmap, so for now download the files from SharePoint and upload them directly — they join the same “Processing Queue” and run the same pipeline.

Sending an export package back to SharePoint is coming soon — it is not yet available on the current release; download the package instead. One rule is permanent by design: the Ombudsman package can never go to SharePoint, because it contains the unredacted originals.