Skip to content
Get started

Import into Airtable — CSV, Excel & PDF

Goal: your users bring the file they have — CSV, Excel, even a PDF or a scan — and clean records land in Airtable without leaving your product, and without you writing a mapping/validation UI. The pattern is the same every time: embed → validate → deliver. Mildport handles the first two; your webhook handler owns the Airtable API call.

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

2. Publish a catalog that mirrors Airtable

Section titled “2. Publish a catalog that mirrors Airtable”

The schema lives in a target catalog, not in host code. Create it in the catalog editor (/admin/catalogs on your engine, or embed <mildport-catalog-editor>), match the fields to the table you’ll write to, and publish. The widget loads that published catalog by catalog-key.

Model the Airtable columns as catalog fields — Name, Email, Status, Notes is a typical start. Prefer Airtable field IDs as keys so a renamed column does not break matching. Mark anything the Web API rejects as empty (required).

Users then upload anything — renamed headers, six languages, XLSX/ODS, even PDF tables — and Mildport’s deterministic matcher plus the review step produce typed, validated rows.

Need the schema computed per user at runtime, or versioned with your app? That’s the schema-as-code path — pass targets from host code instead of catalog-key.

Clean rows arrive on your signed apply webhook; your handler feeds Airtable:

POST https://api.airtable.com/v0/{baseId}/{tableIdOrName} with {"records":[...],"typecast":true} (PAT; 10 records/request)
  • 10 records per request and 5 req/s per base — batch and pace the delivery.
  • single-select values must exist unless typecast:true — decide whether new options are welcome.
  • field names are case-sensitive; prefer field IDs for renames-proof integrations.

Airtable’s own CSV import is fine for its UI users — but if your product provisions or fills bases for customers, you need import in your flow, with validation before anything hits the base.


Try the flow first: the playground (no signup), then the Quickstart and target catalogs. Prices are published — hosted and flat-annual self-host — at mildport.com/#pricing.