Document Helper
The Document Helper turns a table into a drop zone for documents. Drag a PDF or image of an invoice (or any document) onto the grid, and Donotname will:
- Create a new record with the file attached,
- Read the document with AI and fill in the fields you chose (counterparty, invoice number, amounts, dates, and more), and
- Open the new record so you can review it.
It is perfect for bookkeeping (drop invoices as they arrive), contracts, receipts, and any "I have a file, make it a record" workflow.
The Document Helper is set up through a plugin, then works right on your grid. Nothing happens until you add the plugin to a table and enable it for a view — so it never gets in the way.
1. Add the plugin to your table
- Open the table you want to drop documents into.
- Open the plugin panel (the plugins/panel button on the table) and click Add plugin.
- Choose Document Helper from the list.
The Document Helper panel opens. This panel is where you configure everything — you do not need to touch any settings elsewhere.
2. Configure how it works
In the Document Helper panel:
- Applies to — choose a view, or Whole table. Configuring a specific view lets you use different rules per view (for example, a Sale Invoices view and a Purchase Invoices view can behave differently). The drop zone becomes active on the views you configure.
- Enabled — turn the drop zone on for this view.
- Attachment field — the field the dropped file is stored in. Must be an Attachment field on the table.
- Document type — choose the profile:
- Sale invoice — the record is named after the buyer (your customer).
- Purchase invoice — the record is named after the seller (the vendor).
- Generic document — best-guess counterparty.
- Ask on each drop (Sale / Purchase) — don't fix a type; instead, every time you drop a file Donotname pops up a quick Sale invoice / Purchase invoice choice and extracts using the one you pick. This lets a single table handle both sale and purchase invoices. Your last pick is remembered as the default for the session, and a "Always use this choice (don't ask again)" checkbox lets you stop the prompt for this table (clear it by picking the other type next time from a fresh session, or switch the profile back).
- Name field — the primary field. It's filled by the Name template or by carry-forward (see Naming & supplier memory below); if neither is set, the extracted counterparty lands here (the original behaviour).
- Status field (optional) — a field that shows the extraction status (Pending → Extracted, or Failed with a reason).
- Use view filter as defaults — when on, dropping a file in a filtered view pre-fills the record with that view's filter (e.g. dropping in a "Contracts" view sets Category = Contract automatically).
- Open the record after creating — opens the new record so you can review it immediately.
- Overwrite non-empty fields — off by default. When off, extraction only fills blank fields and never changes values you already have.
- Field mapping — map each thing the AI can extract (invoice number, total, VAT, IBAN, dates, counterparty, …) to one of your columns. Leave a row on Auto to let Donotname match it by name, or set it explicitly. Choose None to skip a field.
Click Save. Repeat for any other view you want to enable.
Naming & supplier memory
Some fields aren't on the document at all — they're the way you categorize records (a house label, a service category, who a purchase was for). The Naming & supplier memory section teaches the Document Helper to fill those the way you filled earlier records from the same supplier, and to name records your way. Everything here is optional — leave it empty and nothing changes.
- Counterparty field — the field the extracted counterparty is written to (for example Legally Known As). Leave it as None to keep putting the counterparty in the Name field.
- Name template — build the record's name from the invoice using placeholders:
{invoiceNumber},{counterparty},{amount},{currency},{date}- Example:
PVM SF#{invoiceNumber}producesPVM SF#779. Leave blank to fill the Name from prior records instead.
- Match field — the field used to recognise the supplier when looking up prior records (usually the same as the Counterparty field, e.g. Legally Known As). Matching ignores case and legal suffixes — so
Hetzner Online GmbHmatches an earlierHetzner. - Carry forward — pick the fields to copy from the most recent earlier record for the same supplier: for example Name, Service/Product, and Bought for Who?. The values are copied exactly (including multi-select choices like Our Company), only into blank cells — they never overwrite anything you already entered.
How it fits together (typical set-ups):
- Purchase invoices — Counterparty field = Legally Known As; no Name template; Match field = Legally Known As; Carry forward = Name, Service/Product, Bought for Who?. A new Hetzner Online GmbH invoice writes
Hetzner Online GmbHinto Legally Known As and inherits Name = "Private server Hetzner", Service/Product and Bought for Who? = ["Our Company"] from your earlier Hetzner records. - Sale invoices — Counterparty field = Legally Known As (the buyer); Name template =
PVM SF#{invoiceNumber}; Match field = Legally Known As; Carry forward = Service/Product, Bought for Who? (optional). The record is namedPVM SF#779, the buyer goes to Legally Known As, and categorization is inherited if configured.
The first invoice from a new supplier has nothing to inherit — you categorize it once by hand, and every later invoice from that supplier learns from it. In Invoice mode, carried-forward and generated values appear pre-filled (and flagged) in the review dialog, so you can edit them before anything is created.
3. Drop a document
On a configured, enabled view:
- Drag a PDF or image file from your computer onto the grid.
- A drop overlay appears — release the file.
- If the document type is Ask on each drop, a small Sale / Purchase prompt appears — pick one (one click). Otherwise this step is skipped.
- A new record is created with the file attached, and (if enabled) opens automatically.
- Extraction runs in the background. Within a few seconds the mapped fields fill in, and the status field (if set) shows Extracted.
You can drop several files at once — each becomes its own record. (With Ask on each drop, your one choice applies to the whole batch.)
Dropping onto an attachment cell still works. If you drop a file directly onto an attachment cell — or onto the attachment editor popup that opens when you click one — the file attaches there instead of creating a new record. The Document Helper overlay steps aside for attachment targets, so it never hijacks those drops.
What gets extracted
The AI reads the document and can produce, among others:
- Counterparty — buyer and/or seller name
- Invoice number
- Amounts — total, net, VAT
- IBAN / account
- Dates — invoice date, due date
- Currency
- Description — a short summary of what the payment/invoice is for (the service or goods). For Stripe invoices this comes straight from the invoice's own description (or, if empty, the statement descriptor or first line item).
Only the fields you mapped are written. Unmapped values are ignored. If a value can't be found, that field is simply left blank.
Tips & good to know
- It only fills blank fields unless you turn on Overwrite — so it is safe to run on records that already have data.
- Add the columns you want captured. If your table has no "Invoice number" or "Total" field, there is nowhere to put those values — add the fields first, then map them.
- Dates and timezones — set your date field's timezone to your local zone so extracted dates land on the right day.
- Automations that watch record creation fire before extraction fills the fields. If an automation needs the extracted values, trigger it on the status field changing instead of on record creation.
- Per view — the drop zone is armed only on the views you enabled. A "Whole table" configuration is a fallback default.
- Turn it off anytime — disable a view in the panel, or remove the plugin from the table.
Invoice mode — preview before creating, and fetch from Stripe
The Document Helper has two modes, chosen with the Mode dropdown in the panel:
- Document (default) — the original behavior: each dropped file immediately creates and fills one record.
- Invoice — a confirm-first flow built for bookkeeping in bulk. Nothing is written until you approve it.
Drop many invoices, review, then create
- Set Mode to Invoice and save.
- Drag one or many invoice files onto the grid. Instead of creating records straight away, the Document Helper does a dry run (it reads and maps every file but writes nothing) and opens a review panel with one row per invoice.
- In the panel you can:
- Edit any field inline before it is saved — what you see is exactly what gets written.
- See a status badge: New, Possible duplicate, or Duplicate of … when the invoice is already in the table (turn this off with Detect duplicates).
- Include or exclude each row with its checkbox. Duplicates and unreadable files start unchecked.
- Use Select all, Deselect all, or Deselect duplicates for quick bulk selection.
- Click Create N records. Only the checked, edited rows are created — each with its file attached. Large drops are sent in safe batches automatically.
Creating records runs your per-record automations once for each new record — so a bulk create of 30 invoices fires those automations 30 times.
Fetch invoices from Stripe by date
In Invoice mode the panel also has a Fetch from Stripe box:
- Paste your Stripe secret key into the Stripe field and save. It is stored encrypted and never shown again (a stored key shows as dots; leave it blank to keep it, or use Clear key to remove it).
- Pick a From / To date range and click Fetch.
- The matching invoices arrive in the same review panel. Stripe data is structured — no OCR needed, so fields are already clean. Review, edit, pick which to keep, and Create.
Fetch invoices from your email (email ingest)
If you have connected your own mailbox to Donotname, Invoice mode can pull invoice attachments straight from it. This is off by default and is always a manual action — there is no background polling, and nothing happens until you click Fetch.
The Email ingest box appears only when you have a connected mailbox. To use it:
- Turn on Enable email ingest, then pick your mailbox (only your own connected mailboxes are ever listed — the app can never read anyone else's).
- Optionally narrow the scan with a Folder / label, Sender contains, and Subject contains filter. Save the config.
- Choose a From / To date range and click Fetch.
Donotname reads your own mailbox for messages in that range, pulls the invoice-like attachments (PDFs and document images — inline signatures, logos, and tiny images are skipped), reads each with AI, and shows them in the same review panel as drops and Stripe. Duplicate attachments are flagged (by file fingerprint and message). Review, edit, pick which to keep, and Create — nothing is saved until you confirm.
Your mailbox identity is resolved on the server from your own login — the fetch can only ever touch a mailbox you connected, and the invoice text is treated as untrusted data (never run as formulas or automations). This is purely additive: your existing automation and notification emails are untouched.
Which views are set up
The panel shows a Configured views list — every view (and the whole-table default) that has a Document Helper, with its mode and whether it is enabled. Click a row to jump straight to that configuration. Each view can be its own mode, so one table can have a plain-document view and an invoice view side by side.
Create standard invoice columns (one click)
If your table doesn't yet have the columns invoices need, use Create standard invoice fields in the Invoice-mode panel. It adds any that are missing and maps them for you:
- Invoice number, Counterparty, Amount, VAT, Currency, Date, IBAN, Due date, Description (what the invoice is for) — plus a Status single-select (Pending / Extracted).
- Each is created with the right type (Amount/VAT are numbers, Date/Due date are dates, Status is a single-select) and auto-mapped into the field mapping.
It is safe to run more than once: columns that already exist (matched by name) are reused, never changed, and a mapping you set yourself is never overwritten. These are exactly the fields Luminor reconciliation matches on, so the two features compose.
Export the invoices
Invoice mode has an Export box:
- Export CSV — downloads the mapped invoice columns (invoice number, counterparty, amount, VAT, currency, date, IBAN, …) for the current view (or the whole table for a whole-table config). Opens cleanly in Excel/Sheets, including Lithuanian characters.
- Export files (ZIP) — downloads the source files attached to those records as a single ZIP (Stripe imports include their hosted PDF). Duplicate filenames are numbered so nothing is lost.
Both are read-only and stream straight to your browser.
Confidence flags and re-running failed reads
When files are read with AI (the drop / OCR path), the review panel helps you catch weak reads:
- Low-confidence cells are highlighted amber — for example a blank required field, a zero/negative amount, or a date that didn't parse. Review these before creating.
- A row with missing key fields shows a small "Missing: …" note under its filename.
- If some files couldn't be read, a summary appears — "3 of 20 could not be read — re-run or skip them."
- Re-run re-reads a single row, and Re-run failed (N) re-reads every flagged/errored row at once. Only those rows are re-read — your edits on the other rows are kept. (Stripe invoices are structured, so they never need re-running.)
Troubleshooting
- Nothing happens when I drop a file — the drop zone only works while the Document Helper plugin is installed on that table's panel. Check that the plugin is still added, the view is Enabled, and an Attachment field is selected. If you removed the plugin, the drop turns off everywhere on the table until you add it back. Try the exact view you configured.
- The record is created but fields are empty — check your field mapping, and make sure the document is a clear PDF/image. Handwritten or very low-quality scans extract poorly.
- Status shows "Failed" — the record and file are still saved; only extraction failed. The status text explains why (e.g. AI unavailable, unreadable file).
- I dropped on an attachment cell and it attached to that cell instead — dropping directly onto an existing attachment cell (or its editor popup) adds the file to that cell (normal behavior); the Document Helper overlay steps aside there. Drop onto empty grid space to create a new record instead.