Skip to main content

DAN AI — Dashboard Upload

The fastest way to start an extraction. From the sidebar, open Documents (or the Dashboard) and click New Extraction to open the upload modal.

1. Drop the file

The upload modal accepts a single file at a time. Supported formats:

  • PDF (single or multi-page)
  • PNG
  • JPG / JPEG

Drag the file into the drop zone or click Browse. The file uploads and the document is created in the draft state.

2. Choose a document type

Pick the type that best describes the file. The type drives which prompt DAN AI sends to the AI provider, so a good match significantly improves accuracy. DAN AI ships 21 tuned types — anything unspecified falls back to general.

The types are grouped by category in the dropdown:

CategoryTypes
Financeinvoice, receipt, purchase_order, expense, bank_statement, payslip, tax_form, quote
Legalcontract, nda, insurance_policy, certificate
Logisticsdelivery_note, shipping_label
People & IDresume, id_card
Healthmedical_report, prescription
Generalgeneral, letter, memo

See the full reference at Supported Document Types.

tip

Pick the most specific type you can. invoice will outperform general on the same file because the invoice prompt teaches the AI about line items, tax columns and totals.

3. Configure fields (optional)

After upload, an optional Configure Fields step lets you tick the specific fields you want extracted from this document. If you skip it, DAN AI returns every field in the prompt's default schema.

  • Field selection is saved per-document on the custom_fields column.
  • It only affects this extraction — it does not change the account-wide prompt.
  • Use it when you only need a subset (e.g. just the total and vendor from a long invoice).

To make a field selection the default for every extraction of this type, save it as an account-wide default under Settings → Default Fields.

4. Run the extraction

Click Extract. DAN AI transitions the document from draft to processing and dispatches it to the AI provider chain (Ollama → OpenRouter → Groq).

Processing time depends on the file's complexity:

File typeTypical time
Single-page invoice / receipt2–6 seconds
Multi-page bank statement8–25 seconds
Long contract (10+ pages)15–60 seconds
Failed / retried via fallback providerup to 90 seconds

5. Review the result

When the extraction finishes, the document detail page opens with a two-column layout: the original file preview on one side, the extracted fields on the other.

What you'll see in the header:

  • State badgedraft, processing, done, or error.
  • Document type with the classifier confidence (e.g. invoice · 95%).
  • Verified pill — appears once a human marks the document verified.

Every field is editable. Save changes inline; the original AI response stays preserved in document_extractions.raw_response so you can always diff against what the model returned.

State machine

StateWhat it meansTriggered by
draftFile uploaded, nothing extracted yetUpload completes
processingExtraction job is runningExtract action or a background job picks it up
doneExtraction finished successfullyAI provider returns valid JSON
errorExtraction failedProvider error, malformed response, retry budget exhausted

A document stuck in processing for more than ~5 minutes usually means the AI provider chain couldn't recover — see FAQ and Troubleshooting.

Mark as verified

Once you've reviewed and (optionally) corrected the fields, click Mark Verified. The verified values are what flow into exports and webhook payloads. Verification is per-document; you can always un-verify and re-edit.

Next steps