Skip to content

Choose your data

A loaded file: row and column counts, duplicate detection, and what will import.

Paste delimited text or drop a file in. It needs a header row — the first row’s values become the column names you map from.

The file is parsed in your browser. It is not uploaded to us to be read, and it is not stored on our servers at any point. What reaches our servers during a run is the records being written, not your file.

Auto-detected, with what it found shown so you can overrule it. Comma, tab, semicolon and pipe are offered explicitly, which covers the exports that usually get this wrong — a European CSV using semicolons, a tab-separated dump with commas inside the values.

If the preview looks like one column, the delimiter is wrong.

A row and column count, and three things Sloose noticed:

  • Duplicate rows. Rows identical to another row in the file. Worth dealing with here — see below.
  • Excluded rows. Ones you have taken out of this run.
  • Filtered rows. Ones a row filter is holding back.

The footer keeps a running count of what will actually import, which is the number to trust.

If the file repeats a row and you are creating records without matching, importing both writes the same record twice. There is no undo for that in your CRM.

Exclude the copy here. The row stays in the file and stays visible — it is out of this run, not deleted, which is a difference that matters when somebody asks later what happened to it.

If the file has many duplicates, that is usually a sign the export was wrong rather than something to clean up row by row.

Cells are editable. The edit belongs to this job, not to your file — your original is untouched, and the edit travels with the job if you save it.

Use this for the handful of genuinely wrong values: a typo, a stray space, a number stored as text. If you find yourself making the same edit repeatedly, stop — that is a mapping problem, and a formula fixes all of them at once.

Any row can be taken out of this run. Use it for rows that are beyond saving, rather than bending a formula around six bad records.

A row filter is an expression that decides whether a row is imported at all:

row.Status === 'Active'
helpers.num(row.Amount) > 0

The filter runs over the file, before any records exist, so it can only see row. A filter that tries to read this row’s records cannot work, and validation says so rather than letting it silently match nothing — for that, use Only import when… on the Match step, which runs per module with earlier records available.

A filter that holds back every row is a warning, not an error. Sometimes that is what you meant.

Which modules this file feeds is set on Home, before you get here, and the modules you picked determine which fields are available to map.

A single row can feed several modules and link them: a contact row can create the account it belongs to and point at it, in one pass. Sloose works out the order from the links you mapped, and shows what it decided on the Match step.

Start with one module for your first run. The multi-module case is not harder, but it is easier to read a result you already understand.

Your plan sets how many rows you can import per month. A run that would exceed the allowance is refused before it starts, not part-way through — the allowance is checked once, at authorisation, so a run that begins always finishes.

If the plan offers row overage and you have switched it on, the rows are written and billed per thousand instead. See Plans and limits.