What goes wrong without a mapping plan
Field mapping fails quietly. The import succeeds, the counts match, and three weeks later you notice birthdays are blank, plan names are lowercase in half the records, and a date segment returns nobody. Kit says columns not mapped to fields will not be imported. [2] Both Kit and beehiiv say blank cells can replace existing values. [2][6]
The fix is a short worksheet: one row per source column, with the target field, its type, the format the target expects, and a sample value checked after a test import.
Field types and limits by platform
| Kit | MailerLite | beehiiv | |
|---|---|---|---|
| Field types | All custom field data stored as plain text [1] | Text, number or date [3] | Text, Number, True/False, Date, Date & Time, List (Multi-Select) [5] |
| Field count limit | 140 custom fields per account [1] | Not stated in API docs [3] | Not stated [5] |
| Name rules | Not stated [1] | Up to 255 characters [3] | Case-sensitive; reserved names not allowed [5][6] |
| Date format | yyyy-mm-dd or yyyy-mm-dd HH:MM [1] | System dates as yyyy-MM-dd HH:mm:ss [4] | Not stated [5] |
| Tags | Comma-separated list in one column; existing tags kept [2] | Groups rather than tags | One column, no unescaped commas; existing tags kept [6] |
| Blank cells on import | Replace existing values [2] | API upsert keeps omitted fields [4] | Delete values while overwrite is on (default) [6] |
Build the mapping worksheet
Make a sheet with these columns: source column name, sample value, target field name, target type, required format, transform needed, checked after test. Fill one row per column in your export. Columns you decide not to keep still get a row marked drop, so the decision is deliberate.
| Source column | Sample | Target field and type | Transform |
|---|---|---|---|
| Email Address | [email protected] | email (required) | TRIM and LOWER |
| FNAME | Ana | First name (built-in) | None |
| Signup Date | 03/04/2025 | signup_date: Date (beehiiv) or text (Kit) | Convert to 2025-04-03 or 2025-03-04 after confirming the source locale |
| Plan | Pro | plan: Text, or List in beehiiv | Standardize spelling and case |
| Lifetime Value | $1,240.00 | ltv: Number (MailerLite, beehiiv) | Strip $ and commas: 1240.00 |
| Is Customer | Yes | is_customer: True/False (beehiiv) | Map Yes/No to true/false |
| Tags | webinar, buyer | Tags column (Kit, beehiiv) | One column, comma-separated |
| Member Rating | 4 | Drop | Platform-specific engagement score |
Dates: the field that breaks most often
A date like 03/04/2025 is March 4 in the US and 3 April in much of the world. Spreadsheets also reformat dates when you open a CSV. Convert every date to an unambiguous ISO form before import, and confirm the source locale with a value you can verify, such as your own signup.
For Kit, save dates as yyyy-mm-dd or yyyy-mm-dd HH:MM; other formats mean the Liquid date and time filters will not work, and Kit cannot run date-based logic on custom fields. [1] If you need date-based automation in Kit, plan to use tags or automation dates instead of a custom field comparison. MailerLite's API uses yyyy-MM-dd HH:mm:ss for its subscription and opt-in timestamps. [4] Our CSV identifiers and dates guide covers keeping spreadsheets from mangling values.
Run a 10-row test import
- Create the target fields first with the right type; in beehiiv, avoid reserved names (rename city to imported_city, for example). [6]
- Pick 10 rows that cover edge cases: a blank field, a long value, accented characters, two tags, a date near month-end.
- Pause automations and sequences in the target platform; Kit says tagged or form-based imports can start Visual Automations and sequences. [2]
- Import the 10 rows with your own address among them, mapping every column explicitly.
- Open each profile and compare values against the worksheet; tick the checked column.
- Test one personalized email and one segment or filter that uses a custom field.
- Decide on overwrite behavior: in beehiiv, turn off Overwrite existing custom field data if blanks should not erase values. [6]
- Delete or tag the test records, then run the full import with the same mapping.
Field budget check for Kit
Kit's limit is 140 custom fields per account, and creating more returns a 400 response. [1] Before moving a list with many fields, count the columns you are keeping. Fields used once for an old survey are better kept in your archive file than in the live account. Kit also says custom fields are not intended for paragraph or long-form text, so leave notes and survey essays out. [1]
When you rename a Kit field, the stored text is unchanged; when you delete a field for all subscribers, both the name and stored values are removed. [1] Do the cleanup before import rather than after.
Questions before you decide
Why did my date field stop working after moving to Kit?
Kit stores custom field data as plain text. Its help page says dates must be saved as yyyy-mm-dd or yyyy-mm-dd HH:MM for the Liquid date filters to work, and Kit cannot perform date-based logic on custom fields.
Will a blank cell in my CSV erase existing data?
In Kit, yes: blank values replace existing values. In beehiiv, yes while Overwrite existing custom field data is on, which is the default. MailerLite's API upsert is non-destructive for omitted fields.
How do tags transfer?
As a column. Kit maps a comma-separated list of tags in one column and keeps existing tags. beehiiv also takes multiple tags in one column and never overwrites existing tags on import.
Sources & verification
Product details and prices can change. Check the linked provider before buying.
- Kit Help: How to add and manage custom fields Accessed 29 Oct 2026
- Kit Help: How to import a subscriber list Accessed 29 Oct 2026
- MailerLite API documentation: Fields Accessed 29 Oct 2026
- MailerLite API documentation: Subscribers Accessed 29 Oct 2026
- beehiiv Support: Using custom fields with your subscribers Accessed 29 Oct 2026
- beehiiv Support: How to import free subscribers and map custom fields or tags Accessed 29 Oct 2026
Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.
