Skip to main content
Skip to content

Batch Upload Guide

Upload up to 20 lab reports at once. BioPortal's AI extracts results from PDFs, images, and spreadsheets in seconds. This guide covers the full batch upload workflow, supported formats, and how to review AI-extracted results.

5 min readUpdated 15 Apr 2026

Overview

Batch upload lets you queue up to 20 lab reports at once. BioPortal's AI extracts the lab number, site, vessel, dates, test values, and category grade from each document, then decides whether the result is safe to auto-approve or should be sent to the review queue.

Each file goes through two AI passes: extraction (reading the document) and verification (visually confirming the extracted fields match the source). The whole pipeline typically completes in 10–30 seconds per file.

Before you start

  • Required
    You must be signed in as a Technician, Manager, or Admin in the target company.
  • Recommended
    Make sure your sites, vessels, and test types are set up — the AI uses these to match extracted data. Unknown sites or vessels will flag the result for review.
  • Tip
    If your lab emails reports directly, skip upload entirely — see Email ingestion below.

Supported formats & limits

File formats

  • PDF
  • Images: JPEG, PNG, WebP
  • Spreadsheets: XLS, XLSX
  • Documents: DOC, DOCX
  • Plain text: CSV, TXT

Limits per upload

  • 10 MB maximum per file
  • 20 files per batch
  • Duplicate lab numbers are blocked automatically

Uploading files

Navigate to the upload page

From any dashboard page, go to /results/upload or click Upload Results in the main navigation. For the batch queue view, click View batch queue on that page to open /results/upload/batch.

Drag and drop, or browse for files

Drag files onto the drop zone, or click Browse Files to open a file picker. Unsupported formats are rejected immediately with a toast notification.

Files move from Queued → Extracting → Verifying → Ready (or Pending Review / Failed)

Wait for AI processing

Each file goes through two AI phases automatically. You can leave the page — processing continues server-side. Come back anytime to review the queue.

What happens next

Each queue item progresses through these statuses:

  1. 1Received — file uploaded to secure storage, queue item created.
  2. 2Extracting (Phase 1) — AI reads the document and pulls out structured fields.
  3. 3Verifying (Phase 2) — vision AI double-checks the extracted values against the source.
  4. 4Final status — depending on your approval mode: Auto-approved, Pending review, or Failed.

Approval modes

Your company's approval mode controls what happens after AI processing finishes. Admins can change this at /settings/ai-import.

The default is Conditional — review triggered only when confidence is low or warnings are flagged
Which mode should we use?
Most companies run on Conditional. It auto-approves high-confidence results with no flags (typically 80-90% of uploads) while still catching anything suspicious. Switch to Always require review during onboarding or audits for extra safety.

Reviewing results

When a result lands in Pending Review, click it to open the review interface at /results/upload/[uploadId]/review. You'll see the extracted fields side-by-side with the original document — edit anything that's wrong, then approve or reject.

Confidence dots signal field-level certainty. Warning icons mark fields the AI flagged.
What gets saved
Approving creates a TestResult in your results collection with status approved. Rejecting marks the queue item as rejected (with an optional reason) and no result is created.

Email ingestion alternative

If your lab already emails reports, you can skip the manual upload. Each company gets a dedicated inbound address — results-{company-slug}@submit.bioportal.io. Forward emails (or ask your lab to send direct) and attachments are processed exactly the same way as manual uploads.

Find your inbound address and manage the allowed-senders whitelist at /settings/email-ingestion. See the Advanced Settings guide for the full config.

Troubleshooting

File shows as "Failed"
Common causes: the document is password-protected, corrupted, or exceeds 10 MB. Check the error code — FILE_UNREADABLE, UNSUPPORTED_FORMAT, FILE_TOO_LARGE, or EXTRACTION_FAILED. Fix the source file and re-upload.
Result sent for review with "Site not found"
The AI couldn't match the site name on the report to any site in your company. Either add the site to BioPortal first, or edit the site field manually in the review screen.
Duplicate lab number
BioPortal blocks duplicate lab numbers within the same company to prevent double-ingestion. If the earlier result was wrong, delete it first; otherwise reject the new one.
Still stuck?
Contact support with the upload ID (shown in the queue) and we'll investigate the pipeline logs.

Still need help?

Can't find what you're looking for? Our support team is ready to assist.

Last updated 15 Apr 2026 · Have feedback on this guide? Let us know