# Contacts > Adding customers one at a time, importing a CSV, tagging, and exporting. > Source: https://onpad.in/docs/contacts Contacts are the customers your workspace knows about. Every conversation, campaign and API message is attached to one. ## Adding a contact **Contacts → Add contact.** Only the phone number is required: | Field | Required | Notes | |---|---|---| | Phone number | Yes | Full international form. 8–15 digits after separators are stripped | | Name | No | Shown in the inbox and usable as a campaign variable | | Email | No | Stored for your reference; WhatsApp does not use it | | Company | No | Stored for your reference | | Tags | No | How you segment for campaigns | Write the number in full international form: `919876543210` for an Indian mobile. Spaces, dashes and brackets are stripped, so `+91 98765-43210` is accepted too. A number **without** a country code is incomplete. In imports you choose a default country code to apply; when adding one contact, write it in full. ## Importing a CSV **Contacts → Import contacts.** This is how you bring a real list in. ### 1. The file - **CSV**, up to **40 MB**. Larger files must be split. - The **first row must be column headings**. - Comma, semicolon or tab separated — the delimiter is detected automatically from the first line, so an Excel export that uses semicolons works without changing anything. - Download the sample CSV if you want the exact shape. ### 2. Map the columns After upload you map each CSV column to a contact field. **Phone is the only required mapping** — an import without it is rejected. Each CSV column can be mapped only once. Columns you do not need can be left unmapped and are ignored. ### 3. Default country code Numbers written without a country code get the default you choose here. India (`+91`) is pre-selected. This matters more than it looks. A list of `9876543210` style numbers with the wrong default produces thousands of valid-looking but undeliverable numbers — and every send attempt against them costs money and quality rating. ### 4. Run it **Keep the import window open until it finishes.** Large files are processed in batches, and closing the tab stops the run partway. ## What happens to duplicates Imports **update rather than duplicate**. A phone number already in the workspace has its name, email, company and tags filled in from the CSV where those fields are currently empty — existing values are not overwritten by blanks. A contact that originally came from WhatsApp keeps its WhatsApp origin; one that did not is marked as coming from CSV. Rows with an unusable phone number are **skipped**, not guessed at. The import summary says how many. ## Tags Tags are how you pick an audience for a campaign — `vip`, `mumbai`, `trial-2026`, whatever suits you. Rules: up to 60 characters, and no commas, pipes or semicolons, because those are the separators tags are stored with. A contact can have many tags. You can add tags during import by mapping a CSV column to Tags, or afterwards on a contact. Pick a small number of tags and use them consistently. Fifty tags used once each segment nothing. ## Exporting **Contacts → Export** downloads the current list as CSV, named with the date. Any filter applied to the list applies to the export, so you can export one tag rather than everything. Use it for a backup before a big import, or to work on the list in a spreadsheet. ## Common problems **"CSV file must be smaller than 40 MB."** Split the file. A 40 MB CSV is roughly a million rows — if you are near it, import in parts. **"Map a CSV column to Phone number."** No column was mapped to Phone. The import cannot run without it. **"Each CSV column can only be mapped once."** Two fields point at the same column. Pick one. **"CSV header row is missing."** The file starts with data instead of headings. Add a heading row. **Numbers imported but messages fail.** Almost always the country code. Export the list and check what the numbers actually look like now — if they are 10 digits where they should be 12, the default country code was wrong. **Fewer contacts than rows in the file.** Some rows were skipped for an unusable phone number, and duplicates updated an existing contact instead of creating a new one. Both are counted in the summary. ## Before a big import 1. **Export what you have** as a backup. 2. **Import 10 rows first** and look at the result. Mapping mistakes are obvious on 10 rows and invisible on 10,000. 3. **Check the country code** on those 10. 4. Then run the whole file. ## Next - [Campaigns](https://onpad.in/docs/campaigns) — sending to a tagged audience - [Inbox](https://onpad.in/docs/inbox) — where replies arrive