← All help articles

Importing leads from a CSV

Importing leads from a CSV

If you're moving into 1pm from a spreadsheet, another CRM, or a shared inbox somebody has been tracking leads in, you don't have to retype the backlog. The leads import takes a CSV and creates one lead per row, ready to work. This article covers where to find it, matching your columns, lead types, how leads link to your existing contacts, what counts as a duplicate, undo, and the things worth knowing before you upload.

CSV import is available on a paid plan. On the free trial you add leads one at a time, and the import page tells you so. To import during your trial, add a card and click Start your paid plan now on the Account page.

Nothing is emailed

Start here, because it's the question everybody asks: importing sends no email and runs no automations. Nobody in the file is contacted, no acknowledgement goes out, and none of your Lead received workflows fire.

That's deliberate. An imported file is usually history, not fresh leads, and sending two hundred people an automatic "thanks for your lead" about something they asked six months ago would be a bad afternoon. If you want a lead to receive something, you send it yourself from the lead's thread after the import.

Where to find it

Go to the Leads page. At the top, next to the Add lead button, there's an Import button that takes you to /Leads/Import.

The page has a Download template button, a CSV format section you can expand, and the file upload form. Once you've imported, it also lists your recent imports (with Undo) and any column mappings you've saved.

The file

Any CSV with a header row works. The first row names the columns and each row below it is one lead. The columns can be called anything and come in any order, because you choose where each one goes after you upload. An export from another system or a wedding fair sign-up sheet is fine as it is.

If you're building a list from scratch, click Download template for a CSV with a column for every field and three example rows: a full row, a row without a lead type, and a phone-only row with no email address.

Upload, match columns, import

  1. Choose your file and click Upload and match columns. Nothing is imported yet.
  2. Each column of your file is listed with a few example values and a dropdown saying where it goes. 1pm fills these in from the column names ("Surname", "Wedding date", "E-mail address" all land where you'd expect). Check them and change any that are wrong.
  3. Check which way round your dates are written, then choose the lead type for rows that don't give one.
  4. If your file has a lead type column, check which of your lead types each value is (see below).
  5. Underneath is a preview. It counts how many leads will be created, how many are skipped and how many have problems, and lists every row with its outcome, so you can see a problem before anything is saved. It updates each time you change something.
  6. Click Import. The button says how many leads it will create.

What each column can be

  • Event date. Required on every row. The date of the event they're enquiring about. See the section on dates below, because this is the one column worth being careful with.
  • First name. Required, unless the row's email matches one of your existing contacts (see below). Up to 100 characters.
  • Last name. Up to 100 characters.
  • Business. The client behind the lead. For a wedding that's usually the couple as one party ("Bob & Sue"); for a commercial client it's their business name ("Acme Events Ltd"). Up to 200 characters.
  • Email. Up to 256 characters, and it has to look like a real address (exactly one @ sign, with a dot in the domain) or the row is rejected.
  • Phone. A lead needs an email or a phone. Up to 50 characters, and fussier than it looks: digits, plus, hyphen, brackets, full stop and spaces are the only characters allowed. A cell reading "0412 345 678 (mob)" fails the whole row, so strip the words out first.
  • Guests (pax). A whole number up to 1,000,000. Leave it blank if they didn't say.
  • Event type. Free text, up to 200 characters: "Wedding", "Conference", "30th birthday". This is the same field the lead form collects, and it feeds the event-type reporting.
  • Message. Up to 4,000 characters. What they actually asked for. Worth filling in: it's what you read first when you open the lead weeks later.
  • Lead type. In your file's own words. See the next section.
  • Add to the message. The column is added to the lead's message as "Column name: value", one line each. Use it for anything worth keeping that has no field of its own, like a budget or where they heard about you. If that takes the message past 4,000 characters, the added text is cut to fit and the preview marks the row.
  • Don't import. The column is left out.

Each field takes one column. If you choose the same field for two columns, the preview says so and only the first one is used.

Lead types

Your lead types decide the terms a confirmation snapshots and which automations a lead belongs to, so they're worth setting if your leads fall into distinct types.

When your file has a lead type column, the matching screen lists each value in it, with how many rows have it, and which of your lead types it will be. A value spelled the same as one of your lead types (in any capitals) is filled in for you. For the rest, pick the lead type, leave it on No lead type, or choose Don't import these rows to leave them out of the import.

A blank cell takes the lead type you chose for the whole file.

Why every lead needs a date

The event date is required, and there's no way round it. In 1pm the lead's event date is the single source of truth for that job: it's what the calendar shows, what the Space double-booking check reads, and what carries onto the booking when the lead converts. A lead with no date can't be checked against anything.

If you genuinely don't know the date for some of your backlog, put your best guess in and correct it on the lead afterwards, or leave those rows out of the file and add them by hand.

Dates: day first or month first

03/04/2027 is 3 April in Australia and the UK, and March 4 in the US. The Dates are written setting says which your file uses: Day first (15/05/2027) or Month first (05/15/2027).

1pm sets it from your file where it can. A date like 15/05/2027 can only be day first, and 05/15/2027 can only be month first, so the first such date decides it, and the line under the setting names it. When every date in the file is 12 or under on both sides, nothing in the file decides it: check the Date as read column in the preview, which shows each date the way it will be imported, such as "Sat 3 Apr 2027". A saved mapping remembers the setting.

Day first, 1pm reads six shapes:

  • 2027-05-15 (year first). Unambiguous, and the one to use if you have the choice.
  • 2027/05/15 (year first, with slashes).
  • 15/05/2027 (day first).
  • 15-05-2027 (day first, with hyphens).
  • 15 May 2027 (short month name).
  • 15 September 2027 (full month name).

Month first, the same shapes are read with the month before the day (05/15/2027, 05-15-2027, May 15 2027, May 15, 2027), and the year-first and 15 May 2027 shapes still work.

A few notes on how strictly those are read. The year is always four digits, from 2000 to 2099, so a typo like 15/05/0227 is caught rather than imported. The year-first shapes need two digits for the month and the day, so 2027-05-15 works and 2027-5-15 is rejected, while the day-first shapes take either, so 5/5/2027 is fine. Month names are English, and the short form is the first three letters: Sep, not Sept.

A date that doesn't read in the order you chose, like 05/15/2027 with Day first, is an error on that row rather than a guess.

Excel is the usual culprit here. If you're not sure what your date column actually contains, format it as text and type the dates as 2027-05-15 before saving.

How leads link to your contacts

If a row's email matches one of your existing contacts, 1pm links the lead to that contact and takes the client's identity from the contact record: their name, business and phone, whatever the CSV says. On those rows a first name isn't required, because the contact already supplies it. The preview says which contact each of those rows is linked to.

That's the same thing that happens when you pick a contact in the Add lead form, and it's why the linked contact becomes the booking's Client contact automatically when the lead converts.

No contacts are created by the import. If a row's email doesn't match anything, the lead is created with the details from the file and no contact record is made. 1pm creates the contact when the lead converts to a booking, which is the point at which you actually know you're dealing with them.

The practical order, if you're migrating both: import your contacts first, then your leads. The lead rows will find the contacts and link themselves.

What counts as a duplicate

A row is skipped as a duplicate only when its email, event date and lead type all match a lead you already have. A row with no email is matched on its phone number instead, with the same date and lead type.

That's a deliberately narrow rule, and it's different from the contacts import. One person is one contact, but the same client can absolutely enquire twice: a March wedding lead and a September corporate lead from the same address are two leads. So only a genuine repeat, the same person about the same date and the same type, is treated as one you already hold.

A few consequences worth knowing:

  • Re-importing the same file is safe. Every row matches what landed the first time and is skipped.
  • The check runs within the file too, so a spreadsheet listing the same lead twice creates one lead, and the preview says which line it repeats.
  • Phone numbers are compared by their digits, so +61 412 000 111 and +61412000111 are the same number. 0412 000 111 and +61 412 000 111 are not, so keep one style through the file.
  • Fixing rejected rows and re-uploading is safe. The rows that imported the first time are skipped, and only the fixed ones are added.
  • Leads in every state count, including ones you've marked lost, archived or spam.

What an imported lead looks like

Imported leads land as qualified, on the Qualified tab, exactly like a lead you add by hand. You've already vetted these by putting them in the file, so they skip the New triage step.

They also get:

  • Your account's default Space, if you've set one. Change it on the lead if a particular job was somewhere else.
  • A reply address, so a later email reply from the client threads onto the lead the normal way.
  • No quote, no booking, no messages. Just the lead.

Saving your choices

If you'll import from the same place again, give your choices a name in Save these choices before you click Import. The columns, the lead type for each value and the whole-file lead type are saved. The next time you upload a file with the same columns, in any order, 1pm picks that mapping for you and says so. You can delete saved mappings on the import page.

The import results

After the import you'll see a results card with the counts: leads imported, rows skipped as duplicates or because of their lead type, and rows with errors.

If any rows had errors, expand View errors to see the line number and reason for each one. The line numbers match your file, counting the header as line 1, so you can fix the original and re-upload. The list shows the first 200 rows with errors, and when there are more its last line says how many more rows had problems.

The write is all or nothing. If something goes wrong while the leads are being saved, none of them are, and the page says so. Rows rejected individually for a validation error are different: the good rows still import, and only the broken ones are reported back.

Refreshing the results page doesn't import the file a second time. An uploaded file that you never import is deleted after 2 days, and a file is deleted as soon as it has been imported.

Undoing an import

An import can be undone for 7 days, from the results card straight after importing or from Recent imports on the import page. It deletes the leads the import created, unless something has happened to them since: they've been moved, replied to, quoted, converted or edited. Opening a lead to read it doesn't count. Those are kept, and the message after the undo says how many.

An import can be undone once.

Common gotchas

  • The first row must be headers. A file that starts with data has its first lead read as a header row and every column matched wrongly.
  • Columns are separated by commas. A file saved with semicolons or tabs between columns is refused with a message saying which one it uses. Save it as comma-separated (CSV) and upload it again.
  • Check the dates as read. If the Date as read column shows the wrong month, change Dates are written. See the dates section above.
  • Phone numbers can't contain words. "ext 12", "(mob)" and "call after 5" all fail the row.
  • A file can have up to 100 columns and be up to 1 MB, which is a few thousand leads. If you're over that, split the file and upload it in two goes.
  • Excel's "CSV" and "CSV UTF-8" formats both import with accented names intact.

What import doesn't cover

The import handles the essentials: who, when, how many, what type, what they asked for. It deliberately doesn't carry:

  • Status history. Everything lands qualified. If some of your backlog is already won or lost, mark those after the import. If it's already booked, the bookings import brings it in as a booking instead.
  • Start and end times. Add them on the lead, or when it converts.
  • Custom field answers, the ones your lead forms collect.
  • Message threads. Past correspondence stays wherever it is now; the message is your one place to record the gist.

When import isn't the right tool

For one or two leads, Add lead on the Leads page is faster than building a file. Import earns its keep when you're moving a real backlog in, or when somebody hands you a spreadsheet of leads from a wedding fair.

Still stuck after reading this? Open a help ticket and we'll answer your specific question.