Feature · Change preview
Know exactly what an import will change
Rowvela compares the incoming data with the current Airtable table and shows you the result row by row: which records are new, which fields change from what to what, and which records would be deleted. Nothing is written until you approve.
- New
- 12
- Changed
- 38
- Unchanged
- 1,204
- Delete
- 1
| Change | Match key | Field | In Airtable | Incoming |
|---|---|---|---|---|
| + | cus_Q8x2 | — | ana@northwind.example | |
| Δ | cus_P2m7 | Plan | Pro | |
| Δ | cus_P2m7 | MRR | 99 | |
cus_L0c4 | Plan | Pro | Pro | |
| − | cus_K1t9 | Record | not in source |
What the preview shows
- Totals of new, changed, unchanged and deleted records, and rows with problems.
- Before and after values for each changed field. Only changed fields are patched; untouched fields keep their value.
- Validation errors per row: a value that does not fit the field type, an unknown single-select option, a date where a date-time is expected, a duplicate key.
- Warnings that need a decision, for example when a large share of the table would change.
The preview is stored encrypted for ten minutes together with the import revision. Applying it writes exactly what you reviewed. If you edit the import, the preview is discarded and a new one is needed.
Matching records
To update existing records, Rowvela matches on a key of one to three fields you choose, for example Stripe ID or Order number + Line. Every part of a composite key must be a non-empty value. If two source rows or two Airtable records share a key, the write is blocked instead of guessing.
There is no matching by row position. A source that returns rows in a different order, or a filtered view, never moves data into the wrong record.
Write modes
| Mode | What it does |
|---|---|
| Append | Creates a record for every source row. |
| Upsert | Updates records with a matching key and creates the rest. |
| Update only | Updates matching records; unmatched rows are reported as skipped, nothing is created. |
| Delete missing | Optional with upsert: records whose key no longer appears in the source are deleted, as part of the preview. |
| Action only | Sends requests to an API without writing to Airtable at all (see enrichment). |
Deleting missing records
- Deletions are listed in the preview like any other change.
- An empty source response never deletes anything.
- Above a percentage of the table you set, a manual run needs explicit confirmation and an automated run is held for review.
- Deleted records can be restored by reverting the run (as new records; Airtable comments and inbound links cannot be restored).
Drift check before writing
Between the preview and the apply, someone may edit the table. Rowvela fingerprints the mapped fields and their schema when it builds the preview, then re-reads the table right before writing. If the fingerprint differs, the stale preview is rejected and you review again. Formula fields, last-modified fields and other columns you did not map do not invalidate a preview.
When something goes wrong mid-run
Writes go out in batches of ten and every confirmed batch is recorded. Rowvela never automatically replays a batch whose result is uncertain (a timeout, for example), because that could write twice. The run history shows each row as applied, not sent, or uncertain, so you know what to check.