Founding offer — 25% off applied automatically at checkout. Ends 1 November 2026 or after our first 30 orders. See pricing →
Skip to document content
Guide

Bulk Document Import & Branded PDFs (Pro)

16 min read 8 views
Version
1.0
Last Version Update
October 4, 2026
Effective From
October 4, 2026
Review Cycle
Annual
Next Review Due
October 2027

Bulk Document Import & Branded PDFs (Pro)

These features require the Dantian Policy Management Pro add-on.


Bulk Document Import

There are two ways to bring an existing document library into the plugin:

  • File Import (included in the Free plugin) — upload a ZIP of Word, PDF, text or Markdown files and each file becomes a draft document.
  • Bulk Import (Pro) — upload a CSV spreadsheet to create many documents, or update existing ones, with their governance metadata filled in.

The Pro add-on also adds the Imported Drafts batch editor for applying metadata to File Import drafts in one place, optional AI metadata suggestions, and AI Vision Extract for scanned PDFs. All of these live under Policy Management → Tools and need the Manage settings capability and an active Pro licence (File Import itself works without Pro).

Supported file formats

File Import (ZIP):

  • Word documents (.docx)
  • PDF files (.pdf)
  • Plain text files (.txt)
  • Markdown files (.md)

A ZIP can contain up to 500 files of up to 10 MB each. Text is extracted on your own server — no external service is used.

Bulk Import (CSV): a CSV file using the plugin’s template columns (see the column reference below). The document body goes in the content column and can be Markdown, HTML or a mix.

The import process

Option A — File Import (ZIP of files)

  1. Put your existing policies in a folder and zip it.
  2. Go to Policy Management → Tools → File Import.
  3. Select your ZIP archive and click Analyse ZIP. Nothing is created at this step.
  4. Review the Preview — each file is listed with its detected type, word count and an extraction confidence rating (Good, OK, Low or No text).
  5. Click Import as Drafts. Each file becomes a draft document at your configured default confidentiality level. Tick Skip AI analysis for this import batch first if you don’t want any of these documents sent for AI suggestions later (relevant only when Pro AI features are enabled).
  6. When the import finishes, click Open batch editor for this import (Pro) to go straight to the Imported Drafts editor, or Open drafts list to review them one by one.

Every imported draft needs human review before publication — check headings, lists, body text and governance metadata (owner, audience, framework, effective date).

Option B — Bulk Import (CSV, Pro)

  1. Go to Policy Management → Tools → Bulk Import.
  2. Under Step 1: Download Templates, download what you need:
    • Download Import Template — a CSV with every column header and one example row.
    • Download Existing Documents CSV — your current documents with their post_id and metadata, for safe round-trip updates. You can filter by document type first.
    • Download Reference CSV — the slugs for your document types, categories, tags, user roles, document owners and confidentiality levels, to use in the template.
  3. Fill in the CSV. Leave post_id blank to create a new document, or enter an existing post_id to update that document.
  4. Under Step 2: Upload Completed CSV, select your file and choose the Editor format:
    • Gutenberg blocks (recommended) — content edits cleanly in the block editor.
    • Classic HTML — use only if you run the Classic Editor plugin.
  5. Optionally tick Create missing taxonomy terms during import. It is off by default so that typos in type, category or tag slugs are reported rather than silently creating new terms.
  6. Click Import Documents and confirm.

Imports run in the background in 50-row chunks, so there is no row limit and you can close the tab while the job continues. WordPress’s built-in scheduler processes each chunk and queues the next until the file is done. While the tab is open, a progress bar shows Importing: 150 of 400 (37%). When the import finishes, you see “Import complete: X created, Y updated, Z errors.” and a list of up to 50 row errors. If you close the tab, the import still finishes, but you won’t see that summary — check the documents list instead.

Limits and rules for the CSV

  • The file must be a CSV of 5 MB or less.
  • It must have a title column header, even if every row is an update.
  • Rows default to draft unless post_status says otherwise.
  • Download Existing Documents CSV includes at most 500 documents (the oldest first). On a larger library, filter by document type and export each type separately.
  • When updating by post_id, you can only change documents you’re allowed to edit; other rows are reported as errors.
  • Bulk Import needs the Manage settings capability.

CSV column reference

Column Required Description
post_id No Existing document ID. If provided and valid, that document is updated. Leave blank to create a new document.
title Yes (for new documents) Document title. Optional when updating by post_id.
content No Document body — Markdown, HTML or both. Leave blank in an update row to keep the existing content.
post_status No draft, publish or pending. Defaults to draft.
document_type No Slug of an existing document type (e.g. policy, procedure, guide).
document_category No Slug of an existing document category.
document_tags No Comma-separated tag slugs (e.g. “safety, compliance, hr”).
document_status No active, superseded or archived — the document lifecycle status.
audience No Comma-separated WordPress role slugs (e.g. “administrator, editor”). Limits who can view the document.
dpma_confidentiality No unclassified, public, internal, confidential or restricted. Public documents are visible to logged-out users.
dpma_document_owner No Name of the document owner (e.g. “Jane Smith”).
dpma_review_cycle No Days between reviews (e.g. 365). Also calculates the next review date.
effective_from No Effective date in YYYY-MM-DD format.
supersedes No Post ID, exact title or slug of the document this one replaces.

The same column reference is shown at the bottom of the Bulk Import tab.

Reviewing imported drafts (Pro)

Go to Policy Management → Tools → Imported Drafts to see every document created by File Import in one editable table. Filter by Import session, Status (Draft + Pending, Draft only, Pending only, Published only) and Missing field (owner, audience, framework or effective-from), then click Apply filters.

Edit any cell inline — Confidentiality, Type, Category, Tags, Owner, Audience (roles), Framework tags, Effective from, Review (days), Lifecycle, Supersedes and Status — and click Save changes. Each row reports its own success or error.

AI suggestions for imported drafts

The AI suggestions (optional) bar above the table offers Run AI metadata suggestions. It needs a saved OpenAI or Anthropic API key; without one, the pre-flight window shows No AI key configured. It does not depend on the Enable AI features master switch. Set Confidentiality on every row first (the column is highlighted for this reason), because it is the privacy gate for AI.

  1. Filter the table to the drafts you want to process. A run handles the drafts in the current filter, up to 25 documents per run. If there are more, you’ll be told “Only the first 25 documents will be processed in this run” — filter to a smaller batch and run again for the rest.

  2. Click Run AI metadata suggestions. The Pre-flight: confidentiality review window opens. Nothing has been sent yet.

  3. Choose the AI aspects to run:

    • Metadata — suggests type, audience, framework tags, owner, effective date, review cycle and a summary.
    • Structure — finds section labels in the body that should be H2/H3 headings.
    • Body cleanup — finds repeated headers and footers, stamp lines and paragraphs that were split mid-sentence.
  4. Check the tiles and lists. Fresh — to send shows drafts that will go to the AI. Already processed shows drafts the AI has already handled for these aspects; they’re skipped unless you click Re-run all. Blocked — will not be sent to AI lists drafts whose confidentiality level is blocked: Confidential always, Restricted by default, and any draft with no level set. An Estimated cost for the run is shown, along with the model it will use.

  5. Click Run AI suggestions. Documents are processed one by one in the background, with progress shown as Running AI suggestions… (3 of 12). Click Stop to end the run early.

  6. Review the AI metadata suggestions panel for each row. Every suggestion carries a high, medium or low confidence label.

    • Metadata: click Accept on individual suggestions, or Accept all High-confidence. Accepted values are filled into the row’s cells, marked AI applied. Nothing is saved until you click Save changes.
    • Structure: high-confidence heading promotions are pre-ticked. Adjust the ticks and click Apply heading promotions.
    • Body cleanup: review Paragraphs to remove and Paragraph runs to merge, adjust the ticks and click Apply body cleanup.

    Structure and body cleanup changes are written to the document body straight away (“Applied to document.”). They don’t wait for Save changes.

Keeping a batch away from AI. Tick Skip AI analysis for this batch (or tick Skip AI analysis for this import batch during File Import). This disables Run AI metadata suggestions for that batch. It does not stop someone running Vision Extract, FAQ generation or other AI tools on those documents later. To keep a document away from every AI feature, mark it Confidential (or Restricted, at the default privacy settings).

Drafts created by File Import take your Default Confidentiality Level (Settings → Document Settings). That setting defaults to Restricted, so at default settings every imported draft is blocked from AI until you change its level. If you plan to use AI, either set the default to Internal Use before importing, or change the Confidentiality cells afterwards. Public and Internal Use drafts are eligible for AI as soon as they’re imported, so mark anything sensitive before you run AI.

Once you’re happy with the metadata, publish each document when ready. The standard version-approval workflow applies if you have it enabled.

Tips for a successful import

  • Use consistent filenames — the filename becomes the draft title in File Import, so clear names save time later.
  • Use the reference CSV — Bulk Import expects slugs, not display names, for types, categories, tags, roles and confidentiality.
  • Update by round-trip — to bulk-edit existing documents, download the Existing Documents CSV, change it, and re-upload it so every row keeps its post_id.
  • PDF import quality — Word and Markdown files produce cleaner results than PDFs. If possible, export PDFs back to Word before importing. AI Vision Extract (below) can help with scanned PDFs.
  • Test with a small batch first — try 5–10 documents before importing your entire library to confirm the output meets your expectations.

AI Vision Extract (scanned PDFs)

If a scanned PDF (images of pages rather than text) yields no extractable text, File Import still creates the draft and attaches the original PDF to it. Open that draft in the editor and use the AI Text Extraction (Vision) panel, which appears only on drafts like this. Like the Imported Drafts suggestions, it needs a saved API key and does not depend on the Enable AI features master switch.

  1. Click Extract text via AI. You’ll see the Pages, Chunks, Model and Estimated cost first. Vision extraction costs considerably more than standard AI calls, because each page is billed as an image.
  2. Click Confirm and start extraction. Pages are turned into images on your server and sent to your AI provider 10 pages at a time, with a progress bar (Extracting pages… chunk 2 of 4).
  3. Review and correct the extracted text — it is the AI’s best attempt, not a perfect copy.
  4. Click Save to post content (or Discard and start over). You can then click Run AI cleanup now to promote headings, remove repeated headers and footers, and merge broken paragraphs in one step. The result reads, for example, “Done — 4 headings promoted, 6 paragraphs removed.” Or you can open the document in the block editor.

Several scanned PDFs at once: on the Imported Drafts tab, choose the Import session filter first, then click Vision extract (no-text docs). The plugin finds every draft in that session whose PDF text couldn’t be extracted and shows a Vision extraction — cost confirmation. Click Confirm and extract. For each document, a Vision extract — review before applying window lets you edit the text, then Accept — write to document or Discard. You can Stop the batch at any time.

The model is set by Vision Extraction Model on the AI & Automation tab (default Claude Sonnet 4.6). Vision Extract and AI cleanup need the Manage settings capability and permission to edit the document.

Vision Extract needs your host to provide ImageMagick with PDF (Ghostscript) support; if it’s missing, the panel tells you so.

Note: Vision Extract sends page images to your configured AI provider. Documents whose confidentiality level is blocked from AI (Confidential and documents with no level set, always; Restricted, by default) cannot be processed. Make sure this complies with your data policies.

What you see without Pro

Free users have File Import (ZIP of Word, PDF, text or Markdown files) under Policy Management → Tools, including the Skip AI analysis for this import batch checkbox, which has no effect without Pro. Without Pro there is no Bulk Import (CSV) tab, no Imported Drafts batch editor and no AI or Vision tools. After a File Import, review the drafts from the documents list instead.

Troubleshooting imports

“File upload failed. Please select a valid CSV file and try again.” The file isn’t a CSV or is larger than 5 MB. Save it as CSV (UTF-8) from your spreadsheet app, or split a large file into several smaller ones.

“The CSV is missing the required “title” column.” The header row doesn’t include title. Start from Download Import Template or Download Existing Documents CSV so the headers match exactly.

Rows report “post_id does not match an existing document.” or “Title is required.” An update row points at a document ID that doesn’t exist (often because the CSV came from another site), or a new row has no title. Fix those rows and re-upload just them.

The progress bar says “Import failed or timed out. Please try again.” The background chunks depend on WordPress’s built-in scheduler. If your host has switched it off without a server-side replacement, chunks don’t run. Check the documents list to see how far the import got, ask your host to make sure WordPress scheduled tasks run, then re-upload only the rows that are missing.

AI suggestions or Vision Extract say a document is blocked The draft is Confidential, Restricted (at default settings) or has no confidentiality level. Set the level in the Confidentiality column, click Save changes, and run AI again.

“Vision extraction requires ImageMagick with Ghostscript PDF support.” Your server can’t turn PDF pages into images. Ask your host to enable the PHP ImageMagick extension with Ghostscript, or convert the scanned PDF to Word with OCR software before importing.

Worked example

Harbourside Early Learning is moving 180 policies from a shared drive into the plugin. About 20 of them are scanned PDFs.

  1. Under Settings → Document Settings, the administrator changes Default Confidentiality Level from Restricted to Internal Use so imported drafts can use AI. She leaves the four HR investigation procedures out of the ZIP and imports them separately as Confidential.
  2. She zips the policies folder and runs Tools → File Import. The preview shows 160 files rated Good or OK and 20 rated No text. She clicks Import as Drafts, then Open batch editor for this import.
  3. In Imported Drafts, she filters by the new Import session and Missing field: owner. She runs Run AI metadata suggestions with Metadata and Structure ticked in batches of 25, clicks Accept all High-confidence on each row, checks the medium ones, and clicks Save changes.
  4. She clicks Vision extract (no-text docs), reviews the estimated cost, confirms, and accepts each transcription after a quick read.
  5. A year later, she needs to change the review cycle on all 40 procedures. She chooses Procedure under Download Existing Documents CSV, changes dpma_review_cycle to 730 in a spreadsheet, and uploads the file under Bulk Import. The summary reports 40 updated, 0 errors.

Branded PDF Exports

When a staff member or administrator downloads a document as PDF, the plugin produces a branded PDF with your organisation’s visual identity. Your logo, cover page, boilerplate statement, header and footer, organisation details and brand colours are available in the Free plugin. The Pro add-on adds five extra PDF layouts, a footer for acknowledgement certificates, and bulk PDF export.

What branded PDFs include

Cover page (optional):

  • Your organisation logo
  • Document type
  • Document title
  • Document metadata
  • Your boilerplate statement (for example, a controlled-copy notice)

Body pages:

  • Your header logo and header text
  • Your brand colours applied to headings and accents
  • A footer you design, using placeholders for the title, version, date, site name and page numbers
  • Your organisation’s legal name and regulatory identifier, if set
  • Version history, to the level you choose

Layouts (Pro): In addition to the default layout, Pro adds Warm Professional, Minimal Modern, Corporate Classic, Bold Sidebar and Clean Government.

Acknowledgement certificate PDFs (Pro): use their own footer, set in PDF Footer Content (Acknowledgement Certificates).

Configuring branded PDFs

  1. Go to Policy Management → Settings → PDF Export.
  2. Choose a PDF Template (layout).
  3. Upload your PDF Header Image / Logo (recommended: PNG or JPG, up to 300 px wide). If you leave it empty, the site logo from your theme is used.
  4. Optionally enter PDF Header Text.
  5. Tick Add a cover page to exported documents under PDF Cover Page if you want a cover page.
  6. Enter an optional Cover Page Boilerplate Statement (for example “This is a controlled document. Do not distribute without authorisation.”). Use {org_name} to insert your organisation’s legal name.
  7. Set PDF Footer Content (Documents) — placeholders: {title}, {version}, {date}, {site}, {page}, {pages}.
  8. With Pro, set PDF Footer Content (Acknowledgement Certificates) — placeholders: {title}, {site}, {date}, {user}.
  9. Choose how much Version History in PDF to include.
  10. In the Organisation section, enter your Organisation Legal Name, and optionally a Regulatory Identifier Label (e.g. “RTO Code”, “ABN”) and Regulatory Identifier Value.
  11. Save your changes.

Brand colours are set under Settings → Appearance (Primary Brand Colour and Secondary Brand Colour).

All PDFs generated after you save use the new branding. PDFs that were already downloaded are not affected.

Bulk PDF export

The Pro add-on also lets you download a ZIP containing a PDF of every published document of a given type in a single operation:

  1. Go to Policy Management → Tools → PDF Export.
  2. Choose a Document Type (required), and optionally a Category and Tag.
  3. Click Download ZIP.

Each PDF uses the same layout as individual document downloads. Large document sets may take a moment to generate. This is useful for producing a printed policy manual or archiving a complete document library at a point in time. Bulk PDF export requires administrator access.

Version History

Version 1.0.0 Major October 4, 2026
Author: DHDW