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.

Use Mildport in the cloud or deploy a self-hosted version when your data needs to stay within your infrastructure. Fast for developers. Clear for users. Fully under your control.

  • EU cloud or self-hosted
  • 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 in the cloud — hosted in the EU — or self-hosted.
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.

Supported formats:
CSV · TSV · JSON · XML · XLSX
PDFs and scanned documents via OCR.

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, Vue, Svelte, or plain HTML. 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.

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.

Use Mildport in the cloud or deploy it inside your own infrastructure. Cloud — for a fast start, hosted in the EU. Self-hosted — when data must never leave your environment.

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

Runs in your environment

Deploy Mildport via Docker Compose or Kubernetes. The same engine runs in both cloud and self-hosted setups.

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":"cap-import"}

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

One engine — both in cloud and in your environment.

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
  cap-import 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.

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. In development

    AI transformations with transparent control

    AI will suggest data changes — such as normalizing phone numbers or splitting fields — while every change remains visible and reviewable before applying.

  4. Planned

    Vue, vanilla JS, and headless mode

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

  5. Planned

    Simpler deployment for controlled environments

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

  6. Planned

    Complete import history

    Expanding the decision log: mappings, transformations, and manual changes become a reproducible history of every import.

  7. Planned

    Faster processing for large tables

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

  8. Planned

    Self-service licensing

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

  9. Future

    Automated import workflows

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

  10. Future

    MCP and AI agent integrations

    Enable AI agents to start and control import workflows through APIs inside your environment.

Early access

Be among the first teams to launch
imports with Mildport.

Commercial access is opening soon. Leave your contact details — we’ll let you know when pilot spots become available and when Mildport is ready to purchase.

What do you plan to import?Select all that apply

No spam — only launch and availability updates.