First: will the file be imported as it is?
Most systems match columns by their header. Shopify, HubSpot, Mailchimp and the rest expect their own names, spelled exactly, and a header such as "Email Address (required)" either isn't recognised or has to be matched by hand at every import.
Imported as it is
Use the system's header names exactly, from its sample file or an export. Put instructions somewhere else: a note above the table, a comment on the header, an instructions tab, or help text in a form.
Read by people, then mapped
If you'll rename or map the columns yourself, or the data goes into your own system, descriptive headers with format hints help. The advice below is for these.
Why header names matter
When users fill out a spreadsheet, they look at the header to understand what you want. A clear header—like "Email Address"—is better than "email" or "e". A header that includes format instructions—like" Phone (10 digits, no dashes)"—prevents mistakes.
Guides user behavior
Clear headers tell users exactly what format you expect. They're less likely to guess wrong.
Reduces validation errors
When users understand what you want, fewer submissions fail validation. Less back-and-forth.
Documents your data
Good headers make it clear what each column contains. Future readers (including you) understand the data.
Improves consistency
When users understand your format requirements, data stays consistent across all submissions.
Example: Email column
Bad header
User might enter: "john.smith" or "John Smith"
Good header
Email Address
User enters: "john@example.com"
Header naming best practices
Follow these rules for headers that people read. If the file is imported as it is, keep the system's names and put the hints and required markers in your instructions instead.
Be specific and descriptive
Use 'Last Name', not 'Name'. Use 'Phone Number', not 'Phone'. Every word matters.
Add format hints in parentheses
Examples: 'Phone (555-123-4567)', 'Date (MM/DD/YYYY)', 'Price (USD, no symbols)'
Mark required fields
Add an asterisk or '(required)' to fields that can't be blank, such as 'Email Address *', and explain the marker once above the table.
Avoid UPPERCASE
Write 'First Name' or 'First name', not 'FIRST NAME'. Pick one style and use it for every column.
Avoid abbreviations unless universal
Use 'State', not 'ST'. Use 'Country', not 'CTRY'. Only abbreviate if everyone understands it.
Be consistent across columns
If one column says 'Last Name', don't call another 'Firstname'. Use the same pattern everywhere.
Include validation constraints
Examples: 'Age (must be 18+)', 'ZIP Code (5 digits)', 'Quantity (whole numbers only)'
Show what NOT to do for tricky fields
For 'Price', write '(numbers only, no $)'. For 'Phone', say whether to include the country code.
Use standard field names
Use 'Email Address' not 'E-mail'. Use 'First Name' not 'Given Name'. Follow conventions users recognize.
Keep headers short but complete
Aim for one or two words plus instructions. Longer headers are harder to fit on screen.
Good vs bad header examples
For headers people read, not ones an import matches exactly.
Bad
Good
Email Address *
Why: Specific, and marked as required
Phone
Bad
phone
Good
Phone Number (555-123-4567)
Why: Shows exact format expected, prevents user guessing
Birthday
Bad
DOB
Good
Date of Birth (MM/DD/YYYY)
Why: No abbreviations, format is explicit
Price
Bad
price
Good
Price (USD, numbers only - no $)
Why: Currency specified, format constraints clear
Website
Bad
url
Good
Website (https://example.com)
Why: Shows format, doesn't assume user knows 'URL'
Quantity
Bad
qty
Good
Quantity (whole numbers only)
Why: No abbreviations, validation rule included
Headers by field type
Different data types need different header instructions.
Text fields
First Name *Company NameStreet AddressEmail Address *Work Email (optional)Phone
Phone Number (555-123-4567)Mobile (no dashes)Numbers
Age (whole numbers only)Quantity (must be more than 0)Currency
Price (USD, numbers only - no $)Amount (e.g., 99.99)Dates
Date of Birth (MM/DD/YYYY)Start Date (YYYY-MM-DD)Dropdowns/Selection
Status (Active, Inactive, Pending)Country (select from list)Yes/No
Newsletter Signup (Yes/No)Active Account (Yes/No)Headers in Import Builder
In an Import Builder form you don't have to choose between a friendly header and the name your import needs. Each column has both, and the rules are set separately.
What you set for each column:
- Header: what people see in the form, such as "Email address"
- Field: the column name in the downloaded CSV, exactly as your import expects it, such as EMAIL
- Help text: format hints, shown when someone hovers the ⓘ next to the header
- Rules: the column type, required, unique and the allowed values, which are checked as people type
Example: one column, set up in the builder
- Header
- Email address
- Field
- Type
- Email, required, unique
- Help text
- One address per contact
People see "Email address" with a hint; the CSV they download has an EMAIL column your import recognises.
Header naming checklist
Design forms with clear headers
Give people friendly headers and help text while the CSV keeps the exact column names your import needs, with every value checked as it's entered.
Start building free