Skip to main content

Importing contacts

What this page is — how to load contacts from a file.

What it is for — bringing an existing contact list into Pulse in bulk.

The problem it solves — getting a database in without typing it. This import is the better-behaved of the two in Pulse: rows are validated and duplicate-checked exactly as if you had typed each contact in yourself, and email matching ignores case.

Route: /org/marketing/contacts → Import Permission: Import Contacts

Figure 1 — The contact import.

1. The permission you need​

The control appears for anyone holding Import Contacts.


2. How it differs from the lead import​

Contact importLead import
Validated the same way as creating one by handYesNo — checks less
De-duplicatesYes, on email within the projectNo
Case-sensitive duplicate checkYes — the weakness—
Columns readThe contact field setFour only
PermissionImport ContactsCreate New Leads
The contact import is the better-behaved of the two

A row is validated and duplicate-checked exactly as if you had typed the contact in yourself. The lead import does neither.


3. The duplicate check​

Each row is checked against existing contacts by email within the project, ignoring case and surrounding spaces. A row matching an existing contact is reported as a duplicate rather than creating a second record — so re-importing a file you have already loaded does not double your database.

Duplicates are reported per row, so read the result

The import summary lists rows that were skipped and why. If more were skipped than you expected, the file probably overlaps an earlier import.


4. Step by step​

  1. Lower-case the email column in your file.
  2. Contacts → Import, choose the file.
  3. Map the columns.
  4. Review the result — rows imported, rows failed, and why.
  5. Spot-check for duplicates by sorting on email.

5. The admin contract​

NeedsOr
Import ContactsThe Import control is hidden
A selected projectRows have nowhere to go
Custom field definitions matching the keys you sendRequests naming an unknown key are rejected

6. Downstream​

Imported contacts appear in the list immediately, can be added to groups, and carry an import_source recording where they came from.


7. Don't confuse this with…​

ThisNot this
Import ContactsImport Leads — a different screen in a different module
Contact importLead import
Import source — recorded by the importerSource — free text on the record

8. Troubleshooting​

SymptomCause
No Import controlThe role lacks Import Contacts. Section 1
Duplicates after one importCase-sensitive check. Section 3
Rows rejected as existingThe duplicate check working correctly
Custom fields not visibleStored as a JSON string rather than an object