How to import contacts

Bring contacts in from a CSV: match the columns, check a dry run that lists every problem, import, then download the rows that didn't make it.

Bring people in from a spreadsheet: add tags and custom-field values to contacts you already talk to, and keep a record of people who haven't messaged you yet. An import sends nothing to anyone.

Who can import: owners and admins. The Import button sits beside Add contact in the Contacts page header, where importing is turned on for your workspace.

Before you start: what an import can and can't do

  • Instagram contacts are matched by username. A username that belongs to someone who has messaged you adds to their contact. A new one is added as a record marked Unverified: Instagram only allows messages to people who messaged you first, and when that person does, their conversation arrives as its own contact.
  • An import can't give anyone permission to be messaged on Instagram.
  • A WhatsApp number needs documented permission. A yes in the permission column needs where permission was given and when. Anyone without it is imported with no permission on record, and nothing is sent to them. A no is always recorded.
  • An import never re-subscribes someone who opted out. They can send START, or write to you.
  • A contact you merged is updated where it lives now. A row that matches a record you merged into another contact updates that contact. A WhatsApp yes for a merged number isn't carried over to another number, so that row is listed with the reason.
  • An import doesn't start anything. It fires no rules, enrols nobody in a sequence and sends no message.

The file is a CSV with the column names in its first row, separated by commas, semicolons or tabs. It can have up to 5,000 rows, 50 columns and 2 MB — split a bigger list into several files.

Step 1: choose the file

  1. Open Contacts and click Import in the page header.
  2. If WhatsApp is turned on for your workspace, choose Instagram or WhatsApp. One file is one channel.
  3. Under CSV file, choose your file.
Contacts — Import beside Add contact, and each row's channel, handle and permission in words
Contacts — Import beside Add contact, and each row's channel, handle and permission in words

Step 2: match the columns

Each column in your file gets a row with an example value and an Import as menu. HyperDM guesses from the column names, so check every guess.

Import asWhat the column holds
Instagram username@maya.makes, maya.makes, or a link to their profile.
Instagram ID (from a HyperDM export)The digits from a HyperDM contact export.
WhatsApp numberInternational form: + and the country code, like +44 7700 900123.
NameWhat to call them, up to 100 characters. For contacts you already have, it follows your choice under Contacts you already have.
TagsTags separated by commas or semicolons — up to 20 per row, each up to 40 characters.
A custom fieldA value the field can hold: a number; yes or no; a date written 2026-09-14; a date and time written 2026-09-14 16:30; or a List's values separated by commas.
WhatsApp permission (yes / no)yes or no. Leave it blank if you don't know.
Where permission was givenA form on your website, At checkout, A signed paper form, or Other written permission.
When permission was givenA date written 2026-09-14 that isn't in the future.
Permission noteOptional, on one line.
Don't importThe column is left out.

Then:

  1. Under Contacts you already have, choose what happens to people already in HyperDM:
    • Fill in what's missing adds tags and fills in an empty name or field. Values they already have stay.
    • Update with the file's values replaces their name, or a field, when the file has a value for it. Tags are added, never removed. An empty cell never clears anything.
    • Leave them as they are changes nothing about them — except an opt-out, which is always recorded.
  2. Untick Add people who aren't contacts yet if you only want to update people you already have.
  3. Click Check the file.

Step 3: check the dry run

Nothing is saved yet. The dry run counts the rows in the file, the new contacts, the contacts it would update or leave alone, and the rows that can't be imported — each one listed by its row number with the reason.

If the check is refused, your file and every match stay exactly as they were, with the reason beside them. Click Back to change a match.

Step 4: import

  1. Click Import.
  2. Read the results: how many contacts were added, updated, unchanged, skipped and not imported.
  3. If any rows didn't import, click Download the rows that didn't import. It's a CSV of those rows exactly as your file had them, with the reason on each. Fix them and import that file.

The import checks everything again and runs as one step. If it fails, nothing is imported and it says so. Clicking Import again is safe: an import can't run twice. The download of rows that didn't import is kept for 30 days.

Common problems

MessageWhat to do
"This row has no Instagram username." or "This row has no WhatsApp number."Fill in the identity column, or check it's matched to Instagram username or WhatsApp number.
"Use their username — letters, numbers, periods and underscores."An Instagram username can't contain spaces or other symbols.
"Start with + and the country code…"Write the number in international form.
"More than one contact matches this — HyperDM won't guess which one."Two contacts already share that username. Update them from the Contacts page instead.
"No contact has this Instagram ID."IDs only exist for people who messaged you. Match the username instead.
"They opted out. An import can't re-subscribe anyone…"Nothing to fix: they stay opted out until they send START or write to you.
"This number was merged into another contact, and permission can't move from one number to another…"Import the yes against the number it was given for, or leave the permission blank.
"A yes needs where permission was given…" or "…when permission was given…"Match the Where and When columns, or leave the permission blank.
"The same contact as row N."Keep one row per person.
"This file is too big to send in one go."Split the file, or match fewer columns.

Everything else on the page is in Contacts.

Try HyperDM for free

50 free conversations a month, no card. Connect Instagram and follow the guide you just read.

Get startedNO CARD · LIVE IN 10 MINUTES · CANCEL ANYTIME