---
title: "Import Prospects from CSV or Excel with Field Mapping"
description: "Upload a CSV or Excel file of leads, map columns to Prosyo fields and custom fields, handle duplicates and import onto a list."
url: "https://prosyo.com/docs/prospects/import-csv-excel/"
image: "https://prosyo.com/wp-content/uploads/2026/10/Prosyo-wordmark-white-vector.svg"
language: "pt"
---

# Import Prospects from CSV or Excel with Field Mapping

1. [Prosyo Docs](https://prosyo.com/pt/docs/)
2. [Prospects and lists](https://prosyo.com/pt/docs/prospects/)
3. Import prospects from CSV or Excel

Last updated November 6, 2026 5 min read

**On this page**

- File requirements
- Sample file
- Step by step
- Field mapping
- Map to custom fields
- Duplicates
- What Prosyo won't do
- Import limits
- Troubleshooting
- Next step

Upload a spreadsheet exported from Apollo, a CRM, an event list or anywhere else. Prosyo maps each column to a prospect field and adds the rows to a list.

![Import prospects window with the CSV / Excel, LinkedIn search, Sales Navigator, Post comments and Chrome (LinkedIn) tabs](https://prosyo.com/wp-content/uploads/prosyo-docs/builds/20261105-205402-lvcu5rib/assets/assets/prospects-import.webp)

## File requirements#

| Requirement | Details |
| --- | --- |
| File type | `.csv` or `.xlsx`. An older `.xls` file can't be read: save it as `.xlsx` or CSV first. |
| File size | Up to **5 MB** |
| Header row | The first row must contain column names |
| Rows | Up to **5,000 rows** per file. Rows after that are left out, so split bigger files. |
| Required column | At least one column mapped to **Email** or **LinkedIn URL** |
| Encoding | UTF-8 recommended for names with accents or non-Latin characters |

Tip

Include a **LinkedIn URL** column whenever you can. LinkedIn steps need it, and enrichment works much better with it.

### Sample file#

CSV

```csv
First name,Last name,Title,Company,Website,LinkedIn URL,Email,Phone,Industry
Alex,Rivera,Head of Sales,Acme,acme.com,https://www.linkedin.com/in/alexrivera,alex@acme.com,+1 555 0100,SaaS
Priya,Sharma,Founder,Brightlabs,brightlabs.io,https://www.linkedin.com/in/priyasharma,,,"Fintech"
```

## Step by step#

1. Go to **Prospects** and click **Import**. While the Dashboard's **Launch your first campaign** checklist is showing, you can also click **Add or import prospects** there.
2. Stay on the **CSV / Excel** tab.
3. Click the upload area and choose your file.
4. If the Excel file has several sheets, pick the one to import under **Sheet**.
5. **Map your columns** (see below).
6. **Choose a list.** Under **Add to list**, pick **Existing list** or **Create new** (on your first import, just type a name for the new list). Name lists so you can recognize them later, for example *"Webinar attendees – Sept 2026"*.
7. Optional: type a tag in **Tag everyone (optional)** to label every person in the file.
8. Under **Duplicates**, choose **Skip existing** or **Update existing** (see Duplicates).
9. Click **Import**.
10. Wait for **Import complete**. The summary shows how many people were **added**, **updated**, **skipped** and **failed**.

A large file can take a minute. Keep the window open until the summary appears.

## Field mapping#

Prosyo guesses the mapping from your column names. Check every row before you import.

| Prosyo field | Auto-detected when the header contains | Used for |
| --- | --- | --- |
| **First name** | `first` | `{{first_name}}` |
| **Last name** | `last`, `surname` | `{{last_name}}` |
| **Full name** | `full name`, or exactly `name` | Split into first and last when those are empty |
| **Job title** | `title`, `position`, `role` | `{{title}}` |
| **Company** | `company`, `organization`, `organisation`, `account` | `{{company_name}}` |
| **Website** | `website`, `domain` | Company website |
| **LinkedIn URL** | `linkedin`, `profile url` | LinkedIn steps and deduplication |
| **Email** | `email`, `e-mail` | Email steps and deduplication |
| **Phone** | `phone`, `mobile` | Stored on the prospect |
| **Custom · [field name]** | Choose manually | `{{custom.field_key}}` |
| **Skip column** | Anything not recognized | Not imported |

### Map to custom fields#

Any column that isn't a standard field can go into a **custom field**, such as *Industry*, *Pain point*, *Event name* or *Personal first line*.

1. In the mapping dropdown, choose **Custom · [field name]**.
2. If the field doesn't exist yet, create it in **Settings → Custom fields** first, then come back to the import.

Once imported, you can use the value in any message as `{{custom.your_field}}`. See [Lists, tags and custom fields](https://prosyo.com/pt/docs/prospects/lists-tags-custom-fields/).

## Duplicates#

Prosyo won't create the same person twice in one workspace. A row is treated as a duplicate when its **LinkedIn URL** or **email** already exists.

- **Skip existing** (the default) leaves the person's name, title, company and contact details as they are.
- **Update existing** replaces those details with the values in your file. An empty cell never clears a value.
- Either way, the person is added to the list you chose (and gets the tag, if you typed one), so you can enroll them in a new campaign. Values in columns mapped to custom fields are saved too, and replace that field's earlier value even with **Skip existing**. Empty cells are ignored.
- If you're a member, a person who belongs to a teammate is skipped and left unchanged.

A row with no email, LinkedIn URL or name is skipped.

## What Prosyo won't do#

Prosyo never invents data. If a row has no email, email steps skip that person. After the import, Prosyo looks for a verified work email for people without one, at no cost. See [Enrichment](https://prosyo.com/pt/docs/prospects/enrichment/#verified-work-email). Enrichment fills a field only when a real source returns it.

## Import limits#

Each plan includes a monthly allowance of new people. It resets at the start of each calendar month.

| Plan | New people per month |
| --- | --- |
| Starter (and the trial) | 1,000 |
| Multichannel | 5,000 |
| Agency / Team | 5,000 per seat |
| Enterprise | Unlimited |
| Penny SDR All-in | 20,000 |
| AppSumo lifetime deals | 1,000 per code, up to 5,000 (6 codes: 5,000 per seat) |

The **Penny Agents** add-on adds 2,000 a month and **Penny SDR** adds 5,000. An agency and its client workspaces share one allowance.

Only people who are new to your workspace count toward the limit. Updating or skipping someone who's already there doesn't. The whole file must still fit in what you have left this month, so a file with more rows than that is refused before anything is imported.

Upgrade

Hitting your import limit? **Multichannel** gives you 5x Starter's monthly imports, and **Agency / Team** scales with every seat. [See plans](https://prosyo.com/pt/docs/billing/plans-and-pricing/).

## Troubleshooting#

| Message | Fix |
| --- | --- |
| "The file needs a header row and at least one data row." | Add column names in row 1 and at least one row of data. |
| "Please upload a .csv or .xlsx file." | Save the file as CSV or Excel Workbook (.xlsx). |
| "File is too large (max 5 MB)." | Remove columns you don't need, or split the file. |
| "Could not read that spreadsheet. Export it as CSV or a standard .xlsx file." | Open it in Excel or Google Sheets and export as CSV or .xlsx again. |
| "Map at least one column to Email or LinkedIn URL." | Map a column to Email or LinkedIn URL. |
| "Choose an existing list or enter a name for a new one." | Pick a list under **Add to list**, or type a name for a new one. |
| "This import would exceed your plan's monthly import limit…" | The file has more rows than you have left this month. Split it, wait for next month, or [upgrade](https://prosyo.com/pt/docs/billing/plans-and-pricing/). |
| Many rows skipped | They're already in your workspace (with **Skip existing** they're counted as skipped; choose **Update existing** to refresh them), they have no email, LinkedIn URL or name, or, if you're a member, they belong to a teammate. Search for one of them in Prospects. |
| Names look garbled | Export the CSV as **UTF-8**. |

## Next step#

[Enroll your list in a campaign →](https://prosyo.com/pt/docs/campaigns/audience/)

## Related guides

[Lists, tags & fields Use lists to enroll prospects in campaigns, tags to filter, and custom fields as personalization variables. Export any segment to CSV.](https://prosyo.com/pt/docs/prospects/lists-tags-custom-fields/) [Enrichment Enrich prospects with job title, company and research from real sources, and write personalized AI first lines you can use as a variable.](https://prosyo.com/pt/docs/prospects/enrichment/) [Pipeline stages Track prospects from New to Customer in a table or board, see which stages update automatically, and sync stage changes to your CRM.](https://prosyo.com/pt/docs/prospects/pipeline-stages/) [Intent: find your next conversation See who is ready to talk: buying signals from your website, LinkedIn and inbox, ranked by fit to your ideal customer, with research, playbooks and credits.](https://prosyo.com/pt/docs/prospects/intent/)
