CSV to Airtable

Airtable pastes tab-separated text into a grid, cell by cell, filling right and down from wherever you click. This page produces that text from your CSV, with one crucial difference from a plain export: a tab or a line break inside a cell is replaced rather than quoted, because Airtable does not honor CSV quoting on paste and a quoted value would break the row anyway.

Try an example loads a small sales table ready to paste into a grid.

Quoting does not help you here

This is the thing worth knowing, and it is counter-intuitive. In a CSV file, a value containing the delimiter is protected by wrapping it in double quotes, and every CSV reader honors that. On paste into a grid, Airtable does not: the clipboard is parsed as tab-separated text where a tab means "next cell" and a newline means "next record", full stop.

So a cell containing a tab produces this:

Intended                        What Airtable actually gets
name        note                name        note
Ada         "first    entry"    Ada         "first        entry"
                                                          ^ shifted a column

Wrapping it in quotes does not stop the split; it just adds visible quote characters to a value that is already in the wrong cell. The only thing that works is replacing the tab with a space before the text reaches the clipboard, which is what this page does, and it tells you in a note when it happened.

Worked example

In, with a line break in one cell:

name,note,amount
Ada,"needs
follow-up",120.50
Grace,routine,88.00

Out, as tab-separated text:

name    note                amount
Ada     needs follow-up     120.50
Grace   routine             88.00

Two records in, two records out. Left as a raw line break, Ada's row would have become two rows, the second holding follow-up in the name column and nothing else, and the misalignment would have propagated through everything below it.

How to paste it

The mechanics matter, because Airtable's paste behavior depends on where you click.

  • Click the first cell of the range you want filled, in the row and field where the top-left value should land. Airtable fills right and down from there.
  • Make sure the fields exist and are in the right order before you paste. Airtable does not create fields to accommodate a wide paste; values past the last field are discarded silently.
  • Add the rows first if you are updating existing records. Pasting into the grid overwrites downwards, and it will add records at the bottom if it runs out, which is usually what you want for an append.
  • Set the field types afterwards, not before. Pasting into a single-select field that does not have the option yet, or into a date field with an ambiguous format, is where a paste goes wrong. Paste into text fields, check the values, then convert.

Turn off First row is headers if you want the header row pasted as data, which is occasionally useful when you are pasting into a fresh table and want to see the names in the grid before creating the fields.

When to use the CSV import instead

Airtable has a CSV import, and for a first load of a large table it is the better route: it creates the fields for you, it lets you map columns, and it does not depend on the clipboard.

Paste is better for the everyday cases: adding a few dozen rows to a table that already exists, updating a column in place, or moving data between two bases. The row cap here is ten thousand, which is well past where the clipboard route stops being the convenient one.

The delimiter on the way in

Your source file's delimiter is detected from the content, so a semicolon file from a European Excel install and a pipe-delimited export both read correctly without you saying anything. If detection gets it wrong, the Delimiter control names it explicitly.

The output is always tab-separated, because that is what Airtable's paste handler reads. There is no option for that and there should not be.

Frequently Asked Questions

Why not just quote the fields like a CSV?

Because Airtable does not honor CSV quoting when parsing a paste. The clipboard is read as tab-separated text where a tab means next cell and a newline means next record, so a quoted value with a tab in it still splits, and you get visible quote characters as well. Replacing the character is the only thing that keeps the row intact.

Where do I click before pasting?

On the cell where the top-left value should land. Airtable fills right and down from there. Make sure enough fields already exist in the right order, because values past the last field are discarded without a warning.

Should I set my field types first?

No. Paste into text fields, check the values landed correctly, then convert the fields to date, number or single-select. Pasting into a typed field is where values get rejected or silently reinterpreted, particularly dates and single-selects with options that do not exist yet.

How many rows can I paste at once?

The cap here is ten thousand and it is editable. In practice the clipboard route is comfortable up to a few thousand; past that Airtable's own CSV import is faster and creates the fields for you.

What happened to the tab that was inside one of my cells?

It became a space, and a note above the result says how many cells were affected. Left in place it would have split that cell in two and shifted everything after it one column left, for that row and no other, which is a misalignment that is easy to miss.

Can I paste into a specific view?

Yes, and it is worth being careful: pasting into a filtered or sorted view writes to the records as displayed, which may not be the order in your source. Paste into an unfiltered, unsorted grid view when the row order matters.

Does anything I paste leave my computer?

No. There is no upload endpoint on this page and no network request in the code that does the work. JavaScript in your own tab reads the text, processes it and hands back the result. Nothing is stored between visits either, so reloading gives you an empty box again. You can confirm it by opening your browser's network panel and watching it stay quiet while you work.

Into the grid, rows intact

Free, no account, no upload. Tab-separated, with nothing left in a cell that would split it.

Back to the converter