Getting Started

Importing customers via CSV

How to upload a CSV file of customer data — field requirements, column mapping, and validation.

When to use CSV import

CSV import is the right choice when you don't use Shopify or WooCommerce, or when you want to supplement your existing store data with additional customer information from another source (e.g., a CRM export).

ℹ️
CSV import is available on all plans. Files up to 100MB (~5 million rows) are supported. UTF-8 encoding is recommended; Latin-1 is also accepted.

Required fields

Your CSV must include at least one of:

  • email — Customer email address (recommended identifier)
  • customer_id — Your internal unique customer identifier

Optional fields (improve model accuracy)

Field nameFormatImpact on models
first_nameTextPersonalisation in reports
last_nameTextPersonalisation in reports
total_spentNumber (e.g. 149.99)CLV, RFM monetary score
order_countIntegerRFM frequency score
last_order_dateYYYY-MM-DD or MM/DD/YYYYChurn recency, win-back timing
first_order_dateYYYY-MM-DDCLV, cohort retention
phoneE.164 or local formatSMS export matching

Starting the import

Go to Settings → Data → Import. You can drag and drop your file or click to browse. LiftSignals auto-detects the column separator (comma, tab, semicolon).

Column mapping

After uploading, LiftSignals automatically maps your CSV column headers to LiftSignals fields. You'll see a mapping table showing what was detected and what will be skipped. You can adjust any mapping that looks wrong before proceeding.

Columns LiftSignals can't recognise are shown in amber and default to "Skip". You can manually map them to the correct field using the dropdown.

Validation and preview

Before importing, LiftSignals shows you a preview of the first 5 rows and a validation summary: how many rows will import cleanly, how many will be skipped (missing email), and how many have warnings (unparseable dates).

Download the full validation report as CSV to see exactly which rows have issues before committing to the import.

Duplicate handling

If a customer with the same email address already exists in LiftSignals, the new data is merged — it does not create a duplicate. The newer data takes precedence for fields like total_spent and order_count.

Was this article helpful?