Skip to content

Importing Contacts

PrimoCRM’s migration engine imports your existing audience from a CSV file, with column mapping, duplicate handling, and an import you can undo.

  1. Go to Contacts and click Import.
  2. Source: choose CSV File. (The other source, WordPress Users, imports the users of this site by role.)
  3. Upload your CSV.
  4. Map columns: match each CSV column to a contact field. Email is required; map the rest to first name, last name, or a custom field.
  5. Options:
    • Assign to Lists and Assign Tags apply to everyone in this import.
    • New Contact Status is used when the CSV has no status column mapped. It defaults to Subscribed.
    • Enrich Existing Contacts: when an email already exists, choose whether to fill in that contact’s empty fields from the CSV. Either way, existing data is never overwritten, and existing contacts are still added to the lists and tags you picked.
  6. Click Import.
  • Use a header row with clear column names.
  • Include one column for email. This is the only required column.
  • Use UTF-8 encoding so names and accents import cleanly.
  • One contact per row.

A minimal example:

email,first_name,last_name,company
ada@example.com,Ada,Lovelace,Analytical Engines
grace@example.com,Grace,Hopper,Navy

The import works through the file in short steps, each one well inside your host’s time limit, so a big file does not time out. Keep the window open while the progress bar moves. If a step gets no answer, for example because of a dropped connection or a busy server, PrimoCRM sends it again automatically. Every step is safe to repeat, so a retry never adds a contact twice.

Existing contacts are matched by email, never duplicated.

When an import finishes, Undo Import reverses it: everything the import added is removed, and contacts that already existed are left untouched. If an import stops part-way, PrimoCRM tells you how many contacts went in and offers Undo Import for those. Importing the same file again skips the contacts that are already there.

Very large CSVs can exceed your server’s PHP upload limits, upload_max_filesize and post_max_size. A file larger than post_max_size is discarded by PHP before it reaches PrimoCRM, and the importer reports the exact limit it saw.

To fix it, either:

  • ask your host to raise post_max_size and upload_max_filesize (see Requirements), or
  • split the CSV into smaller files and import them one after another.
  • Check a few contacts to confirm fields mapped correctly.
  • Review the applied lists and tags.
  • If something mapped wrong, click Undo Import, fix the mapping, and import again.

Moving from FluentCRM or another tool keeps more than a plain CSV can. See From Another CRM.