Contacts and bulk sends

Import CSV or Excel lists, map template variables, and send to thousands — paced under your limit, with new-number warm-up.

Updated September 26, 2026 · 3 min read

Importing contacts

Upload a CSV or Excel (.xlsx) file on Contacts → Upload sheet, or paste/attach it in chat (preview_contacts then upload_contacts). The upload page has a sample file in both formats showing the layout: a phone column, an optional name, and any extra columns you want templates to use.

  • The phone column is detected by its contents, whatever it's called ("Phone", "Mobile", "WA No."…). If none qualifies you're asked to pick one.
  • Numbers should include the country code; common formats are normalised to international format.
  • Duplicate numbers are merged; rows without a usable number are skipped and counted.
  • Every other column is kept, so it can fill template variables later.
  • Each upload goes into a list (segment) you name.
  • You confirm that everyone on the list agreed to get WhatsApp messages from you. WhatsApp requires it, and messaging people who didn't agree gets numbers reported and restricted.

Adding and managing contacts

Add contact on the Contacts page adds one person: phone number (pick the country, type the rest), name, which lists they're in, and extra fields like city or order number for templates. If the number already exists, what you enter is added to it.

Click any contact to edit their name and fields, move them between lists, or delete them. Deleting removes them from every list and past bulk-send reports; tick Also delete their chat history for a data-erasure (GDPR) request. To stop messaging someone without deleting them, they can reply STOP.

The Contacts page searches by name or number, filters by list, and pages through everyone. From chat: search_contacts, add_contact, update_contact, delete_contact.

Sending in bulk

Choose who gets it: Everyone in Contacts (including people who aren't in any list), one of your lists, or Choose people — tick the ones you want and they're saved as a list you can reuse. From chat, use a list id or "everyone" with plan_campaign and create_campaign.

Bulk send → New bulk send, or ask your assistant.

  1. Pick an approved template and a list.
  2. Map each {{n}} to a column, the contact's name, or fixed text.
  3. Review the preview: real rendered messages for real contacts, contacts missing a value, messages left on your plan, and today's pace.
  4. Send now or schedule.

Opted-out numbers are skipped automatically and never charged against your allowance.

Pacing

Meta limits how many unique people each number can message per 24 hours (messaging limits). Sends are paced under that limit; anything over it waits and goes out as capacity frees up, instead of failing.

Warm-up

When you connect a number you're asked whether it has sent bulk messages before. If not, its first days of bulk sending are capped:

Day Cap
1 50
2 100
3 200
4+ the number's Meta limit

The clock starts on the first bulk send. The preview tells you how many go out today and roughly how many days the whole send takes. You can change the answer by reconnecting the number (Connect WhatsApp → Update connection).

Tracking

Each bulk send has a report: who read it, who hasn't yet, and who couldn't be sent to — with the reason in plain words (not on WhatsApp, opted out, no card on the WhatsApp account…). Filter by group, search by name or number, download any group as CSV, save a group as a list (say, everyone who didn't read it) for a follow-up, or retry the failed ones. From chat: list_bulk_send_recipients, save_bulk_send_group_as_list, retry_failed_sends.

Each bulk send has a live page: queued, sending, sent, delivered, read and failed (with Meta's reason). Or ask: "how did the April offer do?" (get_campaign_status).

Do this from your AI assistant

SendFromChat connects Claude, ChatGPT, Cursor or any MCP client to the WhatsApp Business API — templates, bulk sends, inbox, chatbots and sequences, just by asking. 30 days free, no card.

Start free