PlainFunnels Categories

Home / Categories / Contacts

What is the safest way to import an old list?

Short answer

Clean the file first, bring it in as a UTF-8 CSV with tags applied during the import, then leave it 24 to 48 hours before sending anything to it.

What the importer will take

  • CSV only. systeme.io states it accepts CSV file formats and nothing else. An Excel file has to be saved out as CSV first.
  • UTF-8 encoding, or accented characters arrive corrupted.
  • A delimiter you declare. The import screen has a Select CSV delimiter box offering comma, semicolon or pipe. It has to match the file.
  • Clearly labelled columns, such as First Name, Last Name, Email, Tags and Registration Date.
  • An email column. Required, because it is the primary identifier for each contact.

What to do to the file first

This is the part that decides whether the import causes damage, and all of it happens before systeme.io is opened.

  • Export from the old tool as CSV, then look at what came with it: names, status, registration date, tags, interaction history.
  • Take out duplicates, invalid addresses and repeated emails, so one person does not become several entries.
  • Take out generic or suspicious addresses. systeme.io names test@test.com and admin@domain.com as examples.
  • Leave unsubscribed and inactive people unsubscribed. systeme.io is explicit that their status is not to be reactivated.
  • Keep the opt-in proof. Only addresses that gave explicit consent belong in the file, and systeme.io states that as a requirement of the import rather than a suggestion.
  • Keep a copy of the original list before anything is uploaded.

Unsubscribed contacts can still be brought across, as long as they carry the Unsubscribed status. Select them after the import, open More actions, and choose Unsubscribe from marketing emails. They stay in the account and receive nothing.

The import itself

  1. Go to Contacts under the CRM tab and click Import contacts.
  2. Set the CSV delimiter, then select the file.
  3. Pick a tag to assign to everyone in this file, then click Next.
  4. Set the data type of every column, so each one lands in the right field.
  5. Click Import.

Two things are worth setting while that screen is open, because doing them afterwards is far more work.

  • A source tag. Something like migration_2026, so the imported people can be told apart later.
  • Custom fields. Any column that belongs in a custom field has to be pointed at it during the mapping step.

Picking up a sequence where the old tool left off

The import screen has a Campaign (optional) dropdown that subscribes everyone in the file to a campaign. Using it adds two more columns to map, and both are mandatory when it is used.

  • Select last sent email number column: which step of the old sequence each person had reached.
  • Select last sent email date column: when they received it.

Read the report

systeme.io produces a summary of the contacts imported successfully and any errors, and asks for it to be analysed carefully, because a mismapped column means lost data.

The rule that catches people out

Do not send a campaign to the list the moment the import finishes. systeme.io asks for 24 to 48 hours for its servers to process new contacts, and says to avoid a massive campaign immediately after an import.

For thousands of contacts it also asks for the import to be split into batches rather than done in one go. Its own table of migration errors gives the same fix against a spam risk: migrate in batches and test first.

Students are their own case

Adding a student to a course sends an automatic email with the link to the member area. Importing a batch of old students therefore triggers those emails. systeme.io asks for a gradual import when those people have not heard from the business in a while, to avoid mass bounces.

Did this answer your question?