Import Contacts

Learn how to import contacts into Waflow using CSV files, including file format requirements, column mapping, and error handling.

7 min read

Importing contacts from CSV files is the fastest way to add your audience to Waflow. This guide covers file preparation, the import process, column mapping, validation, and error handling.

Preparing Your CSV File#

Required Format#

Your CSV file must meet these requirements:

Requirement Details
File type CSV (Comma-Separated Values)
Encoding UTF-8 (recommended) or UTF-16
Size limit 10 MB per file (up to 100,000 rows)
Header row First row must contain column names
Phone column Required - contains phone numbers

Phone Number Format#

Phone numbers must include the country code:

Format Valid? Notes
+14155551234 Yes Recommended format
14155551234 Yes Will add + automatically
+1 415 555 1234 Yes Spaces removed automatically
+1-415-555-1234 Yes Dashes removed automatically
(415) 555-1234 No Missing country code
4155551234 No Missing country code

Tip Always include the country code to avoid ambiguity. "4155551234" could be a US number or part of another country's number.

Sample CSV File#

Here's an example of a properly formatted CSV:

phone,first_name,last_name,email,company,purchase_date,customer_type
+14155551234,John,Doe,[email protected],Acme Corp,2024-01-15,vip
+14155555678,Jane,Smith,[email protected],Tech Inc,2024-02-20,regular
+442071234567,Bob,Wilson,[email protected],London Ltd,2024-03-10,new
+919876543210,Priya,Kumar,[email protected],Mumbai Co,2024-04-05,vip

Column Naming#

Use clear, consistent column names:

Good Names Avoid
phone, phone_number Column1, A
first_name, firstName name1
email, email_address contact
purchase_date date

Waflow will attempt to auto-match common column names.

Download Sample Template#

Get a properly formatted template:

  1. Go to Contacts > Import
  2. Click Download Sample Template
  3. Open in your spreadsheet application
  4. Replace sample data with your contacts
  5. Save as CSV

The template includes all default fields plus example custom fields.

Import Process#

Step 1: Start Import#

  1. Go to Contacts in the sidebar
  2. Click Import button
  3. Select CSV Import

Step 2: Upload File#

  1. Drag and drop your CSV file, or click to browse
  2. Wait for the file to upload and parse
  3. Waflow will preview the first few rows

If your file has encoding issues, try:

  • Saving as UTF-8 in your spreadsheet application
  • Selecting UTF-16 encoding option in Waflow

Step 3: Map Columns#

Waflow displays your CSV columns and asks you to map them to Waflow fields:

┌─────────────────────────────────────────────────────────────────┐
│ Map Your Columns                                                 │
├─────────────────────────────────────────────────────────────────┤
│ CSV Column         →    Waflow Field                            │
├─────────────────────────────────────────────────────────────────┤
│ phone              →    [Phone Number ▼]        (Required)      │
│ first_name         →    [First Name ▼]                          │
│ last_name          →    [Last Name ▼]                           │
│ email              →    [Email ▼]                               │
│ company            →    [Company ▼]                             │
│ purchase_date      →    [+ Create Custom Field]                 │
│ customer_type      →    [Import as Tag ▼]                       │
└─────────────────────────────────────────────────────────────────┘

For each CSV column, select:

  • Waflow field: Map to an existing field
  • Create custom field: Create a new field for this data
  • Import as tag: Convert values to tags
  • Do not import: Skip this column

Auto-Matching#

Waflow automatically matches common column names:

CSV Column Auto-Matched To
phone, mobile, whatsapp Phone Number
first_name, firstname, first First Name
last_name, lastname, last Last Name
email, email_address Email
company, organization, org Company

Review auto-matches and correct if needed.

Step 4: Configure Options#

Set import behavior options:

Duplicate Handling#

Choose what happens when a phone number already exists:

Option Behavior
Skip duplicates Keep existing contact, ignore import row
Update duplicates Merge import data into existing contact
Replace duplicates Overwrite existing contact with import data

Tip Use "Update duplicates" to enrich existing contacts with new data without losing information.

Tag Options#

Optionally add tags to all imported contacts:

  • Enter tag names separated by commas
  • Tags are created if they don't exist
  • Useful for tracking import batches (e.g., "import-dec-2024")

Empty Value Handling#

Choose how to handle empty cells:

Option Behavior
Keep empty Set field to empty/null
Keep existing Don't overwrite if updating
Use default Apply a default value

Step 5: Preview and Validate#

Before importing, Waflow shows:

Import Summary#

  • Total rows in file
  • Valid rows (will be imported)
  • Invalid rows (will be skipped)
  • Duplicate rows (based on your setting)

Sample Preview#

First 5 rows as they will appear in Waflow:

┌────────────────────────────────────────────────────────────┐
│ Preview (first 5 contacts)                                  │
├────────────────────────────────────────────────────────────┤
│ Phone          Name          Email           Tags          │
│ +14155551234   John Doe      [email protected]     vip           │
│ +14155555678   Jane Smith    [email protected]     regular       │
│ +442071234567  Bob Wilson    [email protected]    new           │
│ +919876543210  Priya Kumar   [email protected]     vip           │
│ ...                                                        │
└────────────────────────────────────────────────────────────┘

Validation Errors#

Review any validation issues:

Error Type Example Resolution
Invalid phone Missing country code Fix in CSV and re-upload
Invalid email Bad format Fix or skip the column
Missing required Empty phone field Fix or remove the row
Invalid date Wrong date format Use YYYY-MM-DD format

Step 6: Import#

  1. Review the summary and preview
  2. Click Start Import
  3. Wait for the import to complete

Progress is shown in real-time:

Importing contacts...
████████████████████░░░░░░░░░░ 67%
6,700 of 10,000 contacts imported

Large imports may take several minutes. You can navigate away; the import continues in the background.

Step 7: Review Results#

After import completes:

┌─────────────────────────────────────────────────────────────────┐
│ Import Complete                                                  │
├─────────────────────────────────────────────────────────────────┤
│ ✓ 9,850 contacts imported successfully                          │
│ ↻ 100 contacts updated (duplicates)                             │
│ ✗ 50 rows skipped (errors)                                      │
├─────────────────────────────────────────────────────────────────┤
│ [Download Error Report]  [View Imported Contacts]  [Done]       │
└─────────────────────────────────────────────────────────────────┘

Download the error report to see which rows failed and why.

Error Report#

The error report is a CSV containing:

Column Description
row_number Original row in your CSV
phone Phone number (if valid)
error_type Category of error
error_message Detailed explanation
original_data The original row data

Common Errors#

Invalid Phone Number#

Row 45: +123 - Invalid phone number format

Cause: Number doesn't match any valid country code pattern

Fix: Verify the number and country code

Duplicate Phone Number#

Row 102: +14155551234 - Duplicate phone number (skipped)

Cause: This number already exists in your contacts

Fix: Change duplicate handling to "Update" if you want to merge data

Invalid Email Format#

Row 78: john@example - Invalid email address

Cause: Email doesn't contain a valid domain

Fix: Correct the email or leave empty

Date Format Error#

Row 156: 15/01/2024 - Invalid date format, use YYYY-MM-DD

Cause: Date is not in the expected format

Fix: Convert dates to YYYY-MM-DD format (2024-01-15)

Field Type Mismatch#

Row 203: "abc" - Expected number for field 'age'

Cause: Value doesn't match the custom field type

Fix: Ensure values match field types (numbers for number fields, etc.)

Fixing and Re-importing#

If many rows failed:

  1. Download the error report
  2. Open your original CSV
  3. Fix the issues identified
  4. Save the corrected file
  5. Import again

Use "Skip duplicates" on re-import to avoid creating duplicates of successfully imported contacts.

Import Limits#

Plan Contacts per Import Imports per Day
Starter 5,000 3
Professional 25,000 10
Business 100,000 Unlimited
Enterprise Unlimited Unlimited

For very large imports (500k+), contact support for batch processing.

Import History#

View past imports:

  1. Go to Contacts > Import History
  2. See list of all imports
  3. Click any import to view:
    • Import date and time
    • Number of contacts imported
    • Settings used
    • Error report (if any)

Best Practices#

Before Import#

  1. Clean your data: Remove duplicates, fix formatting
  2. Validate phone numbers: Ensure country codes are present
  3. Standardize formats: Consistent date formats, capitalization
  4. Backup your CSV: Keep the original file
  5. Test with a small batch: Import 10-20 contacts first

Column Mapping#

  1. Map all relevant columns: Don't skip valuable data
  2. Create custom fields for unique data points
  3. Use tags strategically: Import categories as tags
  4. Review auto-mapping: Verify automatic matches

Duplicate Handling#

Scenario Recommended Setting
First import ever Skip (no duplicates expected)
Regular sync from CRM Update (merge new data)
Complete data refresh Replace (overwrite old data)
Uncertain source Skip (safe option)

Large Imports#

For imports over 10,000 contacts:

  1. Split into multiple files
  2. Import during off-peak hours
  3. Monitor import progress
  4. Review error reports promptly

Automation via API#

For regular imports, consider the API:

# Upload and import a file
curl -X POST https://api.waflow.com/v1/contacts/import \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "duplicate_handling=update" \
  -F "tags=crm-sync"

See API Documentation for details.

Troubleshooting#

File Won't Upload#

  • Check file size (under 10 MB)
  • Verify it's a .csv file
  • Try a different browser
  • Check your internet connection

Encoding Issues (Special Characters)#

If names show as "é" instead of "e":

  1. Open CSV in a text editor (not Excel)
  2. Save as UTF-8 encoding
  3. Re-upload

All Rows Failing#

  • Check that phone column is correctly mapped
  • Verify phone numbers have country codes
  • Look for invisible characters (copy/paste issues)

Import Stuck#

  • Refresh the page and check import history
  • Import may still be processing in background
  • Contact support if stuck for more than 30 minutes

Next Steps#

After importing contacts:

Was this page helpful?