Skip to content

Importing Contacts

Import your existing contact lists into TextFlow using CSV, XLS, XLSX, or TXT files. This guide walks you through the import process step-by-step.

Required Fields:

  • Phone Number: 10-11 digits (e.g., 4165551234 or 14165551234)
  • First Name: Contact’s first name

Optional Fields:

  • Last Name
  • Email Address
  • Business/Company Name
  • Tags (comma-separated)
  • Contact Type

TextFlow accepts CSV files without headers. Each row should contain contact information in this order:

phone,firstName,lastName,email,business,tags

Example CSV:

4165551234,Jane,Smith,jane@example.com,ABC Company,vip
6475551234,Bob,Johnson,bob@example.com,XYZ Corp,prospect
4165555678,Alice,Williams,,Tech Solutions,customer

Accepted Formats:

  • 4165551234 (10 digits)
  • 14165551234 (11 digits with country code)
  • 6475551234 (10 digits, different area code)

Not Accepted:

  • (416) 555-1234 (formatting characters)
  • 416-555-1234 (hyphens)
  • +1 416 555 1234 (spaces and plus sign)

TextFlow will automatically:

  • Add +1 country code if missing
  • Format for display as +1 (416) 555-1234
  • Validate phone number length

There are two ways to import contacts:

Method 1: From Contact List

  1. Click Contacts in the navigation
  2. Select a list from the sidebar
  3. Click the Import button next to the list name

Method 2: From Contacts Page

  1. Click Contacts in the navigation
  2. Select a list
  3. Click the Import button at the top of the contacts table

Import Contacts Modal

Upload Your CSV:

  1. Click “Choose Files” or drag and drop your CSV file onto the upload area
  2. Supported formats: CSV, XLS, XLSX, TXT
  3. Maximum file size: 10 MB
  4. File name will appear once uploaded

What Happens:

  • TextFlow reads your file
  • Parses contact data
  • Validates phone numbers
  • Counts total valid contacts

After uploading, TextFlow shows:

Import Summary:

  • Total Contacts: Number of rows in your file
  • Valid Contacts: Contacts with valid phone numbers and first names
  • Invalid Contacts: Rows that will be skipped (missing required fields)

Preview Table:

  • Shows first 5-10 contacts
  • Displays how data will be imported
  • Highlights any validation issues
  1. Review the contact count: “Import X Contacts”
  2. Click Import X Contacts button
  3. Import process begins

During Import:

  • Progress indicator shows number of contacts processed
  • Duplicates are automatically detected
  • Invalid phone numbers are skipped

After import completes:

Success Message:

  • “Successfully imported X contacts”
  • Shows number of contacts added
  • Lists number of duplicates skipped

Contacts Appear:

  • In the selected list
  • Immediately available for campaigns
  • Searchable and filterable

Duplicates are identified by phone number only:

  • If phone number exists: Contact is skipped
  • Name/email differences don’t matter
  • Applies across ALL lists (global deduplication)

Example:

Existing: 4165551234, Jane Smith, jane@example.com
Import: 4165551234, Jane Doe, janedoe@example.com
Result: SKIPPED (phone number already exists)

During Import:

  1. Skip Duplicates (Default)

    • Existing contacts remain unchanged
    • Duplicate rows are not imported
    • Import summary shows “X duplicates skipped”
  2. Update Existing (If available)

    • Updates existing contact with new information
    • Keeps existing phone number
    • Merges into additional lists if specified

TextFlow validates every phone number:

Valid:

  • ✅ Exactly 10 or 11 digits
  • ✅ North American numbers (USA/Canada)
  • ✅ Area codes: 416, 647, 905, 437, etc.

Invalid (Skipped):

  • ❌ Less than 10 digits
  • ❌ More than 11 digits
  • ❌ Contains letters or special characters
  • ❌ International numbers outside North America

Auto-Corrections:

  • Removes spaces, hyphens, parentheses
  • Adds +1 country code if missing
  • Standardizes to E.164 format

First Name:

  • Required field
  • Must not be empty
  • Maximum 50 characters

Last Name:

  • Optional
  • Maximum 50 characters
  • Can be blank

Format Check:

  • Must contain @ symbol
  • Must have domain (e.g., example.com)
  • Invalid emails are skipped (contact still imported if phone/name valid)

Examples:

  • jane@example.com
  • bob.smith@company.co.uk
  • invalid-email (skipped)
  • missing@domain (skipped)
Limit TypeMaximum
File Size10 MB
Contacts per Import50,000 rows
Columns10 columns

Rate Limits:

  • 5 imports per hour per user
  • 10 imports per day per organization

Why Limits Exist:

  • Prevents accidental duplicate imports
  • Protects system performance
  • Ensures data quality

Problem: CSV has no contacts with required fields

Solutions:

  • Verify first column is phone number
  • Ensure second column is first name
  • Check that phone numbers are 10-11 digits
  • Remove any completely blank rows

Problem: All contacts in CSV already exist in TextFlow

Solution:

  • Export existing contacts to compare
  • Check if this is an accidental re-import
  • If updating info, edit contacts manually or delete and re-import

Problem: Phone numbers contain formatting or are wrong length

Solutions:

  • Remove parentheses, hyphens, spaces from phone numbers in CSV
  • Ensure exactly 10 or 11 digits per number
  • Use Excel’s Find & Replace feature to remove formatting characters

Problem: CSV exceeds 10 MB limit

Solutions:

  • Split into multiple smaller files
  • Remove unnecessary columns
  • Delete test/dummy data
  • Compress file (ZIP not supported - must upload uncompressed CSV)

Problem: Temporary server issue

Solutions:

  • Wait 1-2 minutes and retry
  • Check internet connection
  • Try a smaller batch (500-1000 contacts)
  • Contact support if persists
  1. Clean Your Data

    • Remove duplicate phone numbers in Excel
    • Delete test/dummy contacts
    • Verify phone number format (10-11 digits, numbers only)
    • Check for typos in names
  2. Export First

    • Export existing TextFlow contacts
    • Compare with import file
    • Identify true duplicates vs. new contacts
  3. Test with Small Batch

    • Import 5-10 contacts first
    • Verify data appears correctly
    • Check formatting and field mapping
    • Then import full list
  4. Backup Your CSV

    • Save original CSV file
    • Keep a copy before making changes
    • Easier to fix errors and re-import
  1. Verify Contact Count

    • Check list shows expected number of contacts
    • Account for duplicates skipped
    • Review import summary message
  2. Spot Check Data

    • Open 5-10 random contacts
    • Verify names, emails, tags are correct
    • Look for any formatting issues
  3. Check for Opt-Outs

    • Filter to show opted-out contacts
    • Some numbers may already be on opt-out list
    • These contacts cannot receive campaigns
  4. Test a Small Campaign

    • Before messaging entire list
    • Send to yourself or small test group
    • Verify message renders correctly

Cleaning Phone Numbers:

  1. Select phone number column
  2. Find & Replace (Ctrl+H):
    • Find: ( Replace with: (nothing)
    • Find: ) Replace with: (nothing)
    • Find: - Replace with: (nothing)
    • Find: (space) Replace with: (nothing)
  3. Format as Text (not Number) to preserve leading zeros

Removing Duplicates:

  1. Select all data
  2. Data → Remove Duplicates
  3. Choose “Phone Number” column
  4. Click OK

Adding Country Code:

  • If your numbers are 10 digits, add “1” at the beginning
  • Example: 4165551234 becomes 14165551234
  • TextFlow accepts both 10-digit and 11-digit formats

Include tags in your CSV to automatically organize contacts:

4165551234,Jane,Smith,jane@example.com,ABC Company,vip;toronto;customer
6475551234,Bob,Johnson,bob@example.com,XYZ Corp,prospect;vancouver

Tag Format:

  • Semicolon-separated: tag1;tag2;tag3
  • Or comma-separated: tag1,tag2,tag3
  • Tags are created automatically if they don’t exist
  • Case-insensitive (toronto = Toronto)

To add contacts to multiple lists during import:

  1. Import to first list
  2. Export those contacts
  3. Import same CSV to second list
  4. TextFlow adds existing contacts to new list (doesn’t duplicate)

Result: Contacts appear in both lists

When importing contacts, ensure you have:

Express Consent:

  • Contact explicitly agreed to receive messages
  • Document how/when consent was obtained
  • Keep records for 3 years (CASL requirement)

Implied Consent:

  • Existing business relationship
  • Recent purchase (within 2 years)
  • Inquiry within 6 months

After import, add consent details:

  1. Select imported contacts
  2. Bulk Actions → Update Consent
  3. Choose consent type (Express/Implied)
  4. Enter consent date
  5. Note consent method (web form, in-person, etc.)

Check:

  • Filter settings (may be hiding contacts)
  • Opted-out status (may be on opt-out list)
  • Duplicate detection (may have skipped all)
  • Import summary for actual count imported

Solution:

  • Clear all filters
  • Check “All Contacts” view
  • Review import error log

Common Reasons:

  • Invalid phone numbers (not 10-11 digits)
  • Missing first name
  • Duplicate phone numbers
  • Invalid email format (contact skipped entirely)

Solution:

  • Export contacts that failed (if error log available)
  • Fix data issues in original CSV
  • Re-import corrected file

Problem: Names appear in email field, emails in business field, etc.

Cause: CSV columns in wrong order

Solution:

  1. Delete incorrectly imported contacts
  2. Rearrange CSV columns to match required order:
    phone, firstName, lastName, email, business, tags
  3. Re-import corrected CSV

Problem: Tags column ignored during import

Solution:

  • Verify tag syntax: tag1;tag2;tag3 or tag1,tag2,tag3
  • Check for typos in tag names
  • Manually add tags to imported contacts after import

After successfully importing contacts:


Successful contact imports are the foundation of effective SMS campaigns. Take time to clean your data before importing for best results!