Quick Answer
Keap rejects CSV contacts for four primary reasons: missing required name fields (First Name OR Last Name must be present), date values in an unrecognized format, custom field column headers that don't map to any configured field, and opt-in status fields formatted incorrectly.
Why it happens: Keap validates every row against your account's field configuration before accepting it. Custom fields that don't map during the import wizard step are skipped silently.
The fix: Standardize all dates to a single consistent format (MM/DD/YYYY is the safest choice), verify name fields are populated, and map every CSV column to its Keap field during the import wizard step.
Root cause: Date parsing failures and custom field mapping misses are among the most common Keap import errors — often because different team members formatted dates differently in the same file.
Fast Fix (90 Seconds)
If your Keap import failed, try this first:
- Check your date columns — Find every date field in your CSV. Convert all values to MM/DD/YYYY format. This alone resolves the majority of Keap import failures.
- Check First Name and Last Name columns — At least one must be populated for every row. Blank rows on both name fields are rejected.
- Check your Tags column separator — Keap expects comma-separated tags. If your source used semicolons, do a find-and-replace:
;→,. - Check custom field columns during mapping — In the import wizard's field mapping step, any CSV column that doesn't match a Keap field is dropped. You can create new custom fields on the fly during this step — or pre-create them in Keap > Admin > Custom Fields before importing.
- Reimport only the failed rows — Fix the specific rows identified in the error report, not the entire file.
If date format errors span the entire file, continue below for bulk conversion methods.
TL;DR: Keap date parsing failures and custom field mapping misses are among the most common import errors. Keap accepts several date formats including MM/DD/YYYY, YYYY-MM-DD, and MM-DD-YYYY — standardize to one format across your entire file to eliminate parsing inconsistencies. During the import wizard, any unmatched column is silently dropped; map every field or create it on the fly. Run Data Cleaner to standardize dates and clean the full file before upload.
Your migration from ActiveCampaign to Keap is 80% done. The contacts are exported, the tags are mapped, and you upload the CSV. Keap processes 1,200 rows and rejects 740 of them. The error file says "Invalid date" on nearly every one. You open a few rows in your spreadsheet — the dates look fine. They're in YYYY-MM-DD format, which is how ActiveCampaign exports them.
That's the problem. Keap's date parser is strict about format consistency — mixed date formats across a file cause batch failures even when individual dates look valid. The dates weren't wrong; they were inconsistent with each other and with what the import expected.
Keap import files contain customer contact data — names, emails, phone numbers, and often purchase history or campaign engagement data. Most cloud-based data cleaning tools upload your file to a remote server to process it. For lists containing customer PII, that upload creates a GDPR Article 5(1)(c) data minimization exposure and potentially triggers GDPR Article 28 processor obligations if the tool processes on your behalf. SplitForge's Data Cleaner runs entirely in Web Worker threads in your browser — nothing is transmitted to any server. You can verify this with Chrome DevTools Network tab during cleaning.
Each error type in this guide was reproduced using the Keap contact import tool (Max Classic and Keap Pro), March 2026. For the complete CRM import failure taxonomy across all major platforms, see our CRM import failures complete guide. If your failures are structural rather than Keap-specific, Why Your CRM Rejects CSV Imports covers the file-level causes that apply across all CRMs. Teams migrating from ActiveCampaign to Keap will find ActiveCampaign CSV Import Errors useful for understanding the tag architecture differences.
What Keap's Error Messages Actually Mean
"First or last name is required" — Both the First Name and Last Name columns are empty for this row. Keap requires at least one of them to be populated.
"Invalid date" — The date value in a date field is in an unrecognized format or contains an impossible date (February 30). Keap accepts MM/DD/YYYY, YYYY-MM-DD, and MM-DD-YYYY — natural language ("April 15, 2026") and ambiguous formats are the most frequently seen triggers.
"Invalid email address" — The email field contains a malformed address format. Keap validates basic email structure before accepting the record.
"Field '[name]' not found" — Your CSV includes a column header that doesn't correspond to any field configured in your Keap account. This can mean a standard field name mismatch or a custom field that hasn't been created yet.
Contacts imported but tag not applied (no error shown) — The tag name in your CSV doesn't exist in Keap yet. By default, Keap creates new tags from imported values, but configuration differences can cause this to fail silently in some account setups.
| Error / Symptom | Root Cause | Fix |
|---|---|---|
| "First or last name is required" | Both name fields empty on the row | Populate First Name or Last Name for every row |
| "Invalid date" | Unrecognized format or impossible date (Feb 30) | Standardize to MM/DD/YYYY; avoid natural language and ambiguous formats |
| "Invalid email address" | Malformed email format | Validate email format ([email protected]) |
| "Field not found" | CSV column header doesn't match a Keap field | Create missing custom fields in Keap Admin first |
| Tags missing after import | Tag configuration issue or name mismatch | Verify Keap account allows new tag creation on import |
| Opt-in status not set | Opt-in column values not matching expected format | Use Keap's accepted opt-in values exactly |
Table of Contents
- Why Keap Date Import Failures Are So Common
- Fix 1: Date Format Failures
- Fix 2: Missing Name Fields
- Fix 3: Custom Field Mapping
- Fix 4: Tag Format and Assignment
- Fix 5: Opt-In Status Field
- Common Scenarios
- Additional Resources
- FAQ
This guide is for: Small business owners, marketing managers, and CRM admins importing contacts into Keap or legacy Infusionsoft accounts.
Already know your error type? Jump to the fix using the ToC above.
Why Keap's Date Import Failures Are So Common
Date failures are among the most common Keap import errors — not because Keap is unusually strict, but because mixed date formats across a file cause batch inconsistencies. Keap accepts several standard date formats, but they cannot be mixed within the same import. A file where half the rows use MM/DD/YYYY and half use YYYY-MM-DD will produce failures on the inconsistent rows.
The second reason: natural language dates (April 15, 2026), partial dates (April 2026), and impossible dates (February 30) are always rejected regardless of format.
Keap Accepted Date Formats
| Format | Example | Notes |
|---|---|---|
| MM/DD/YYYY | 04/15/2026 | Most common; recommended default |
| YYYY-MM-DD | 2026-04-15 | ISO 8601; accepted in most Keap versions |
| MM-DD-YYYY | 04-15-2026 | Accepted; hyphens instead of slashes |
| M/D/YYYY | 4/15/2026 | Single-digit month/day; accepted in most versions |
| Natural language | April 15, 2026 | ❌ Rejected |
| DD/MM/YYYY | 15/04/2026 | ❌ Rejected — European format not parsed |
| Impossible dates | 02/30/2026 | ❌ Rejected — date doesn't exist |
Recommendation: Standardize to MM/DD/YYYY before importing. Even if Keap accepts multiple formats, inconsistent formats within a single file are the primary source of batch date failures.
Date Format Source Decision Tree
What format is your source data in?
ISO 8601 (YYYY-MM-DD) from database export?
→ Already accepted by Keap. Standardize to keep consistent. ✓
European format (DD/MM/YYYY) from UK/EU spreadsheet?
→ NOT accepted. Must convert.
→ Excel: =TEXT(DATEVALUE(SUBSTITUTE(A2,"/","-")), "MM/DD/YYYY")
→ Or use Data Cleaner (browser, no upload)
Natural language (April 15, 2026) from manual entry?
→ NOT accepted. Must convert.
→ Excel: =TEXT(DATEVALUE(A2), "MM/DD/YYYY")
→ Or use Data Cleaner
Mixed formats (team entered dates differently)?
→ Biggest risk. Each non-standard row fails individually.
→ Standardize the entire column to MM/DD/YYYY before import.
Impossible dates (02/30, 09/31)?
→ Always rejected. Audit and correct manually.
What a Keap Date Failure Looks Like
❌ BROKEN — Mixed date formats in a single import file:
First Name,Last Name,Email,Birthday,Tags
Alice,Chen,[email protected],03/15/1985,customer → MM/DD/YYYY: accepted
Bob,Smith,[email protected],1990-07-22,prospect → YYYY-MM-DD: accepted
Carol,Jones,[email protected],15/04/1988,lead → DD/MM/YYYY: rejected
David,Kim,[email protected],April 15 1988,newsletter → natural language: rejected
Emma,White,[email protected],02/30/1995,customer → impossible date: rejected
Error report:
Row 3: "Invalid date" — 15/04/1988 is DD/MM/YYYY; Keap interprets as month 15 (invalid)
Row 4: "Invalid date" — natural language date not recognized
Row 5: "Invalid date" — February 30 does not exist
FIXED — consistent MM/DD/YYYY across all rows:
Alice,Chen,[email protected],03/15/1985,customer
Bob,Smith,[email protected],07/22/1990,prospect
Carol,Jones,[email protected],04/15/1988,lead
David,Kim,[email protected],04/15/1988,newsletter
Emma,White,[email protected],03/01/1995,customer
Row 2 is also updated from YYYY-MM-DD to MM/DD/YYYY — keeping the entire column in one format eliminates any ambiguity during processing.
Fix 1: Date Format Failures
Standardize your entire date column to MM/DD/YYYY before importing. This eliminates one of the most common sources of Keap import row failures.
Bulk conversion in Excel / Google Sheets
If your dates are stored as actual date values in your spreadsheet (not text):
- Add a helper column.
- Use the formula:
=TEXT(A2,"MM/DD/YYYY")where A2 is your source date cell. - Apply this formula to the entire date column.
- Copy the helper column, paste as values only over the original column.
- Delete the helper column.
If your dates are stored as text strings in various formats, Data Cleaner can standardize bulk dates from ISO 8601, European DD/MM/YYYY, and natural language formats to MM/DD/YYYY — in your browser, without uploading the file anywhere.
Date Failure Quick Map
Source format → Action needed
─────────────────────────────────────────────────────
ISO 8601 (2026-04-15) → Accepted. Standardize to MM/DD/YYYY for consistency.
MM/DD/YYYY (04/15/26) → Accepted. This is the recommended standard.
MM-DD-YYYY (04-15-2026)→ Accepted. Convert to MM/DD/YYYY to keep column uniform.
DD/MM/YYYY (15/04/2026)→ ❌ Not accepted. Must convert before import.
Natural language → ❌ Not accepted. Must convert before import.
(April 15, 2026)
Mixed formats in column → ❌ High failure risk. Standardize entire column first.
Impossible date → ❌ Always rejected. Fix manually.
(02/30/2026)
Rule of thumb: If your whole team entered dates the same way, you likely have one format — check one column and confirm. If the file came from multiple sources or people, assume mixed formats and standardize before importing.
Fix 2: Missing Name Fields
Keap requires either First Name or Last Name (or both) to be populated for every contact record. Rows where both are blank are rejected with "First or last name is required."
Company name does not substitute for First Name or Last Name in Keap's contact import. If you're importing B2B contacts where the company name is the primary identifier and individual contact names are unknown, use a placeholder (the company name or "Unknown") in the First Name field.
❌ BROKEN — Contact rows with missing name values:
First Name,Last Name,Email
Alice,Chen,[email protected] → valid
,Smith,[email protected] → First Name empty; Last Name present → valid
Carol,,[email protected] → Last Name empty; First Name present → valid
,,[email protected] → Both empty → rejected
Acme Corp,,[email protected] → "Acme Corp" in First Name → valid (workaround)
FIXED — rows 4 requires a value in at least one name field:
Unknown,Contact,[email protected] → or use email domain as First Name
For imported contact lists where names aren't available, using the company name or the email local part as a placeholder is acceptable. Keap's segmentation and automation work on email address as the primary identifier — the name fields matter for personalization tags but don't affect core functionality.
Fix 3: Custom Field Mapping
Most overlooked step: The import wizard's field mapping screen is where most data loss happens. Every column you leave unmapped is silently dropped — no error, no warning. Spend 60 seconds mapping every column before proceeding.
If your CSV includes columns for custom field data, those columns must be mapped to a Keap custom field during the import wizard's mapping step. Keap gives you two paths: map to an existing custom field, or create a new one on the fly during the mapping step itself.
Columns that aren't mapped — either because you skip them or no matching field exists — are silently dropped. The contact imports; that field's data is lost.
Two options in the import wizard mapping step:
- Map to existing field — Select the matching Keap field from the dropdown next to your CSV column header.
- Create new custom field — Select "Add as custom field" in the mapping dropdown. Keap creates the field in your account and populates it during the same import.
Pre-creating fields in Keap > Admin > Custom Fields is the safer option when importing dropdown or multi-select custom fields, because it lets you define valid option values before the import runs.
❌ BROKEN — CSV with custom field columns, import without mapping:
CSV headers: "Lead Score", "Referral Source", "Contract Tier"
If skipped in mapping wizard:
- Contacts import with these columns silently dropped
- No error message — data is simply lost
FIXED — two paths:
Path A (pre-create): Admin > Custom Fields → create each field → import → map to existing field
Path B (on-the-fly): In import wizard → map column → "Add as custom field" → proceed
For dropdowns (Contract Tier): pre-creation is better — define valid option values first,
or imported values that don't match existing options will fail silently.
For dropdown custom fields, define all valid option values in the field definition before the import when possible. A dropdown value that doesn't match an existing option fails silently — the field is blank, not errored.
Fix 4: Tag Format and Assignment
Keap's tag system is one of its most powerful features and one of the most common import friction points. Tags are assigned during import by including a Tags column with the tag names you want applied to each contact.
Tag values in the Tags column should be comma-separated. Keap will create new tags from import values if they don't exist — but the tag name must be an exact match to any existing tag you want to reuse. "customer" and "Customer" create two separate tags in Keap.
❌ BROKEN — Tag formatting issues in Keap import:
Tags column values:
"customer;vip" → semicolon separator; "customer;vip" becomes one tag
"CUSTOMER,VIP" → imports as two tags "CUSTOMER" and "VIP"
— separate from existing "customer" and "vip" tags
"new customer, follow up" → space after comma; "follow up" imports as " follow up"
(leading space creates a new tag distinct from "follow up")
FIXED:
"customer,vip" → imports as "customer" and "vip" (matching existing tags)
"customer,vip" → no leading spaces after commas
Tag names are case-sensitive in Keap's automation rules. An automation triggered by the tag "customer" won't fire for a contact tagged "Customer" — even though they look identical to the eye. Standardize tag case before importing.
Fix 5: Opt-In Status Field
Keap's opt-in status determines whether a contact can receive marketing emails. Getting this wrong during import has downstream consequences — contacts may be marked unsubscribed when they shouldn't be, or contacts who haven't opted in may receive marketing emails in violation of CAN-SPAM and GDPR.
Keap accepts the following opt-in status values during import (the exact labels vary slightly by Keap version and market):
- Marketable — contact has opted in and can receive marketing emails
- Non-Marketable — contact has not opted in; marketing emails are blocked
- Unconfirmed — contact is pending double opt-in confirmation
If the Opt-In Status column is blank or contains an unrecognized value, Keap defaults to Non-Marketable in most configurations. This means a blank opt-in field doesn't cause an import error — it causes a suppressed list you'll discover only after a campaign fails to send.
Common Scenarios
Migrating from ActiveCampaign to Keap
ActiveCampaign exports dates in ISO 8601 format and uses a different tag architecture. Convert all dates to MM/DD/YYYY using a bulk date conversion before import. Map ActiveCampaign's list membership to Keap tags — a contact on "Hot Prospects" list in ActiveCampaign becomes tagged "hot-prospect" in Keap.
Importing from a spreadsheet built by multiple team members
Spreadsheets built collaboratively often accumulate mixed date formats — some team members typed "Jan 15 2026," others used the date picker in their locale format. Run a date standardization pass across all date columns before importing. The mixed format problem is invisible until Keap rejects the rows.
Reimporting after creating missing custom fields
After creating the missing custom fields in Keap Admin, re-import only the rows that failed — not the entire file. Keap deduplicates by email address. Full reimport of the file will attempt to update or duplicate all previously successful contacts depending on your import settings.
Additional Resources
Official Keap Documentation:
- Keap — Import Contacts — Official contact import guide and field reference
- Keap — Custom Fields — Custom field types, creation, and management
Technical Standards:
- RFC 4180: CSV Format Specification — Official CSV structure standard
- Unicode Character Encoding — Character encoding reference for international contact data
Privacy & Compliance:
- GDPR Article 5: Principles Relating to Processing of Personal Data — Data minimization and processing principles
- CAN-SPAM Act Compliance — US email marketing compliance requirements relevant to opt-in status handling
Tested: Keap contact import tool (Max Classic and Keap Pro), March 2026. Each error type reproduced using standard import CSVs against a Keap account with configured custom fields, existing tags, and a five-segment opt-in configuration.
PLATFORM SPECIFICATION SOURCE
Platform: Keap (formerly Infusionsoft)
Source: Keap Help Center — Import Contacts
URL: https://help.keap.com/help/import-contacts
Verified: March 2026
Next re-verify: June 2026
Values in this post reflect official documentation at the verification date.
Keap updates import behavior with product releases — the official source is authoritative.
Note: Keap Max Classic (legacy Infusionsoft) and Keap Pro may have minor differences
in import field behavior. Verify against your specific account version.