Preparing Your Subscriber File (Export Checklist)

What this page is for

Use this checklist to export subscribers from your current provider (for example, Attentive, Klaviyo, Postscript, a CRM, or a spreadsheet) and prepare a clean file that Coco can import reliably.

This page focuses on data preparation (fields, formatting, country codes, deduplication, and packaging opt-in evidence you already have). It does not replace your compliance review.

Do not mix channels in your export. A person who opted in to SMS or email is not automatically opted in to WhatsApp. Only include subscribers who are eligible for WhatsApp messaging.

Before you export: quick decisions

  • Choose a single “source of truth” export per upload (one provider/list at a time). If you combine sources, you must deduplicate and normalize columns first.

  • Decide your identifier strategy: phone number is the key field for WhatsApp. Email is helpful.

  • Decide what you will include as evidence: if you have opt-in timestamp, method, and source URL/form name, include them as columns (details below).

Required fields (minimum file Coco needs)

Coco can work with a minimal export, as long as every row represents a single person with a valid WhatsApp-capable phone number.

Minimum required column

  • Phone (one phone number per row, formatted correctly—see Phone number formatting)

  • Name

  • Email (optional; helps with reconciliation and support)

Strongly recommended columns

  • Country (as ISO country code like US, GB, DE) only if you can’t reliably format phones to E.164

If your provider can export both “raw phone” and “formatted phone,” export both. You can keep the raw column for audit, but you should provide one clean phone_e164 column for the import.

Phone number formatting (most common import issue)

Phone numbers must be consistent and unambiguous. The safest standard is E.164:

  • Starts with + and country code

  • No spaces, parentheses, or dashes

  • Example (US): +14155552671

  • Example (UK): +447700900123

Add a new column named something like phone_e164. Keep your original phone column unchanged for reference.

  • Remove spaces and punctuation: ( ) - .

  • Ensure the number includes a leading + and country code

  • Remove extensions (for example x123)—WhatsApp can’t message extensions

If you have mixed-country subscribers, do not assume one default country. Use your provider’s country field (if available) to apply the correct calling code.

Sort by phone length and by country. Short/long numbers usually indicate missing country codes or accidental truncation (often caused by spreadsheets).

Avoid spreadsheet auto-formatting. Excel/Google Sheets may drop leading +, remove leading zeros, or convert numbers to scientific notation. Keep phone columns as Plain text.

Country codes: how to handle them

  • If your export already contains E.164 phones, you’re done.

  • If your export contains national format phones (like 4155552671), you must add the correct country code for each row.

  • If your export contains a separate country field, use it to build E.164.

Use ISO country codes (like US, CA, GB) only as a helper. For import readiness, the best end state is a clean phone_e164 column.

File format rules (CSV)

Recommended format

  • CSV (UTF-8) is the only accepted file format.

Column rules

  • One person per row.

  • One phone per cell. If you have multiple phones for one person, split into separate rows and clearly label which is primary.

  • Headers in the first row (no merged header cells).

  • Consistent naming (use simple headers like phone, email, name).

  • No formulas in the final file. Paste values only.

Allowed characters

  • Names can include accents and non-Latin characters.

  • Phone numbers should contain only + and digits in the final column.

Deduplication checklist (what to keep when duplicates exist)

Duplicates usually happen when someone appears in multiple lists, or when the same person exists with different formatting (for example +1 415... vs 1415...).

Deduplicate by phone (primary)

  • Deduplicate using the normalized phone value.

  • If two rows share the same phone, keep one row and merge useful data:

  • Name/email: prefer the most recently updated, or the most complete.

  • Tags/segments: union them (combine unique tags into one comma-separated list).

  • Opt-in evidence fields: keep the strongest evidence (most specific method/source) and the earliest opt-in timestamp that proves consent (when applicable).

Deduplicate by email (secondary)

  • If email is present, you can also scan for cases where the same email appears with multiple phones.

  • Only include the phone that is actually eligible and intended for WhatsApp messaging.

Do not “dedupe” by deleting rows blindly. Always dedupe after normalizing phones. Otherwise you risk keeping an invalid phone and discarding the valid E.164 version.

Including opt-in evidence (where available)

If your current provider tracks opt-in details, include them in the file as separate columns. This makes review faster and reduces back-and-forth.

You don’t need perfect evidence for every subscriber to start preparing your file. Include what you have, and leave unknown fields blank rather than guessing.

Recommended evidence columns

  • opt_in_channel (example values: whatsapp)

  • opt_in_status (example values: opted_in)

  • opt_in_method (examples: checkout, popup, landing_page, click_to_whatsapp_ad, in_store_qr)

  • opt_in_timestamp (ISO format recommended: 2025-11-03T14:22:10Z)

  • opt_in_source (free text: form name, campaign name, or list/source label from your provider)

  • opt_in_url (if captured; the page where consent was collected)

  • opt_in_ip (if captured)

  • double_opt_in (example values: yes/no/unknown)

  • double_opt_in_timestamp (if applicable)

Evidence formatting rules

  • Use one timestamp format across the file (ISO 8601 is best).

  • Don’t paste screenshots into the spreadsheet. If you have screenshots or PDFs, share them separately and reference them via opt_in_source.

  • Don’t invent or infer evidence. Leave blank if unknown.

phone_e164,first_name,last_name,email,opt_in_channel,opt_in_status,opt_in_method,opt_in_timestamp,opt_in_source,opt_in_url,double_opt_in,double_opt_in_timestamp
+14155552671,Sam,Lee,[email protected],whatsapp,opted_in,checkout,2025-10-12T18:03:22Z,Shopify checkout,"https://yourstore.com/checkouts/...",yes,2025-10-12T18:04:10Z
+447700900123,Aisha,Khan,[email protected],whatsapp,opted_in,landing_page,2025-09-01T09:15:00Z,WhatsApp VIP list signup,"https://yourstore.com/vip",unknown,

If you only have a general consent boolean (for example consented=true) or an SMS consent field, include it in a separate column (for example exported_consent_field) and clearly label what it means. Do not relabel SMS consent as WhatsApp consent.

If your provider stores multiple consent events, export the most relevant WhatsApp opt-in event. If you can’t export events cleanly, keep one row per person and include the best available timestamp and source. Store the event log separately and reference it via opt_in_source.

Quality checks before you send the file

  • Phones: 100% of rows have phone populated and starting with +.

  • No obvious invalids: remove placeholders like +10000000000, 12345, or test numbers.

  • Duplicates: no repeated phone values.

  • Column hygiene: no merged cells, no formulas, no multi-line cells.

  • Encoding: export CSV as UTF-8 to preserve names and special characters.

  • Eligibility: only include subscribers intended and eligible for WhatsApp marketing.

A fast self-check: filter your phone column for values that do not match the pattern +digits. Fix those rows before sending the file.

Suggested column template (copy/paste)

Use this as a starting point and remove columns you don’t have. Keep the header names simple.

phone_e164,first_name,last_name,email,country,tags,opt_in_channel,opt_in_status,opt_in_method,opt_in_timestamp,opt_in_source,opt_in_url,opt_in_ip,double_opt_in,double_opt_in_timestamp

What not to include

  • SMS-only consent indicators relabeled as WhatsApp

  • Purchased/rented lists or scraped contacts

  • Notes containing sensitive data (medical, financial, etc.)

  • Multiple phones in one cell (split into separate rows instead)

If you’re unsure whether a segment is eligible for WhatsApp, exclude it from the file until it’s verified. Importing questionable contacts can create complaints and put messaging quality at risk.