Contact bulk import
Import many contacts at once from a spreadsheet. A short assistant walks you through four steps: pick a file, line up your columns, choose a few options, and watch the import run.
Bulk import is the fastest way to bring a list of contacts into Nextal — for example, an HR contact list you exported from another tool, or a fresh list from a client. You open the assistant, drop in a spreadsheet, tell Nextal which column means what, and the assistant creates the contacts one by one.
At a glance — the four steps
| Step | Name | What happens |
|---|---|---|
| 1 | Upload | Drop in a spreadsheet — CSV or Excel, up to 10 MB. Need a starting point? Download the template right from this step. |
| 2 | Map columns | Tell Nextal which column in your file matches which contact field. The assistant guesses for you on common names like “first name” or “email” — review and adjust. |
| 3 | Configure | Preview your data, choose whether to skip duplicates, optionally attach tags, and pick which clients these contacts should be linked to. |
| 4 | Import | Watch the progress bar. When it’s done, you’re sent to the contacts list with your new entries. |
Opening the assistant
-
Go to your contacts list
In the top menu, click Contacts.
-
Click Bulk Import
You’ll find the button on the list toolbar. The assistant opens on its own page.
Step 1 — Upload your spreadsheet
What file types work:
- CSV (.csv) — the simplest option, opens in any spreadsheet app
- Excel (.xlsx or .xls)
Size limit: 10 MB. If your file is bigger, you’ll see “File is too large. Maximum size is 10MB.” Try splitting it into two imports.
Wrong file type: if you drop in a PDF or image by mistake, you’ll see “Invalid file type. Please upload CSV or Excel files only.”
Need a template? Click Download Sample Template near the drop zone. You get a CSV whose header holds the 34 columns the assistant recognises — in the order of the lists below — with two sample rows. The CRM module columns are always in it; without the module, they simply stay unmapped in step 2 and are ignored.
Step 2 — Tell Nextal what your columns mean
You’ll see one row per column in your file. For each one, pick which contact field it should fill. The assistant tries to guess for you — if your column is called “First Name” or “Email”, it’ll be pre-selected. Review each row and adjust if needed.
The three required fields
You can’t move on until these are mapped:
- First Name
- Last Name
- Email — must look like an email address (something@somewhere.com)
Until all three are mapped, the Next button stays disabled.
What else you can import
Field names are shown in English in the assistant’s dropdown. Every field below is really saved on the contact.
For every organisation (20 fields + Notes):
| Category | Fields (as displayed) |
|---|---|
| Required | First Name, Last Name, Email |
| Basic info | Phone, Position, Department, Role, Description |
| Preferences | Preferred Language (en, fr, es), Communication Channel (EMAIL, PHONE_CALL, PHONE_TEXT) |
| Management | Status (ACTIVE, INACTIVE, NO_LONGER_WITH_COMPANY), Contact Manager ID |
| Clients | Company (client name), Client IDs (comma-separated) |
| Lists | Tags (comma-separated) |
| Social media | LinkedIn, Facebook, Twitter, Google, Website |
| Comment | Notes (added as a comment) — see below |
With the CRM module (13 more fields) — available with the CRM module (contact Nextal to enable it); without it, these fields don’t appear in the list:
| Category | Fields (as displayed) |
|---|---|
| Additional contact details | Mobile Phone, Fax, Alternate Email |
| Address | Street Address, City, Province/State, Postal Code, Country, Latitude, Longitude |
| Relationship | Priority (LOW, MEDIUM, HIGH), Source, Referred By |
These fields then show up in the header and the Profile tab of the contact profile.
The assistant pre-selects a field when your column has its name, and also recognises a few common synonyms: Title or Job title → Position, Work phone → Phone, Mobile or Cell → Mobile Phone, Client → Company, Zip → Postal Code, Province → Province/State.
Columns that don’t match anything can be left as “Don’t map” — Nextal will simply ignore them.
The Company column links the contact to a client
Company takes the exact name of one of your clients (capitals, accents and extra spaces don’t matter). The contact is attached to that client. A name that matches no client is ignored: the contact is created without that link. To attach clients by their identifier instead, use Client IDs.
The Notes column becomes a comment
Notes isn’t a profile field: its content is added as a comment (a note) on the contact right after it is created, and shows up in the Comments tab. Each line of the cell becomes a paragraph. You are the author.
Small clean-ups Nextal does for you
Before each contact is created, the assistant tidies the data:
- Emails are converted to lowercase and trimmed — so “Mary.Smith@Acme.COM ” becomes “mary.smith@acme.com”. An alternate email identical to the main one is dropped.
- Phone, mobile and fax numbers keep only digits, plus signs, dashes, parentheses and spaces — random characters from formatting are stripped out.
- Status — Active, Inactive or No longer with the company, in English, French or Spanish (Actif, Ne fait plus partie de l’entreprise…), or the codes ACTIVE, INACTIVE, NO_LONGER_WITH_COMPANY. An empty or unrecognised value imports as Active.
- Preferred Language — en, fr, es or the language’s name (French, français…). Communication Channel — EMAIL, PHONE_CALL, PHONE_TEXT or the usual words (email, phone, SMS…).
- Social links — a bare LinkedIn, Facebook or Twitter username becomes the full profile URL (https://linkedin.com/in/…). If you forget https:// on the website, Nextal adds it.
- Tags — split on commas, trimmed, without duplicates.
- Client IDs from your spreadsheet are merged with the Company column and with the clients you pick in the next step (no duplicates).
- Priority (CRM module) — LOW, MEDIUM or HIGH; Hot, Medium and Cold, and the French or Spanish words, also work. Any other value is ignored — the contact is created without a priority.
- Latitude and Longitude (CRM module) — kept only when both are given.
Step 3 — Configure your import
Preview your data
The first ten rows of your file are shown with all your mapping rules applied. This is the last chance to catch a wrong mapping before you commit. If a column looks off, click Back and adjust step 2.
Skip duplicates checkbox
Two contacts in Nextal can’t share the same email address. The checkbox tells the assistant what to do when it finds a contact whose email already exists:
- On (default) — duplicates are silently skipped and counted as success. This is what you want when re-running an import after a failure: the contacts already created are simply ignored.
- Off — duplicates are reported as errors. Use this when you want a clean reconciliation report of exactly which contacts in your file were already in Nextal.
Contact Import Tips
A blue box sums up the rules to know:
- Status: Active, Inactive or No longer with the company (the codes ACTIVE, INACTIVE and NO_LONGER_WITH_COMPANY also work); an empty or unrecognised value imports as Active
- The Company column links the contact to the client with that exact name; a name that matches no client is ignored
- The Notes column is added as a comment on the created contact
- With the CRM module only: Priority is LOW, MEDIUM or HIGH (Hot, Medium and Cold, and the French or Spanish words, also work); other values are ignored. Latitude and longitude are kept only when both are given
Add tags to every imported contact
Pick or type tags in the multi-select. Every contact in this import will get those tags, in addition to anything from your spreadsheet’s Tags column. Handy for tagging a whole batch with something like “imported-2026-02” so you can find them later.
Attach the batch to one or more clients
Pick the clients these contacts work for. Every contact in this import will be linked to those clients, on top of any client IDs from your spreadsheet. Perfect when you’re importing 200 HR contacts from a single agency client export — set the client once here instead of repeating its ID in 200 rows.
Step 4 — Run the import
Click Start Import and watch the progress bar. For each row in your file:
- Nextal applies the column mapping
- Runs the small clean-ups above
- Validates the required fields, the email format, the alternate email format and the website address
- Creates the contact, linked to its clients — you are its contact manager, unless the row’s Contact Manager ID names someone else
- Saves the tags — yours (step 3) and the row’s
- Adds the Notes column as a comment
- Pauses briefly, then moves to the next row
You’ll see three counters update in real time: Processed, Successful, Failed. Errors are listed below the bar with the row number and a short explanation (typically a missing required field or a bad email format).
When the import finishes successfully
You’ll get a notification at the top right (“Successfully imported N contacts”), and after a couple of seconds you’re sent back to the contacts list — your new entries are right there waiting.
If every row failed
No notification, no redirect. You stay on the import step with the error list visible. Read the errors, fix your file, then start over from step 1.
How this compares to the candidate import
If you’ve used the bulk import for candidates before, here’s what’s the same and what’s different:
| Aspect | Candidate import | Contact import |
|---|---|---|
| Paths | Two: spreadsheet or a folder of CVs | One: spreadsheet only |
| Fields you can import | 21 | 21 (34 with the CRM module) |
| Required fields | First name, last name, email | Same |
| Duplicate check | By email | Same |
| Extra step option | Assign to a job | Attach to clients |
| After success | Stays on the page with retry options | Sends you back to the contacts list |
Tips
- Test with three or four rows first. Trim your file down, run the assistant end-to-end, and check the resulting contacts in the list. If the column mapping was wrong, fixing four contacts is fast.
- Use Attach to clients for client-supplied lists. If a client sends you their HR contacts, set their client once in Step 3 rather than typing the client ID in every row.
- Leave Skip duplicates on for re-runs. If an import fails halfway through, fix your file and run it again — the contacts already created will be silently skipped.
- Import the status. A column with No longer with the company marks departures from day one, and your team is warned before emailing those contacts.
- A Notes column for the history. Context your previous tool kept as free text lands in the Comments tab instead of being lost.
- Watch out for email collisions. Two contacts can’t share an email. If you find someone has two work emails on file, pick one before importing.