Level 2: Advanced Import/Export
Level 2: Advanced Import/Export
Advanced Import Options
Field Mapping Strategies
Auto-Mapping Rules:
auto_mapping:
exact_match:
- email โ email
- first_name โ firstName
- firstname โ firstName
- fname โ firstName
fuzzy_match:
- company_name โ company (80% similarity)
- org โ company
- organization โ company
custom_field_detection:
- pattern: custom_*, cf_*
- create_if_missing: true
Manual Mapping:
Custom Field Mapping:
CSV Column: "annual_revenue"
โ Map to: [Create New Custom Field]
Field Name: annual_revenue
Field Type: โ Text โ Number โ Date โ Boolean
Validation: Min: 0, Max: 1000000000
CSV Column: "subscription_tier"
โ Map to: [Create New Custom Field]
Field Name: subscription_tier
Field Type: โ Text โ Select โ Multi-Select
Options: Free, Starter, Pro, Enterprise
Transformation Rules:
transformations:
phone:
normalize: true # (555) 123-4567 โ +15551234567
default_country: US
tags:
delimiter: "|" # or "," or ";"
trim_whitespace: true
lowercase: true
custom_dates:
format: "MM/DD/YYYY" # or "YYYY-MM-DD", "DD-MM-YYYY"
timezone: "America/New_York"
company:
title_case: true # "acme inc" โ "Acme Inc"
Validation Rules
Email Validation:
email_validation:
syntax_check: true
mx_record_validation: true # Verify domain exists
disposable_email_detection: true
role_based_detection: true # info@, support@, etc.
actions:
invalid_syntax: reject
no_mx_record: warn
disposable: warn
role_based: accept
Duplicate Detection:
duplicate_detection:
match_on:
- email # Primary key
fuzzy_match:
- first_name + last_name + company
- phone
similarity_threshold: 85% # 85% match = duplicate
resolution_strategy:
- skip_new
- update_existing
- merge_fields
- create_new
Data Validation:
field_validation:
phone:
pattern: "^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$"
required: false
company:
min_length: 2
max_length: 200
lead_score:
type: integer
min: 0
max: 100
custom_fields:
validate_type: true
enforce_required: true
Merge Strategies
Update Existing Contacts:
When duplicate email found:
Strategy: Smart Merge
โ Keep existing values (skip import)
โ Update with new values (overwrite)
โ Merge non-empty values (fill blanks)
โ Create duplicate contact
Per-Field Strategy:
Email: [Keep existing]
First Name: [Update if blank]
Last Name: [Update if blank]
Company: [Always update]
Tags: [Append (merge)]
Custom Fields: [Update if blank]
Lead Score: [Keep existing]
Conflict Resolution:
conflict_resolution:
email:
action: keep_existing # Never overwrite
name:
action: update_if_blank
tags:
action: merge
custom_fields:
action: update_if_newer
criteria: updated_at timestamp
lead_score:
action: keep_higher_value
Advanced Export Options
Filtered Exports
Export by Segment:
Export Contacts
Segment: Hot Leads (Score 75+)
Filters:
โ Lead Score: 75-100
โ Last Activity: Within 30 days
โ Subscription: Active
โ Exclude: Bounced emails
Result: 1,247 contacts
Export by Date Range:
Export Contacts Added:
From: 2025-10-01
To: 2025-10-31
Includes: 3,450 contacts
Export by Custom Criteria:
Advanced Filter:
Country = "United States"
AND Company Size รขโฐยฅ "51-200"
AND Lead Score > 50
AND Tags contains "enterprise"
Result: 892 contacts
Custom Field Selection
Select Fields to Export:
Standard Fields:
โ Email
โ First Name
โ Last Name
โ Company
โ Phone
โ Created Date
โ Last Activity
โ Lead Score
โ Tags
โ Internal Notes
Custom Fields:
โ Industry
โ Company Size
โ Annual Revenue
โ Account Type
โ Trial End Date
Engagement Metrics:
โ Total Emails Sent
โ Total Opens
โ Total Clicks
โ Last Opened Date
โ Average Open Rate
โ Average Click Rate
Segments:
โ Active Segments (comma-separated)
Export Formats
CSV Export:
email,first_name,last_name,company,phone,lead_score,tags,industry,created_at
john@example.com,John,Doe,Acme Inc,+15551234567,87,"customer,vip",SaaS,2025-10-15T14:30:00Z
Excel Export (.xlsx):
Features:
- Multiple sheets (Contacts, Custom Fields, Segments)
- Formatted headers
- Data validation
- Freeze panes
- Auto-filter enabled
JSON Export:
[
{
"email": "john@example.com",
"firstName": "John",
"lastName": "Doe",
"company": "Acme Inc",
"phone": "+15551234567",
"leadScore": 87,
"tags": ["customer", "vip"],
"customFields": {
"industry": "SaaS",
"companySize": "51-200"
},
"segments": ["Hot Leads", "Enterprise Tier"],
"createdAt": "2025-10-15T14:30:00Z",
"lastActivityAt": "2025-11-24T10:15:00Z"
}
]
Import History & Rollback
View Import History
Import History
Date User File Status Records
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2025-11-25 14:30 Sarah Johnson contacts_nov.csv รขลโ Success 4,892
2025-11-18 09:15 Michael Chen leads_q4.xlsx รขลโ Success 2,341
2025-11-10 16:45 Sarah Johnson trial_users.csv รขลกย Partial 1,450 / 1,500
2025-11-03 11:20 Emily Davis webinar_list.csv รขลโ Failed 0 / 850
2025-10-28 13:00 Sarah Johnson october_leads.csv รขลโ Success 3,210
[View Details] [Download Report] [Rollback]
Import Details
Import Details: contacts_nov.csv
Imported: 2025-11-25 14:30:42
User: Sarah Johnson
Summary:
File: contacts_nov.csv (2.5 MB)
Total Rows: 5,000
Imported Successfully: 4,892 (97.8%)
- New Contacts: 4,460
- Updated Existing: 432
Skipped (Errors): 13 (0.3%)
- Invalid Email: 13
Skipped (Duplicates): 95 (1.9%)
Mapping:
email โ Email Address
first_name โ First Name
last_name โ Last Name
company โ Company
tags โ Tags
Tags Added:
- imported_2025_11
- bulk_upload
Segment Created:
- "November Import" (4,892 contacts)
[Download Error Report] [Rollback Import]
Rollback Import
Rollback Import: contacts_nov.csv
รขลกย Warning: This will:
- Delete 4,460 contacts created by this import
- Restore 432 contacts to their previous state
- Remove tags: imported_2025_11, bulk_upload
- Delete segment: "November Import"
This action CANNOT be undone.
Confirm rollback:
โ I understand this will delete 4,460 contacts
โ I have exported a backup
[Cancel] [Confirm Rollback]
Scheduled Imports
Automated CSV Import:
scheduled_import:
name: "Daily Salesforce Export"
source:
type: sftp
host: sftp.example.com
path: /exports/contacts_daily.csv
credentials: salesforce_sftp
schedule:
frequency: daily
time: "02:00" # 2 AM
timezone: "America/New_York"
mapping:
auto_detect: true
mappings:
Id: external_id
Email: email
FirstName: firstName
LastName: lastName
Company: company
options:
duplicate_strategy: update_existing
add_tag: "salesforce_sync"
notification_email: admin@example.com
API Import Automation:
// Sync from external CRM daily
cron.schedule('0 2 * * *', async () => {
const contacts = await externalCRM.fetchNewContacts();
await importContacts({
contacts,
source: 'external_crm',
duplicateStrategy: 'update_existing',
tags: ['crm_sync', `sync_${new Date().toISOString().split('T')[0]}`],
});
});