Export a WhatsApp group to CSV

CSV is the format that goes everywhere — every spreadsheet, every CRM, every mail-merge tool takes it. Which also means a badly formed one breaks in a different way in each of them. Here is what a member-list CSV should look like, and what to check before you import it.

What the file should look like

A member-list CSV is not complicated. It is one header row and one row per participant:

Name,Phone,Admin,Group
Priya Sharma,+919876543210,yes,Society Block C
Rahul Mehta,+919812345678,no,Society Block C
,+919845612378,no,Society Block C
Aisha Khan,+447700900123,no,Society Block C

Four things in that sample are deliberate, and each of them is something a sloppy export gets wrong.

Numbers in E.164 form

That means a leading +, the country code, and then the number, with no spaces, dashes or brackets: +919876543210. Not 98765 43210, not (+91) 98765-43210. E.164 is what CRMs, diallers and messaging APIs are built to accept, and it is the only form that is unambiguous when a group contains members from four countries. A stripped country code is the single most common reason a bulk import fails halfway.

An empty name is a valid row

Row four in the sample has a number and no name. That is a group member you have never saved as a contact — WhatsApp knows them to your client only as a number, so there is nothing else to write. It is not a corrupt row and it should not be dropped. The number is the half you needed.

The group name travels with the rows

Exporting one group, this column looks like padding. Export three and merge them, and it is the only thing telling you which list a number came from. It costs one column and saves a reconstruction job later.

Commas inside names are quoted

People put commas, quotes and emoji in their WhatsApp display names. A name like Sharma, Priya must be written as "Sharma, Priya" or it silently becomes two columns and shifts every field after it on that row — producing a file that opens fine and is wrong in a way you will find out about weeks later.

Encoding: the one that ruins the file

CSV has no header declaring its character encoding. The bytes are just bytes, and whatever opens the file has to guess.

Google Sheets guesses UTF-8 and is right. Excel guesses your system's regional code page and is wrong — and the failure is loud: every name in Devanagari, Tamil, Bengali, Arabic or Chinese, plus every emoji, arrives as ????? or as mojibake like सà¥à¤¨à¥à¤¤à¤¾.

The fix is a UTF-8 byte-order mark: three bytes (EF BB BF) at the very start of the file that say “this is UTF-8”. Excel detects it and stops guessing. Sheets and every sane import tool ignore it. There is no downside, and a contacts export that omits it is broken for a large share of the world's names.

If you have a file that already opened wrong, do not fix it by retyping the names. Re-open the original with the encoding set explicitly — in Excel via Data → From Text/CSV with File Origin 65001: Unicode (UTF-8), or by importing it to Google Sheets and downloading it again. The bytes in the original are almost always fine; only the reading of them was wrong.

Get a correctly formed CSV in one click

E.164 numbers, quoted names, UTF-8 with a byte-order mark. Free to scan any group.

Add to Chrome

Opening it without damage

WhereHowWatch for
Google Sheets File → Import → Upload, with Convert text to numbers turned off Leave that toggle on and the plus signs vanish
Excel Data → From Text/CSV, phone column set to Text Never double-click the file — see the Excel guide
Numbers (Mac) Open directly; it handles UTF-8 correctly Set the phone column format to Text before editing
A CRM Its own import wizard, mapping Phone to a phone field Map before importing, not after — see the CRM guide

Three cleanup passes worth doing

Deduplicate on the number, never the name

If you have merged several groups, the same person is in the file more than once. Two different people are both called Rahul; two different Rahuls do not share a phone number. Dedupe on the phone column and keep the row with the better name.

Check the row count against the group

Open Group info in WhatsApp and read the participant count in the header. If your file has fewer rows, the roster was not fully loaded when it was read — WhatsApp Web loads participants as you scroll, so an unscrolled list is genuinely incomplete. This is the single most common silent failure in any export method.

Scan for broken rows

Sort by the phone column. Anything that is not a + followed by 8 to 15 digits stands out immediately at the top or bottom of the sort — usually a name that contained an unquoted comma and shifted its row.

Importing into Google Contacts

Google Contacts accepts CSV, but only with its own header names. The two that matter are Name and Phone 1 - Value. Rename your headers to match, then use Import in the left sidebar of contacts.google.com.

Honestly, for a phone address book a vCard is less work — no header renaming, no encoding question, and it carries names and numbers as one structure. Saving group numbers to your phone covers that route for Android and iPhone.

Frequently asked questions

Why does my CSV show names as ????

Encoding. The file was written without a UTF-8 byte-order mark, or it was opened by something that assumed a regional code page. Re-import with the encoding set explicitly to UTF-8; the original bytes are almost certainly intact.

Should the phone numbers keep the plus sign?

Yes. E.164 with a leading plus and no separators is what CRMs, diallers and messaging APIs expect, and it is the only unambiguous form for an international list.

What columns should the export have?

Name and phone at minimum. Admin status and group name are worth the two extra columns — the second especially, because merged exports are otherwise impossible to attribute.

Why do some rows have a number but no name?

They are members you have never saved. WhatsApp knows them to your client only by number, so that is all there is to export. The row is valid; do not delete it.

Can I import the CSV into Google Contacts?

Yes, after renaming the headers to Name and Phone 1 - Value. A vCard skips that step entirely.

Keep reading