Embedded data import for SaaS products

Add file import to your SaaS without manual data processing.

Mildport turns CSV, Excel, PDF, and other customer files into ready-to-use data inside your product.

Deploy it self-hosted so your data stays within your infrastructure — pilots are running now — or start in the managed EU cloud when commercial access opens. Fast for developers. Clear for users. Fully under your control.

  • Self-hosted — EU cloud coming
  • Your data stays under your control
  • Explainable AI mapping
  • CSV, Excel, and PDF support out of the box

Every new customer brings a new import challenge.

When simple import stops
being simple.

Then come different formats, unexpected fields, PDFs, mapping issues, and edge cases that turn data import into a project of its own.

“It's just a CSV,” the customer said.

Inside were different column names, unusual date formats, duplicates, and even scanned PDFs.

— Every onboarding team runs into this sooner or later.

Mildport helps turn real customer files into structured data for your product — without manually fixing every new format.

"Customer data cannot leave our infrastructure."

— A security review can stop a deal.

Mildport runs self-hosted in your infrastructure today; a managed EU cloud opens with commercial access.
You decide where your data stays.

“The import worked incorrectly. Why?”

One wrong field can lead to hours of troubleshooting with a customer.

— The ticket nobody wants to close.

Mildport shows how data was mapped and transformed, so your team can review and control the result.

Live demo — try the real Mildport

Upload a file.
See ready-to-use data for your application.

This is the same import wizard your users will see inside your product — not a video and not a mockup.

Upload a CSV, Excel, or another file and see how Mildport detects data structure, maps fields, and helps prepare the import for your application.

Try these scenarios:

Try real problems SaaS teams run into: extra spaces, duplicates, different phone formats, and unexpected values.

This in-browser demo takes:
CSV · TSV · JSON · XML · XLSX
The full product also imports PDFs and scanned documents via OCR (they need the server engine, so they're not in this browser-only demo).

Your data. Your rules. Your control.

Sample files: contacts.csv

Mildport inside your application

Imagine this import is already embedded in your SaaS.

After the import completes, your application receives exactly the data your process needs — with no hidden steps.

app.yourcrm.com / settings / importMildport inside your app

Demo runs entirely in your browser. Uploaded files are not sent to a server.

This demonstrates the same principle Mildport is built on: your data stays where you run it.

Hard imports

When simple imports stop
being simple.

Customers don't send perfect files. They send exports from old systems, spreadsheets with different columns, PDF documents, scans, and unexpected formats. Mildport is built for these cases: turning real customer data into structured imports that can be reviewed before reaching your application.

PDFs, scans, and images

Extract data from documents, scans, and photos. OCR helps turn images into text, tables, and structured data — with review before anything is used.

Real-world spreadsheets

CSV, Excel, and other formats often arrive with duplicates, missing fields, and unexpected columns. Mildport helps detect structure, map fields, and prepare the import.

Mixed documents

Not every customer file is a table. Emails, forms, notes, and documents can become structured records inside your product.

Humans stay in control

Mildport shows what data was found and how it will be transformed. Users can review, edit, or reject results before anything reaches your application.

Product development

What's live today and what we're
building next.

You shouldn't need a sales call to understand what Mildport can do. Here is what works today, what we validate with partners, and what is coming next.

Ready today

Capabilities available in the current engine.

  • CSV, TSV, JSON, XML, and table formats
  • Excel and ODS processing
  • PDF and OCR pipeline
  • Field mapping and data validation
  • API and webhook delivery
  • Self-hosted deployment
Validating with partners

Scenarios we validate on real customer workflows.

  • Mixed document workflows
  • Extracting facts from unstructured data
  • AI assistance for mapping
  • Customer-specific workflows
In development

Capabilities we are developing next.

  • Automated recurring imports
  • Expanded self-service scenarios
  • Easier sandbox and licensing access
  • Scheduled imports from operational sources
  • Deeper infrastructure integrations

Self-host operations

Self-hosting should
be boring.

The most important thing about self-hosted software is not promises. It is predictable operation. Mildport runs where your data lives and gives your team control over deployment, storage, and processing.

Deploy

Deploy with Docker Compose, or on Kubernetes with Helm.

Store

Files and import state stay inside your infrastructure.

Secure

No required data transfer outside your environment. Full control over licensing and delivery.

Operate

Health checks, readiness checks, audit trails, and import lifecycle control.

Control AI

AI features follow your deployment and security rules.

Use cases

Real use
cases.

Mildport helps when importing becomes part of your product — not a separate tool.

CRM onboarding

Let customers import their data without building a custom project for every format.

Input
CSV, Excel, legacy system exports.
Mildport does
Detects structure, maps fields, highlights issues.
User checks
Mappings, invalid values, duplicates, and proposed fixes.
Your product receives
Ready data through API or webhook.

Document to record

Turn documents, forms, and text into structured records with user review.

Input
PDF, emails, forms, images, notes.
Mildport does
Extracts data and suggests structure.
User checks
Fields, missing values, and proposed records before creation.
Your product receives
Records in the format your application expects.

Finance & operations intake

Process invoices, receipts, and documents without manual data entry.

Input
Invoices, receipts, scanned forms, supplier exports.
Mildport does
Finds key fields and prepares structured data.
User checks
The user reviews the result before it is applied.
Your product receives
Data for finance, operations, or custom workflows.

How Mildport works

Embed import into your product.
Without building an import pipeline from scratch.

One component adds file import directly into your SaaS. Customers upload data, Mildport helps prepare it, and your product receives structured output.

  1. 01

    Embed Mildport

    Add the component to React (dedicated wrapper), Vue, Svelte, or plain HTML — it's a standard web component, so it works wherever HTML does. No SDK setup and no need to build an import UI from scratch.

  2. 02

    Customers upload their data

    CSV, Excel, PDFs, documents, or multiple files at once. Mildport is designed for real-world customer data — messy, inconsistent, and diverse.

  3. 03

    Mildport understands and validates data

    Detects structure, maps fields, highlights issues, and helps users verify results before sending data to your product.

  4. 04

    Your product receives structured output

    Get clean data via API or webhook in your own schema and processing format.

embed.ts
import { defineImportSuiteElement } from '@capitality-io/mildport-widget';

await defineImportSuiteElement('mildport-import');

<mildport-import
  api-base-url="https://imports.your-infra.example"
  license-key={SIGNED_TENANT_KEY}
></mildport-import>

This is the same component used in the demo above. Embed import into your product and connect it to your data pipeline.

Built like an engine. Delivered as a component.

Everything you need to work with
incoming data.

Supports real-world data formats

CSV, TSV, XLSX, ODS, JSON, XML. Extracts tables from PDFs and scans via OCR. Handles large files asynchronously.

Deterministic first. AI when needed.

Data is processed through deterministic rules first. AI is used only for complex cases and can be disabled or replaced.

Remembers your decisions

Confirmed mappings are stored and reused. The system adapts to how you structure data. Set it once.

Schema changes without releases

Edit target fields in a no-code editor — or draft them from your API spec. Publish, and every embed updates instantly. Versioned, with one-click rollback.

Combines multiple sources

Multiple files become a single dataset. Merge by key and work with a unified structure.

Validate data before sending

Inline editing, field-level validation, error highlighting. Fix issues before data reaches your product.

Works with your entities

Rows can reference records in your product. Mildport resolves them using your rules.

Fully adapts to your product

Design system support via tokens. The widget feels native to your interface.

Reliable data delivery

Signed webhooks, retries, and delivery logs. Also supports API and browser mode.

Flexible deployment. Full control.

You decide where
customer data is processed.

Deploy Mildport inside your own infrastructure, or use the managed EU cloud when it opens. Self-hosted — available today, when data must never leave your environment. EU cloud — for a fast start, opening with commercial access.

Mildport is built in Germany. In self-hosted mode your data never touches our cloud at all: files, intermediate results, and final records stay inside your infrastructure. And in the managed cloud — opening with commercial access — data is stored on EU infrastructure and protected by the GDPR, some of the world's strongest privacy laws.

Runs in your environment

Deploy Mildport via Docker Compose or Kubernetes (Helm). The same engine will power the managed EU cloud.

Licensing without external dependencies

Signed keys are verified locally. No licensing server, no “phone-home” calls. Works in isolated environments.

Explainable and reproducible

Every mapping and transformation can be inspected. Decisions are deterministic and audit-ready.

AI under your control

AI is an optional layer for complex cases. You can disable it, replace it with your own model, or run it inside your infrastructure. All decisions are traceable.

your-vpc — bash
# the whole import engine, on your metal
$ cp apps/import-service/.env.example apps/import-service/.env   # keys, Mongo, sidecars
$ docker compose up --build
 mildport listening on :8090
 mongo · pdf-probe · xlsx-decode · ocr

$ curl localhost:8090/health
{"status":"ok","service":"mildport"}

$ pnpm import:license -- --tenant acme --plan pro
 signed key minted — verifies offline

One engine — in your environment today, in the managed EU cloud next.

Tenant #1: ourselves

We were the first to move our import to Mildport.
And removed our old pipeline.

In Capitality CRM, data import used to be part of the internal backend. Today it runs entirely on Mildport: the same widget, the same REST API, the same webhook contract. This is a real production migration — with no exceptions or special cases.

cap-auth — git show
commit 98e6161
Date:   Sun May 31 2026

  chore: cap-auth now consumes the standalone
  mildport service over REST as tenant #1;
  the in-process UNP pipeline and ximport
  services are removed
−12,236lines of bespoke import code, gone
+343lines kept — a proxy and a webhook
142files changed

This is a real migration commit from the Capitality CRM production repository.

Through the front door

Capitality authenticates with a signed license key against the public REST API and pins the published @capitality-io/mildport-widget from GitHub Packages — semver range, version-pin check in CI. No private endpoints, no special casing. If the public surface is awkward, we feel it first.

The whole pipeline moved out

Upload, file decoding (XLSX, PDF, OCR), matching, review, apply — all of it runs in the Mildport service now. What remains in the host backend: a tenant-scoped read proxy for the import inbox and a webhook handler that verifies HMAC signatures.

Branded, translated, resumable

The wizard wears Capitality's design system through --mildport-* tokens, labels flow from the host's own i18n layer, and a recordId deep link resumes a half-finished import straight from the inbox. The embedding surface isn't theoretical — it ships.

A broken widget fails our build

Capitality's CI runs Playwright accessibility specs against the embedded wizard. A regression in Mildport turns our product's pipeline red before any customer ever sees it. Every sharp edge you'd hit, we hit first — with production data.

Latest updates

What we've shipped
in the product.

We ship continuously. Here are some recent milestones.

matching

Imports in your customers' language

Column matching now understands English, German, Spanish, French, Italian, and Russian — headers like „Straße“, «Prénom», or «Фамилия» land on the right fields of an English schema, accents and spelling variants included, with nothing translated and nothing sent anywhere. Files with several addresses per row (billing vs. shipping) stay cleanly grouped, and a genuinely ambiguous address block becomes one clear question — answered once, remembered for the next import.

agents

AI agents can run imports (MCP)

Mildport ships a Model Context Protocol server: assistants and agents can start imports, track progress, and answer open questions — under the same license, limits, and audit trail as a person. An agent's answer is only accepted when it is backed by the file's actual content.

audit

Open questions, on the record

Anything uncertain — an unmapped column, a doubtful match, a low-confidence extraction — becomes an explicit question with its evidence attached. Answer it in the flow or over the API; every answer lands in the import's audit trail. Nothing is silently guessed.

ai 1.2

Repeat imports replay without AI

Accepted mappings and clean-ups are saved as recipes. When the same kind of file comes back, the import replays them deterministically — the same result every time, with zero AI calls — and an audit page shows each recipe and every time it was reused.

ai 1.1

AI data cleaning you can review

Describe a fix in plain words — "split the full name", "format these phones" — or accept a suggested one. You always see the exact before/after preview first, and an accepted cleanup is reused on the next similar file without another AI call.

no-code

No-code import schema with AI spec scan

Teams edit target fields in an embeddable editor and publish without a host release. Point it at an API spec and review the drafted schema. Versioned, with instant rollback and per-project overrides.

ai 1.0

Hybrid matching with explanations

Data is processed with deterministic rules first. AI is used only for complex cases. Each decision includes an explanation and audit trail. The model can be replaced or disabled.

cutover

We migrated our own product to Mildport

Capitality CRM now uses Mildport as an external import service via REST API. The internal import pipeline has been removed. This migration runs in production with no exceptions.

v0.2.x

Multi-file import and merging

Upload multiple files and merge them by key (left / inner join). The result is prepared before any data is applied.

v0.2.6

Interface theming

Design system support via CSS tokens --mildport-*. Light and dark themes can be enabled without changing logic.

v0.2.2

OCR for scans and images

Extract data from scanned PDFs and images. Results go through a confirmation step before being added to the system.

v0.2.x

PDF document support

Structured PDFs and documents (e.g. invoices) are parsed and mapped to your schema fields. Preview is available.

v0.2.0

Entity link resolution

Rows can reference existing records in your product. Matching is done using your data rules.

v0.1.0

Structure-based matching

The system uses both headers and value types (email, dates, numbers, etc.) for matching. This improves automatic mapping accuracy.

engine

Self-hosted stack and delivery control

Deploy with Docker or Kubernetes. Reliable delivery with signed webhooks, retries, and audit logs. Offline licensing and preflight checks included.

packages

UI packages

React and Angular components are published via GitHub Packages. Versions are pinned via semver and validated in CI.

Product roadmap

What we are improving
next.

We are building Mildport around one principle: making data imports predictable, verifiable, and practical for teams working with real products and real constraints.

  1. Next

    Smarter data merging and large XLSX processing

    The next step after multi-file imports: automatic key suggestions and server-side processing for large XLSX files without browser limitations.

  2. Next

    AI configuration per environment

    Cloud customers will get separate model, endpoint, and credential settings. Self-hosted deployments keep full control within your infrastructure.

  3. Planned

    Vue, vanilla JS, and headless mode

    More integration options: framework wrappers and a complete API mode without the embedded interface.

  4. Planned

    Simpler deployment for controlled environments

    Improving Helm deployment, secrets management, and installation flows for teams requiring full infrastructure control.

  5. Planned

    Faster processing for large tables

    Optimizing validation for large files while keeping the interface responsive and accessible across hundreds of thousands of rows.

  6. Planned

    Self-service licensing

    Self-service tools for teams: key management, plans, and a simpler onboarding path for developers.

  7. Future

    Automated import workflows

    Imports beyond the interface: SFTP, S3, email, and other sources using the same flow — receive, map, validate, and apply.

Pricing

Published prices.
Hosted — or entirely in your cloud.

No sales-call paywall: the rate card is public, the overage math is printed on it, and every plan can run self-hosted with a signed offline license — no phone-home, metering off.

Free / Dev

$0forever

Evaluate with real files.

  • 20 imports / 5,000 rows a month
  • Server matching + manual mapping
  • Spreadsheets, JSON/XML, PDF & images
  • Watermarked widget
Get early access

Starter

$149per month

Your first production flow.

  • 50 imports / 25,000 rows a month
  • Watermark off
  • Overage $4 per import · $8 per 10k rows
  • Self-host option: $3,000 / year flat
Get early access

Enterprise

from $1,500per month · annual OK

Compliance-grade, at volume.

  • Custom volumes & limits
  • AI assist on your own model (BYO-LLM)
  • SSO, SLA, DPA, audit export
  • Self-host / air-gap from $25,000 / year
Get early access

Self-host is a deployment, not a different product. Any plan runs inside your boundary — Docker Compose, Helm, or the air-gapped all-in-one image. The license is a signed file with an expiry date: no phone-home, no per-import anxiety, metering simply off.

Overage math is published, usage is queryable live from your own instance, and AI runs on your model endpoint with zero token markup.

Early access

Be among the first teams to launch
imports with Mildport.

Commercial access is opening soon — and pilots are running now. Leave your contact details — we’ll reach out about pilot spots and let you know the moment Mildport is ready to purchase.

What do you plan to import?Select all that apply

No spam — only launch and availability updates.