CSV Format
Required Column
| Column | Description | Example |
|---|---|---|
phone_number or phone or msisdn | Contact phone number | +14155551234 or 4155551234 |
Optional Columns
| Column | Description | Example |
|---|---|---|
label_* | Any column prefixed with label_ becomes a label | label_source=facebook |
email | Email address (stored but not used for SMS) | [email protected] |
first_name | Contact first name | John |
last_name | Contact last name | Doe |
Example CSV
Import Process
Prepare Your CSV
Create a CSV file with phone numbers and optional labels. Ensure numbers are valid.
Phone Number Normalization
The import process automatically handles various phone number formats:| Input | Normalized |
|---|---|
4155551234 | +14155551234 |
(415) 555-1234 | +14155551234 |
415-555-1234 | +14155551234 |
+1 415 555 1234 | +14155551234 |
14155551234 | +14155551234 |
Numbers are assumed to be US (+1) unless they include a country code.
Duplicate Handling
When importing contacts that already exist:| Scenario | Behavior |
|---|---|
| Contact exists on this list | Labels are merged (new values override) |
| Contact exists on different list | Added to this list with specified labels |
| Contact previously opted-out | Skipped (opt-out is permanent) |
| New contact | Created and subscribed |
Import Limits
| Plan | Max Contacts per Import |
|---|---|
| Starter | 10,000 |
| Growth | 100,000 |
| Enterprise | Unlimited |
Import Validation
Each contact is validated during import:Validation Rules
| Rule | Invalid Example | Result |
|---|---|---|
| Valid phone format | abc123 | Skipped |
| Number length | 415555 | Skipped |
| Not a landline | Landline numbers | Skipped |
| Not on blocklist | Previously blocked | Skipped |
Import Report
After import, you receive a report showing:Triggering Welcome Journeys
When importing contacts, you can optionally enroll them in a welcome journey.
- Check Enroll in Journey
- Select the journey
- Imported contacts begin the journey immediately
Best Practices
Validate before importing
Validate before importing
Clean your CSV before importing. Remove obviously invalid numbers and test a small batch first.
Use consistent label naming
Use consistent label naming
Establish label naming conventions (e.g.,
source, campaign, cohort) and use them consistently across imports.Include source labels
Include source labels
Always include a
label_source indicating where contacts came from. This helps with attribution and analysis.Don't re-import opted-out contacts
Don't re-import opted-out contacts
Opted-out contacts cannot be resubscribed via import. This is by design for compliance.
Troubleshooting
Import stuck at 0%
Import stuck at 0%
Large imports can take time to start. Wait a few minutes. If still stuck, check file encoding (use UTF-8).
High skip rate
High skip rate
Check the skip reasons in the report. Common issues: invalid format, numbers already opted-out, landlines.
Labels not appearing
Labels not appearing
Ensure label columns are prefixed with
label_ (e.g., label_source, not just source).Wrong country code
Wrong country code
If numbers are non-US, include the full E.164 format with country code in the CSV.