platform

Import & export

PROFESSIONALEstimated read: 12 min· Updated 2026-09-05

Import & export

ProfessionalAdmin

Your data is yours. Settings → Data → Import & export lets you bring records in from another system, and take a complete copy of everything out — without asking us, and without anyone writing a script.

TL;DRExport to take a copy out; choose JSONL if you ever want to load it back, CSV if you want to read it in Excel. Import to bring a spreadsheet in: pick where it goes, upload the file, check what will happen, then import.

Exporting

FieldWhat it doesAccepted values / default
Data file (JSONL)Moving to another system, or keeping a copy you can restore.Keeps dates, numbers and structure exactly as they are. This is the only format that can be imported back.
Spreadsheets (CSV in a ZIP)Reading your data in Excel, Numbers or Sheets.One spreadsheet per table. Every value becomes text, so this format cannot be imported back.
Everything / Choose tablesExport the whole workspace, or just the parts you need.Choosing tables is useful when you only want one module's records.
Check what's includedSee the table list, the row counts and anything left out — before you download.Nothing leaves the workspace at this step.

Exporting asks for your passkey

An export contains every record in the workspace, including other people's. Because of that it asks you to confirm with a Passkey or security key — a password alone is not enough. The export is recorded in your Audit log both when it starts and when it finishes, with the number of rows taken.

What is not in the export

Three kinds of thing are deliberately left out, and the export tells you which — nothing is dropped silently.

FieldWhat it doesAccepted values / default
Your audit logIt has its own export, with its own filters and date ranges.Settings → Audit log → Export.
Passwords, API keys and tokensAnything that acts as a credential.Listed by name in the export manifest, so you can see what was withheld.
Internal bookkeepingTables AxisSynapse uses to run the workspace.They mean nothing outside this system.

Every export includes a _manifest.json listing each table, its columns, the row counts, and both of the above. If a table could not be read, the export fails rather than handing you an archive with an empty file in it — a copy that looks complete and is not is worse than no copy at all.

Importing

Four steps, and none of them requires knowing what a table is called internally.

  1. Choose where it goes. A list of your workspace's own tables, grouped by module. Tables that cannot take data are shown but not selectable, with the reason.
  2. Upload the file. CSV or tab-separated, with a header row, up to 20,000 rows at a time. Split anything larger into batches.
  3. Match the columns. Headings from your file are paired with real columns automatically wherever the names line up. Each column shows what it holds — a date, a whole number, yes/no — and whether it is required. Anything you do not want is left as Don't import.
  4. Check and import. You are told how many rows will be written, how many will be skipped, and exactly what is wrong with each one.

Running an import twice is safe

If your table has an identifier column and your file supplies it, rows that already exist are updated rather than added again. That is what makes a large migration survivable: if it stops halfway, fix the file and run the whole thing again — nothing is duplicated.

If your file does not supply an identifier, every row is added as new, and the preview says so before you commit.

When a row is refused

A row is never partly imported. If any cell in it cannot be read — a date that is not a date, a required column left blank — the whole row is skipped and named in the preview, and the rest go in. Fix those rows and run the file again.

Moving in from another system

The shortest path from a system you are leaving:

  1. Export from the old system as CSV, one file per kind of record.
  2. In AxisSynapse, import each file: choose the table, upload, match, check, import.
  3. Where the old system's identifiers matter to you, map them to an identifier column so a second run corrects rather than duplicates.

Moving out

Export in JSONL. Each line is one record, tagged with the table it came from, and the first line describes every table and column in the file — so any tool can read it in a single pass without loading the whole thing into memory.

The download is live

Your export is streamed straight to you as it is read. We do not keep a copy — there is nothing stored on our side afterwards for anyone to find. The trade-off is that a very large export needs the download to finish in one go; if the connection drops, start it again.

Intake APIs are different

Settings → Data → Intake APIs is for a continuous feed: another system posting records to you as they happen. Import is for a file you have in your hand right now. Both write to the same tables and follow the same rules about which tables can receive data.

Related