Skip to content

How it works

An import is one embedded element and four moments.

A custom element that works in React, Vue, Svelte or plain HTML. Attributes in, DOM events out — no SDK lock-in, no iframe. See Install.

CSV, TSV, XLSX, ODS, JSON, XML, PDFs with tables, scans and photos via OCR. Multiple files at once — joined on a key into one dataset.

Deterministic header + value matching with visible confidence, validation on every cell, inline fixes in the review grid, and your own cleaning hooks — all client-side, before anything is delivered.

An optional, evidence-gated AI judge re-ranks only the low-confidence tail. It must cite evidence, pass the same validators, and log its rationale — and it is off by default.

An HMAC-signed apply webhook with retries and a delivery audit — or an onResults callback in the browser. Either way: rows shaped exactly like your schema, with the mapping that produced them.

el.columnSchema = yourTargetSchema; // what a clean row looks like
el.addEventListener('import-applied', sync); // or a signed apply webhook

Next: Configure the widget.