Help Center

How Inbox Penny works, and what to do when it doesn’t

⌘K

Import contacts from a CSV

Bring a list over, and understand what the importer changes.

Import from Contacts → Import. Any CSV works — you map its columns to fields on the next screen, so headers don’t need to match anything.

How it works

  1. Upload the file

    We read the headers and guess the mapping. Check it — especially if your headers are unhelpful.

  2. Map the columns

    Email is the only one that matters. Everything else is optional, and anything you don’t map is ignored.

  3. Choose a list (optional)

    Add everyone to a list as they import, or let a Lists column in the file do it per row.

  4. Import

    Valid rows land immediately. Rejected rows come back as a CSV with a reason on each one.

What happens to contacts you already have

Contacts are matched on email. An address we already hold is updated rather than duplicated — but read this before re-importing a partial file:

  • Standard fields are replaced. If your file has no phone column, existing phone numbers are cleared. The file is treated as the truth, not as a patch.
  • Custom fields are merged. Fields your file doesn’t mention are left alone. A blank cell for a field you did map clears that one.
  • Status only changes if the file says so. No status column means nobody’s status moves — so you can’t accidentally resubscribe people who opted out.

A file of just emails will wipe names

Importing a cut-down file over an existing audience is the usual way people lose data. If you only want to add people to a list, import the columns you want to keep — or use a segment and bulk actions instead.

Why fewer rows import than the file contains

Every address is checked twice before it lands:

  • Is it a well-formed address? Typos, stray spaces, two addresses in one cell.
  • Can that domain receive mail at all? We look the domain up. gmial.com and long-dead company domains fail here.

Addresses that have already hard-bounced anywhere on the platform are refused too. That’s a fact about the address, not about you — and mailing it again would cost your delivery.

Nothing is silently dropped: the rejected rows come back as a CSV with your original columns plus a Reason column. Fix and re-import if the failures were typos.

Grouping people as they import

Map a column to Lists and each contact joins the lists named in their own row. Lists that don’t exist are created. Separate several with ;, , or |.

That’s what makes a migration arrive already grouped rather than as one flat pile — and our own export writes the same column, so export → edit → re-import keeps your grouping.

A cap on new lists

If a file would create more than a hundred lists, we import the contacts and ignore the list column. That’s almost always a column mapped to the wrong field — point it at “Notes” and every distinct value becomes a list. The wizard shows the count before you commit.

When a column looks wrong

We look at the data, not just the header, and warn if a column doesn’t look like what it’s mapped to — phone numbers in First name, dates in Email. Auto-matching goes by header, so it fails exactly where headers are unhelpful, and nothing downstream can catch it: every value is a valid string, so “Hi 555-0142,” would ship to thousands of inboxes.

The warning is advice, never a block. Real contact data is messy — companies in a name column, “N/A”, international phone formats — and a false alarm that stopped a legitimate import would cost more than the mistake it prevents.

Common issues

Far fewer contacts imported than expected

Download the rejected-rows CSV and read the Reason column. Dead domains are the usual cause on an old list.

Names disappeared from existing contacts

The file didn’t include them. Standard fields are replaced, not merged — re-import with the full columns to restore them.

Everyone imported as unsubscribed

Your file has a status column mapped, with values we read as not subscribed. Remove the mapping and re-import; without it, contacts default to subscribed.

Hundreds of junk lists appeared

A column was mapped to Lists that shouldn’t have been. Delete them from Lists — deleting a list never deletes contacts.

FAQs

Will importing send anyone an email?+

No, unless you deliberately tick the box that treats the import as new signups — and that asks you to type YES and shows how many people it would email. Off by default, because importing an old list and mailing everyone a welcome is unrecallable.

Can I import the same file twice?+

Yes. Matching is on email, so the second run updates rather than duplicates, and list memberships it already created are left alone.

What about people who unsubscribed?+

They stay unsubscribed. A file can’t resubscribe someone unless it explicitly carries a status column saying so — and doing that to people who opted out is both a delivery problem and a legal one.

Is there a size limit?+

Nothing you’re likely to hit. Large files take longer because every domain is checked, so give a big import a minute.

Where to go next