Marketo CSV Import β Quick Reference:
- Emails: ASCII characters only β emoji and accented characters in email addresses are rejected
- Custom fields: column header must match the field's API name, not the display label
- Lead source: must match an exact picklist value β case-sensitive
- Duplicates: Marketo deduplicates on email by default β existing lead is updated silently
- Program membership: separate import process from list import β different screen, different file format
- File encoding: UTF-8 required β Windows-1252/ANSI exports from legacy systems cause character errors
Quick Answer
Marketo CSV imports fail for four predictable reasons: ASCII email enforcement (stricter than most CRMs), custom field column headers using the display name instead of the API name, picklist value mismatches, and program membership using the wrong import path.
Why it matters: Marketo's email validation is enforced at the field level β a single non-ASCII character in the email domain causes that row to fail with no clear error message in the basic import report. Marketing ops teams regularly import from partner systems that export non-ASCII emails without realizing it.
The fix: Validate email addresses for ASCII compliance before import. Export custom field API names from the Marketo admin panel. Match picklist values exactly from the Field Management screen.
Impact of getting this wrong:
- Non-ASCII emails silently skipped β leads missing from every campaign that runs next
- Wrong API name β custom field data lost β no error shown, no recovery path
- Wrong picklist β lead scoring models that depend on that field produce incorrect scores
- Skipped rows before a campaign launch β audience gap you won't notice until open rates are wrong
Root cause: Marketo's validation engine treats the CRM schema as authoritative. Values that don't conform exactly β including ASCII violations that are invisible to the naked eye β are rejected at the row level.
What Marketo's Error Messages Actually Mean
"Invalid email address" β The email address contains a non-ASCII character (accented letter, emoji, non-Latin character in domain) or fails basic format validation. Marketo enforces ASCII-only emails explicitly per Adobe documentation.
"Field not found" β The column header in your CSV doesn't match any field's API name in your Marketo instance. You may be using the display label ("First Name") when the API name is different ("firstName" or a custom field named "First_Name__c").
"Value is invalid for field [X]" β A picklist or select field received a value that doesn't match any option exactly. Common with Lead Source, Industry, and custom dropdown fields.
"Lead already exists β updated" β Informational, not an error. Marketo found an existing lead with the same email and updated it rather than creating a duplicate. Check the import summary to see the updated count.
"Program not found" or blank program membership after import β Program membership requires a separate import path via the Program's Import List screen, not the main database import.
π¨ Skipped Rows > 0: Stop Everything
This is not a warning. This is a rule.
Marketo's import summary uses the term "Rows Skipped" for failures. This language is dangerously understated.
MARKETO IMPORT SUMMARY β WHAT IT REALLY MEANS:
"Rows Processed: 5,000" β rows the import engine attempted
"Leads Created: 3,847" β new records created
"Leads Updated: 306" β existing records updated
"Rows Skipped: 847" β FAILED β these rows were silently rejected
DO NOT interpret "Rows Skipped" as "not important."
Every skipped row is a lead that did not enter your database.
Every skipped row represents a gap in your campaign audience.
Every skipped row may be a prospect who should have received your nurture sequence.
Marketo does NOT surface per-row error details in the summary UI.
The only way to diagnose skipped rows is to analyze the row data manually
against the validation rules in this guide.
If skipped rows > 0 β your import is incomplete.
Fix the root cause and re-import before triggering any campaigns.
Fast Fix (90 Seconds)
What broke? Go straight to the fix:
Email rejected / rows skipped β Fix 1 (ASCII enforcement)
Custom field blank after import β Fix 2 (API name mismatch)
Picklist value error β Fix 3 (exact match required)
Program shows 0 members β Fix 5 (wrong import path)
Garbled characters in names β Fix 6 (encoding)
Skipped rows > 0, unclear why β Start with Fix 1 β ASCII is the most common silent failure
β± Expected time by error type:
- ASCII email fix (find/remove non-ASCII): 5β10 minutes
- Custom field API name correction: 10β15 minutes (export field list from admin)
- Picklist value fix: 10 minutes (export values from Field Management)
- Program membership fix: 5 minutes (use correct import path)
- Encoding fix: 5 minutes (re-save as UTF-8)
If your Marketo import just failed:
- Download the import summary β after import completes, the summary shows Rows Processed, Leads Created, Leads Updated, and Rows Skipped (failures)
- For email errors: scan your email column for non-Latin characters, accents, or emoji
- For field errors: go to Admin β Field Management β export all fields β match API names to your column headers
- For picklist errors: in Field Management, click the specific field β view all values β copy exact strings
- Validate locally before re-importing β run your file through Data Validator without sending your lead list to any server
TL;DR: Marketo import failures almost always trace to email ASCII violations, wrong custom field API names, or exact picklist mismatches. Validate email format and field names locally before upload. Use Data Validator β your lead data never leaves your browser.
π§ Why Marketo Validates More Strictly Than Other CRMs
Most CRMs validate data at the field level. Marketo does too β but with a key difference: invalid data in Marketo doesn't just sit in a field. It propagates into the automation engine.
A contact with a wrong Lead Source value affects lead scoring models that depend on that field. A contact with a non-ASCII email breaks email sending, bounce tracking, and deliverability attribution. A contact in the wrong program triggers the wrong nurture sequence.
Marketo treats its database as the input to a real-time automation engine, not just a record store. That's why validation is stricter: garbage in doesn't stay in the database β it flows into campaigns, scoring, and attribution immediately.
MARKETO VALIDATION MENTAL MODEL:
Other CRMs: Your data β stored in CRM
Marketo: Your data β stored in CRM β fed into automation engine β affects campaigns
Bad data in HubSpot: contact has a wrong lifecycle stage (visible problem)
Bad data in Marketo: contact has a wrong field β automation fires wrong campaign β
lead score miscalculates β sales gets wrong signals β deal missed
This is why the ASCII email rule exists, why API names are required, and why picklist validation is exact-match. Marketo is protecting the integrity of its automation layer, not just its database.
π§ Cross-CRM Pattern: Every major CRM validates dropdown fields against a closed, exact-match list. Salesforce calls them picklists. HubSpot calls them enumeration properties. Dynamics 365 calls them OptionSets. Marketo calls them field options. Different names, same mechanism β and the same failure mode when you type values from memory instead of exporting from the system. Once you understand this pattern, import failures become predictable across all platforms.
Your Marketo import completed. The summary says 3,847 rows processed, 847 skipped. No error message explains which rows failed or why.
You check a few skipped leads in the raw data. They look fine to you. Valid email addresses, filled fields, standard lead source values. But Marketo rejected every one of them.
What Marketo calls "skipped" is its term for a row that failed validation silently. The reason is in the details β and it's usually one of three things: an email character that isn't ASCII, a column header that doesn't match the field API name, or a picklist value that's off by one character.
This guide covers every Marketo import failure with the exact diagnosis path for each. Error strings and field naming behavior verified against Adobe Marketo Engage documentation, March 2026.
Most teams validate Marketo import files using cloud-based tools β uploading lead lists that contain prospect PII to a third-party service before they even reach Marketo. That creates a second exposure point with its own data retention policy. SplitForge validates locally. Your lead data never leaves your browser.
Table of Contents
- Fix 1: ASCII Email Enforcement
- Fix 2: Custom Field API Name Mismatch
- Fix 3: Picklist Value Mismatches
- Fix 4: Duplicate Lead Handling
- Fix 5: Program Membership Import Path
- Fix 6: File Encoding Errors
- Marketo Import Cause/Fix Table
- Additional Resources
- FAQ
Fix 1: ASCII Email Enforcement
This is Marketo's most distinctive validation rule. Adobe's Marketo Engage documentation explicitly states that email addresses must use ASCII characters only. This means:
- No accented characters in the local part or domain (
alice@mΓΌller.deβ rejected) - No emoji in the email address (
π@example.comβ rejected) - No non-Latin script characters (
η¨ζ·@example.comβ rejected) - No special Unicode characters that look like standard ASCII but aren't
β BROKEN β Marketo email ASCII failures (real rejection cases):
email,firstName,lastName,leadSource
alice@mΓΌller.de,Alice,MΓΌller,Web
β REJECTED: ΓΌ is non-ASCII. The domain "mΓΌller.de" fails ASCII validation.
Note: the name field "MΓΌller" is fine β only the email is validated for ASCII.
π@example.com,Bob,Smith,Event
β REJECTED: Emoji in local part. Marketo enforces ASCII-only on the full address.
η¨ζ·@example.com,Carol,Jones,Trade Show
β REJECTED: Non-Latin characters in local part.
[email protected],Dave,Lee,Referral
β REJECTED (if role-based blocking is enabled on the instance):
role-based prefix "info" blocked by Marketo's configurable blocklist
FIXED:
[email protected],Alice,MΓΌller,Web
β ASCII domain (transliterated). Name field unchanged β MΓΌller is valid in name fields.
[email protected],Bob,Smith,Event
β Standard ASCII email replaces emoji address.
[email protected],Carol,Jones,Trade Show
β Transliterated local part.
[email protected],Dave,Lee,Referral
β Personal email replaces role-based address.
How to check for non-ASCII characters in your email column:
In Excel, use this formula in a helper column to flag non-ASCII emails:
=IF(LENB(A2)=LEN(A2),"ASCII-OK","NON-ASCII")
LENB counts bytes; LEN counts characters. If they differ, the cell contains multi-byte (non-ASCII) characters.
β BROKEN β non-ASCII email examples with Marketo rejection behavior:
Your import CSV:
email,firstName,lastName,leadSource
alice@mΓΌller.de,Alice,MΓΌller,Web
π@example.com,Bob,Smith,Event
useΓ·[email protected],Carol,Jones,Trade Show
Γ±[email protected],Dave,Lee,Referral
Marketo import summary after upload:
Rows Processed: 4
Leads Created: 0
Leads Updated: 0
Rows Skipped: 4 β ALL FOUR REJECTED, no per-row detail shown
What actually happened per row:
alice@mΓΌller.de β rejected: ΓΌ (U+00FC) is non-ASCII
π@example.com β rejected: emoji (U+1F44B) is non-ASCII
useΓ·[email protected] β rejected: Γ· (U+00F7) is non-ASCII
Γ±[email protected] β rejected: Γ± (U+00F1) is non-ASCII
The hard part: these characters are invisible at normal zoom in Excel.
"mΓΌller.de" and "muller.de" look identical in many fonts.
FIXED β ASCII-only email domains:
[email protected],Alice,MΓΌller,Web β ΓΌ removed from email, name unchanged
[email protected],Bob,Smith,Event β standard email replaces emoji address
[email protected],Carol,Jones,Trade Show β Γ· removed
[email protected],Dave,Lee,Referral β Γ± transliterated
DETECTION FORMULA (Excel):
=IF(LENB(A2)=LEN(A2),"ASCII-OK","NON-ASCII β FIX THIS")
Apply to entire email column before every Marketo import.
Role-based email blocking in Marketo:
Role-based blocking (admin@, info@, noreply@, support@) is configurable per Marketo instance. Some organizations have it enabled, some don't. If you're seeing role-based rejections, check with your Marketo admin whether the instance has role-based blocking active.
Fix 2: Custom Field API Name Mismatch
Every Marketo field has two names: a display label (what you see in the UI) and an API name (what the import engine validates against). The import engine only recognizes the API name.
β BROKEN β display name vs API name mismatch:
Your CSV column header β Marketo field behavior
"First Name" β β
standard field, auto-recognized
"Email Address" β β
standard field, auto-recognized
"Lead Source" β β
standard field, auto-recognized
"Account Manager" β β custom field display label
Import creates a new field or fails silently
"Account_Manager__c" β β
correct API name for this custom field
"Budget Range" β β display label for custom field
"budgetRange" β β
correct API name (camelCase is common in Marketo)
"Buying Stage" β β display label
"buying_stage" β β
correct API name for this custom field
HOW TO GET THE API NAME:
Admin β Field Management β find the field β API Name column
The API name is shown alongside the display label.
For standard fields (First Name, Last Name, Email, Lead Source):
API names are well-documented in Marketo's standard field reference.
COMMON API NAME PATTERNS:
- Standard fields: camelCase (firstName, lastName, leadSource)
- Custom text fields: underscored or camelCase (budget_range, budgetRange)
- Custom select/picklist: same as text custom fields
Building your field reference: Go to Admin β Field Management β export all fields to CSV. This gives you a complete mapping of display names to API names. Use this as your import template reference β every custom field column header must match the API name exactly.
Fix 3: Picklist Value Mismatches
Marketo picklist fields (Lead Source, Industry, Lead Status, and any custom select fields) validate imported values against the exact option strings defined in the field configuration. The validation is case-sensitive and whitespace-sensitive.
β BROKEN β Lead Source picklist failures:
Your CSV value β Marketo field behavior
"Web" β β
if "Web" is an exact picklist option
"web" β β case mismatch (if "Web" is the defined option)
"Website" β β different string from "Web"
"Web Form" β β different string from "Web"
"Trade Show" β β
if "Trade Show" is an exact option
"Tradeshow" β β spacing mismatch from "Trade Show"
"TRADE SHOW" β β case mismatch
"Partner Referral" β β
if exact match
"Partner" β β truncated value
GET EXACT VALUES:
Admin β Field Management β click the field β Values tab
Copy each option string exactly. Don't type from memory.
Fix 4: Duplicate Lead Handling
Marketo deduplicates on email address by default β if an existing lead has the same email as a row in your import file, the existing lead is updated rather than a new record created. This is almost always the correct behavior, but it has a few implications to know:
MARKETO DUPLICATE BEHAVIOR:
Scenario: importing lead with email [email protected], which already exists.
Default behavior (dedup on email):
β Existing lead record is UPDATED with values from the CSV
β New lead is NOT created
β Import summary shows "Updated" count, not "Created"
β No error is thrown β this is intentional
What gets updated vs preserved:
β Fields in your CSV: updated to new values
β Fields NOT in your CSV: preserved as-is (not blanked out)
β Activity history: preserved (import doesn't reset it)
β List memberships: not changed by the update
β Program memberships: not changed by the update
What this means for your import file:
β If your file has "Wrong Value" in a field, the existing lead gets that wrong value
β Review your file carefully before importing β updates are immediate and not easily undone
DEDUP KEY OPTIONS (advanced):
Default: email address
Custom: Salesforce ID, custom dedup field (requires Marketo admin configuration)
Fix 5: Program Membership Import Path
Program membership is a separate import process from database import. Teams frequently try to import program members via the main Database β Import screen β this imports the leads into the database but does NOT add them to the program.
CORRECT IMPORT PATHS:
Goal: Import leads into the database only
β Use: Marketo Database β Import (left nav: Lead Database β Import)
Goal: Import leads AND add to a program (event, webinar, campaign)
β Use: Marketing Activities β open the Program β Members tab β Import
β This screen imports leads to the database AND creates program membership records
Goal: Update program membership status (Attended, Registered, No Show)
β Use: Program β Members tab β Import
β CSV must include the status column matching exact program status values
COMMON MISTAKE:
Team uploads 500 event registrants via Database β Import.
Leads are created in the database. Program shows 0 members.
Fix: re-import the same file via Program β Members β Import.
Fix 6: File Encoding Errors
Marketo requires UTF-8 encoded CSV files. Windows systems often export CSV files in Windows-1252 (ANSI) encoding by default, especially from older Excel versions or legacy CRM exports.
β BROKEN β encoding mismatch symptoms:
What you see in Marketo after a successful import:
β Names appear as: "MΓΌller" β "MΓΒΌller" (garbled)
β "SΓ£o Paulo" β "SΓΒ£o Paulo"
β "FranΓ§ois" β "FranΓΒ§ois"
These are UTF-8 characters being interpreted as Windows-1252 encoding.
The import succeeded, but the characters are wrong in every affected record.
Root cause: your CSV was saved in Windows-1252 encoding.
When Marketo reads it as UTF-8, multi-byte characters become garbled.
FIX β re-save as UTF-8:
Option 1: Open in Notepad++ β Encoding menu β Convert to UTF-8 β Save
Option 2: Open in Excel β Save As β CSV UTF-8 (Comma delimited) (not plain CSV)
Option 3: Open in Google Sheets β File β Download β CSV
Google Sheets always exports UTF-8
VERIFY encoding before re-importing:
Open the saved file in Notepad++ β bottom-right corner shows encoding.
Must show "UTF-8" not "ANSI" or "Windows-1252".
Marketo Import Cause/Fix Table
| Error / Symptom | Root Cause | Fix |
|---|---|---|
| "Invalid email address" | Non-ASCII character in email | Remove accents, emoji, non-Latin characters from email column |
| Row silently skipped | Any validation failure β check summary | Download import summary; check field API names and picklist values |
| Custom field blank after import | Column header uses display name not API name | Export field list from Admin β Field Management; use API name as header |
| "Value is invalid for field [X]" | Picklist value doesn't match exactly | Admin β Field Management β field β Values tab; copy exact strings |
| "Updated" count unexpectedly high | Duplicate leads being updated | Expected behavior; verify updates are correct before re-importing |
| Program shows 0 members after import | Used wrong import path | Re-import via Program β Members tab, not Database β Import |
| Garbled characters after import | Windows-1252 encoding instead of UTF-8 | Re-save file as UTF-8 before re-importing |
| Import hangs or times out | File too large or too many columns | Split file into batches of 5,000β10,000 rows |
β How to Confirm Your Marketo Import Worked
- Read the import summary completely β the summary shows: Rows Processed, Leads Created, Leads Updated, Rows Skipped. "Rows Skipped" is your failure count. Any number above 0 means rows failed.
- Open 3 leads from the Created + Updated list β verify the specific fields that were previously failing (email, custom fields, lead source) now show correct values.
- Check for garbled characters β search in Marketo for a lead with an accented name (like "MΓΌller"). If it shows garbled characters, you have an encoding issue that needs fixing before any further imports.
- For program imports β go to the Program β Members tab. Verify the member count matches your import row count and that statuses are assigned correctly.
π Safe Re-Run Workflow
After fixing your source file:
- For failed rows: Marketo does not produce a per-row error CSV like Salesforce Data Loader. Your only option is to identify failed rows manually from the import summary count, then fix the source file and re-import.
- For the re-import: Marketo deduplicates on email β re-importing the full file after a partial success is safe. Existing leads will be updated, new rows will be created. No duplicates are created.
- Exception: if you're re-importing to a program, re-importing the full file adds all leads to the program as new members or updates their status β verify this is what you want before re-running.
β οΈ Edge Case: Marketo has a daily import limit that varies by plan tier. If you hit the limit, subsequent imports queue and process the following day. If your import appears to hang, check Settings β Admin β Import β daily limit status before troubleshooting the file.
π‘ Prevent This Next Time
- Build an ASCII email check into every import workflow β use the
=IF(LENB(A2)=LEN(A2),"OK","CHECK")formula before every Marketo import. Non-ASCII emails in prospect lists are more common than teams expect, especially from event data or partner-sourced lists. - Keep a Marketo field API name reference β export Admin β Field Management once and save it as a reference spreadsheet. Every new import template is built from that reference, not guesswork.
- Template your program import files separately β program member imports need different columns than database imports. Keep a saved template for each program type you import regularly.
Consequence Ladder: What Bad Marketo Data Actually Does
MARKETO CONSEQUENCE LADDER:
Invalid email (non-ASCII) β row skipped:
β Lead not in database
β Campaign audience smaller than expected
β Marketing-sourced pipeline understated
β Demand gen team blamed for weak MQL volume
Wrong custom field API name β field blank:
β Lead score model missing input data
β Scoring model outputs wrong priority
β SDR contacts wrong leads first
β Qualified leads sit in queue, uncontacted
β Pipeline velocity slows
Wrong picklist value β row skipped or field blank:
β Segmentation by that field misses affected leads
β Nurture track assignment fails silently
β Leads receive wrong content for their stage
β Attribution model shows wrong lead source distribution
β± Recovery Cost of Marketo Import Failures
Marketo's invisible failure mode makes recovery more expensive than in other CRMs β because you often don't know there's a problem until a campaign fires wrong.
| Error Caught Before Import | Error Caught After Campaign Fires |
|---|---|
| ASCII email fix: 5β10 min | Re-import: 30β60 min |
| API name fix: 10β15 min | Program member re-import: 30 min |
| No campaign impact | Campaign fired to wrong segment |
| No scoring impact | Lead scores miscalculated |
| No attribution impact | Attribution model shows false data |
| Recovery: immediate | Recovery: 1β3 days + manual score reset |
The worst-case scenario: you import 10,000 leads with non-ASCII emails, they all skip, you trigger a campaign the next day, the campaign goes to 0 leads, you spend 2 hours debugging why your campaign has no audience, you discover the import was silent. That's a half-day loss plus a missed campaign window.
Why Validate Marketo Import Files Locally
Marketo import files routinely contain prospect names, email addresses, job titles, and behavioral intent signals β among the most sensitive data in your marketing stack. Many teams run these files through cloud-based validation or cleaning tools before importing to Marketo, creating a secondary data exposure point with its own retention policy.
For EU prospect data, this upload to a third-party validation service may create a GDPR Article 28 data processor relationship β separate from your Marketo DPA β requiring its own signed Data Processing Agreement before the validation service receives any data. SplitForge validates files in Web Worker threads in your browser β for raw file contents, nothing is transmitted to any server during processing.
For email validation before any CRM import, see email validation before CRM import. For the complete cross-platform error reference, see CRM import error codes explained. For the complete CRM import guide, see CRM import failures complete guide.
Additional Resources
Tested: Marketo error messages and field behavior verified against Adobe Marketo Engage product documentation. ASCII email enforcement confirmed in Marketo's email field specifications. March 2026.
Official Adobe/Marketo Documentation:
- Adobe Marketo Engage: Import a List of People β Official import guide
- Adobe Marketo Engage: Understanding Default and Custom Fields β Field type reference including API names
Email Standards:
- RFC 5321 β SMTP email format β ASCII email address requirements at protocol level
- Unicode Standard β Why non-ASCII characters exist in email addresses and how to detect them
Privacy:
- GDPR Article 28 β Processor obligations β Applies when validation tools receive your Marketo import files containing personal data
- GDPR Article 6 β Lawful basis β Required before importing EU prospect data into any marketing system