CSV to contacts workspace
Map CSV columns to contact names, phones and emails. Review errors and possible duplicates, choose rows, then export one VCF or individual cards in a ZIP without uploading contacts.
Prepare a contacts file without sharing your address book.
1. Bring your table
Paste a table
Imports replace the current table and can be undone. Keep phone columns as text in your spreadsheet: missing leading zeros cannot be recovered.
Edit source table · 0 rows
| # | Actions |
|---|
2. Match contact fields
Automatic matches use known header names only. Check each field; changing data or mappings resets row selection.
Name order only applies when display name is empty. A full name is not split automatically. One phone or email per mapped cell. Mapped fields allow 300 characters, or 2000 for notes; only notes can contain line breaks.
Save or reopen project
Includes source table, mappings and exclusions. No automatic storage.
How to use
- Import or paste a contact table and review the source rows.
- Map columns, check errors and duplicates, and choose contacts to export.
- Download VCF/ZIP or save the editable project; import the file in your contacts app.
Before you start
UTF-8 CSV/TSV with header, up to 2 MB, 1000 rows and 30 columns. Paste or edit the table; no XLSX or existing VCF import. Fields: display/given/family name, mobile/home/work phone, two emails, company, job and notes. Exact known headers can prefill mappings; verify every mapping. Only mapped fields enter VCF; nonempty unmapped columns need explicit acknowledgement. No photos, birthdays, postal addresses, groups or custom fields. All values are text with outer whitespace trimmed. Phones remove spaces, dots, parentheses and hyphens, retaining a leading + and leading zeros; require 3–30 digits, no extension, multiple numbers or country-code inference. Lost spreadsheet zeros cannot be recovered. Basic email syntax checks do not verify deliverability. A name is required; if only display name exists it is copied to the given-name component, without guessing a surname. Given/family ordering and joining space can be chosen. Empty rows are counted and skipped. Invalid selected rows block export; choose valid rows explicitly or fix the source. Duplicate candidates share a normalized phone or case-insensitive email, not necessarily an identity; nothing is auto-merged or deleted. Filters do not change selection. Source/mapping changes reset row selection. vCard 3.0 UTF-8 with CRLF, escaped text and folded lines. Review receiving-app imports; device/account behavior may vary. JSON up to 5 MB saves source, mapping and exclusions, with no autosave. CSV imports replace the table and can be undone. Data and ZIP work stay local. Example: 020-001234 becomes 020001234, retaining its zeros.