Back to App
Back to Leads

Importing Leads from a CSV File

If your contacts live in a spreadsheet, you can load them in bulk: SalesControl reads the file, lets you check exactly what is about to be imported and only creates the leads once you confirm.

The permission you need

The Import CSV button only appears for people with the Import leads from CSV permission. Admins always have it; for other members an admin switches it on from the member’s card on the Team page.

Preparing the file

The Download CSV template button gives you a ready-made file with the right headers and two example rows. You are not obliged to use it, though: you can upload any export, because columns are mapped by hand in the next step.

The language column

The language column is imported exactly as you wrote it, with no checks. In the lead form, language is a closed dropdown over the five app languages instead: a value like “Inglese” does land in the field but is not recognised, so it plays no part in deriving the market and shows as “Not set” when you open the lead for editing. Use the codes it, en, es, de, fr.

The four steps of an import

Choose the file

Click Import CSV, then Choose CSV file.

Map the columns

Standard headers are detected automatically. For the rest, pick the destination from the dropdown or leave it on Ignore. To continue, at least one column must be mapped to Full name or company or to Email.

For the name there are three separate destinations: Full name or company (the one shown everywhere in the app), First name and Last name. If your file has first and last name in two columns, map them to First name and Last name: they stay two separate pieces of data and the full name composes itself. The Italian header Cognome is recognised on its own, while an Italian Nome header counts as the full name: that is how the template and the webhook use it.

Check the preview

SalesControl tells you how many rows will be imported, how many will update existing leads, how many in-file duplicates were skipped, how many rows were discarded (with their line numbers), how many were discarded because they are already clients (with their names) and how many dates couldn’t be read. Next to the count of new leads there is show who: it opens the list, name by name with email or phone, so you check who you are about to create and not just how many. hide closes it again.

Resolve setter and closer, then import

If some rows carry an ambiguous or unrecognised name, a list appears so you can assign them by hand (or leave them unassigned). Then click Import.

Duplicates and updates

The rule for spotting a duplicate is the same as for the webhook: a row matching a lead that is already Open by email — or by phone, when there is no email — doesn’t create a duplicate. If the same contact appears several times inside the file, the first occurrence wins and the others are skipped.

A person is either a lead or a client, never both: a row matching a client by email or phone is not imported, not even as an update. The preview lists it separately, with the names: “2 discarded: already clients (Mario Rossi, Anna Bianchi)”.

What happens to those existing leads is your call, row by row. Under the preview an Existing leads box lists them with a checkbox each, ticked by default, and under the name the fields that would be overwritten (“Updates: Phone, Source…”): only the fields present in the file, everything else stays as it is. Untick whoever you want left alone; Update all and None act on the whole list at once. The preview count follows your choices (“3 of 7 existing leads will be updated”), and when the import finishes a message says how many were updated and how many were left unchanged.

Tip

You can re-upload the same file enriched with new columns: existing leads are updated instead of duplicated. And if the file is old and might overwrite recent work, press None: only the new contacts are imported.

Discarded rows

A row is discarded when it has neither a name nor an email, or when it matches a client (see Duplicates and updates). An unreadable date discards nothing: that single field is left empty and flagged in the preview, so you can fix the file and upload it again.

Note

An import does not send the “New Lead” notification: loading a thousand contacts would mean a thousand alerts. Those notifications stay tied to leads arriving through webhooks.