A gate, not a gamble
However a file arrives, upload, email, or a watched folder, the same validation engine runs before any write.
Columns are matched to your Airtable fields. A missing required column is flagged up front, before any row runs.
Each row is validated against its field type, format, required-ness, valid options, and links.
Passing rows are written to Airtable; failing rows are set aside with a per-row reason.
You get an error report, row number and reason, to correct and re-import just the rows that failed.
What Impora checks
Impora reads your table’s actual field types and validates each cell to match, so imports do not get rejected downstream, and your base never fills with values that do not belong.
A missing value in a required field is caught and named, never quietly written as blank.
Checked for a valid email address format before it lands.
Must be a proper http(s):// link.
Must be a real, finite number.
Must be a valid date in your configured format (default DD/MM/YYYY), with a general date-parse fallback.
Accepts natural inputs, true/false, yes/no, 1/0, and converts them.
The value must match an existing option in your field (case-insensitive; multi-selects split on commas). Impora will not create junk options.
Impora fetches the linked table live and matches your text to real records by name, so "Acme Corp" links to the actual Acme record.
Partial success by design
Validation is row-level, so one bad cell never blocks the whole file. Passing rows are written; failing rows are set aside as an error report you can actually act on.
Why it matters
No half-imported files and no malformed records, the check happens before anything reaches your base.
Options, linked records, and types are checked against your live schema, so imports do not get rejected downstream.
Clean rows always land; only the genuinely bad rows wait. One bad cell never blocks a file.
Every failure names the field, the exact row number, and a reason in plain English.
Your live Airtable schema. Impora reads each field’s real type and rules, required, email, URL, number, date, checkbox, single and multi-select options, and linked records, and checks every cell to match before writing.
No. Validation is row-level, not all-or-nothing. Every row that passes is written to Airtable, and only the rows that fail are held back, so a single bad cell never blocks a file.
Each held row comes back with its original data, a _row_number that lines up with your spreadsheet, and a plain-English _error such as "Estimated Deal Value must be a number" or "Widget is not a valid option". Fix those rows and re-send.
Dates are validated against the format configured on your template (default DD/MM/YYYY), with a general date-parse fallback. It does not auto-detect every locale, so set the format to match your source files.
No. A single or multi-select value must match an option that already exists on your field (case-insensitive). Values that do not match are reported rather than written, so Impora never adds junk options to your base.
Impora flags duplicates within the file, case-insensitive, on the field you choose, and, for update imports, can match against existing Airtable records. It is not a full fuzzy de-dupe across your entire base.
Yes. Whether a file comes in by upload, email, or a watched cloud folder, the same validation engine runs before any row is written.