← All guides CAMPAIGNS · AUDIENCES · TEMPLATES

From a contact list to a message that feels personal.

Build a recipient list from the sources you already use, then write one message that adapts to every person. Review the finished message before it leaves your WhatsApp account.

On this pageChoose a section
01 · BUILD YOUR AUDIENCE

Start with the people you already know.

See detailed groups, labels and opt-out examples →

Choose recipients from WhatsApp groups, Business labels or saved contacts, or start a campaign from pasted numbers or a spreadsheet. Wassender keeps the working list in the extension so you can review it before composing.

  • Open the Audience tab and choose Groups, Labels, Contacts or Opt-outs.
  • Use the WhatsApp list, Paste or Spreadsheet source in a new campaign.
  • Opt-outs and invalid or duplicate numbers are excluded from a campaign.
Real Wassender extension screenshot showing spreadsheet import, phone column mapping, country code and recipient count
Choose a source, map the phone column, then review the recipient count
02 · IMPORT YOUR DETAILS

Keep every useful column with the recipient.

When you choose Spreadsheet, upload an .xlsx, .xls or .csv file. The first row supplies column names; select the column that contains phone numbers and set a country code for local numbers that start with zero.

  • Keep names, order IDs, appointment dates and other message fields in separate columns.
  • Check the recipient count before moving to the message editor.
  • Use Paste for a quick phone list when you do not need spreadsheet variables.
Wassender spreadsheet import screen with the uploaded file, phone column and country code
A real extension capture of spreadsheet import
03 · WRITE AND PERSONALIZE

One draft. A different message for each row.

Use column names as variables, such as [name] or [order]. Wassender fills in each recipient’s values when it prepares the message.

  • Add wording variations with braces and conditional text for different customer details.
  • Use the attachment control for an image, video or PDF.
  • Save a useful message as a template to reuse in a later campaign.
Real Wassender campaign editor showing message variables, conditions, attachment and template controls
Compose one message with the fields from your spreadsheet
04 · PREVIEW BEFORE SENDING

Check the message for each person.

The preview resolves variables and formatting against a recipient in your list. Step through the list to catch an empty field or a detail that needs a fallback before you continue.

  • Move between recipients with the preview arrows.
  • Confirm the WhatsApp-style formatting and the final wording.
  • Review the final recipient count on the next screen before starting.
Real Wassender per-recipient message preview with resolved name and order values
The preview shows the rendered message for one recipient at a time
05 · ADD PERSONAL IMAGES

Give each contact their own picture.

Add an image column to your spreadsheet — links or file names — and switch on Personal images after writing the message. Each contact receives the images in their row, with the message as the caption.

  • Coupons, receipts, tickets and product photos work best.
  • See the full personal images guide for every option.
Personal images panel with every image matched
Every contact's image matched and ready

A · Download a spreadsheet and import it exactly like this

These are small, real files you can open in Excel and import into Wassender. The phone numbers are demo data. Replace them with your own test contacts before sending. The blank Name cell in the order example is intentional: it lets you test a fallback.

  1. Download orders.xlsx below. Keep the first row as the column headers. Put one customer in each following row.
  2. Open New campaign → Spreadsheet → choose the downloaded file. In the phone column selector choose Phone.
  3. The example numbers already include their country code (1). For your own local numbers, choose your country code; keep phone cells as text so Excel does not remove the leading zero.
  4. Check the recipient count. Three rows should give three recipients unless a number is excluded by your opt-out list or validation.
  5. Paste the matching message below into What it says. Preview every recipient before the final confirmation.

If your count is wrong: check the selected phone column first; then check blank phone cells, duplicates and opt-outs. Names belong in Name, not in the phone column. You can import .xlsx, .xls or .csv.

B · Order updates: a name, an order and a missing name

PhoneNameOrderPoints
12025550101MonaA-104212
12025550102OmarA-10434
12025550103—A-104410

Paste this message into the campaign:

Hi [name|friend], your order *[order]* is ready. Reply here to arrange pickup.

Mona → Hi Mona, your order A-1042 is ready. Omar → Hi Omar, your order A-1043 is ready. The blank Name row → Hi friend, your order A-1044 is ready. All three messages also include the pickup sentence.

The asterisks make the order number bold in WhatsApp. Name supplies [name]; Order supplies [order].

Preview: the exact message for every row

Customer rowCustomer receives
1 · MonaHi Mona, your order A-1042 is ready. Reply here to arrange pickup.
2 · OmarHi Omar, your order A-1043 is ready. Reply here to arrange pickup.
3 · —Hi friend, your order A-1044 is ready. Reply here to arrange pickup.

C · Appointments: use the customer’s date, not today’s date

PhoneNameAppointment DateAppointment Time
12025550101Mona15 October 202610:00 AM
12025550102Omar16 October 20262:30 PM

Paste this message into the campaign:

Hi [name], your appointment is on *[appointment_date]* at *[appointment_time]*. Reply 1 to confirm or 2 to reschedule.

Mona receives: Hi Mona, your appointment is on 15 October 2026 at 10:00 AM. Reply 1 to confirm or 2 to reschedule. Omar receives his own date, 16 October 2026, and 2:30 PM.

Appointment Date becomes [appointment_date]; Appointment Time becomes [appointment_time]. These sample dates are spreadsheet text. Replies 1 and 2 are instructions to customers; set up separate Autopilot rules or answer them yourself to handle those replies.

Preview: the exact message for every row

Customer rowCustomer receives
1 · MonaHi Mona, your appointment is on 15 October 2026 at 10:00 AM. Reply 1 to confirm or 2 to reschedule.
2 · OmarHi Omar, your appointment is on 16 October 2026 at 2:30 PM. Reply 1 to confirm or 2 to reschedule.

D · Loyalty offers: test both sides of the condition

PhoneNamePointsCode
12025550101Mona12MONA20
12025550102Omar4OMAR10
12025550103Sara10SARA20

Paste this message into the campaign:

Hi [name], [if points>=10?you get 20% off|you get 10% off]. Use code *[code]* at checkout.

Mona (12 points) → Hi Mona, you get 20% off. Use code MONA20 at checkout. Omar (4 points) → Hi Omar, you get 10% off. Use code OMAR10 at checkout. Sara (exactly 10 points) also gets 20% off, with SARA20.

>= means “at least”, so 10 passes the condition. This message displays the codes you provide; create or validate those discount codes in your shop before sending.

Preview: the exact message for every row

Customer rowCustomer receives
1 · MonaHi Mona, you get 20% off. Use code MONA20 at checkout.
2 · OmarHi Omar, you get 10% off. Use code OMAR10 at checkout.
3 · SaraHi Sara, you get 20% off. Use code SARA20 at checkout.

E · Arabic columns and an Arabic customer message

Phoneالاسمالطلبالنقاط
12025550101منىA-104212
12025550102عمرA-10434
12025550103—A-104410

Paste this message into the campaign:

أهلاً [الاسم|عميلنا العزيز]، طلبك *[الطلب]* جاهز.
[if النقاط>=10?لك خصم 20% على طلبك القادم|لك خصم 10% على طلبك القادم]

منى receives her name, order A-1042 and 20% off. عمر receives order A-1043 and 10% off. The blank-name customer receives عميلنا العزيز, order A-1044 and 20% off.

Choose Phone for the phone column. The message variables use the exact Arabic headers: الاسم, الطلب and النقاط.

Preview: the exact message for every row

Customer rowCustomer receives
1 · منىأهلاً منى، طلبك A-1042 جاهز.
لك خصم 20% على طلبك القادم
2 · عمرأهلاً عمر، طلبك A-1043 جاهز.
لك خصم 10% على طلبك القادم
3 · —أهلاً عميلنا العزيز، طلبك A-1044 جاهز.
لك خصم 20% على طلبك القادم

Spreadsheet preview: duplicates, empty cells and invalid numbers

PhoneNameOrderPoints
12025550101MonaA-104212
+1 (202) 555-0101Duplicate MonaA-99994
—Missing phoneA-10434
123Invalid phoneA-10444
12025550102OmarA-10454
12025550103—A-104610

This file has 6 rows but prepares 3 recipients: Mona, Omar and the blank-name customer. The formatted Mona number is a duplicate; the blank phone is left out; 123 is too short. The first Mona row is kept, so her order stays A-1042, not A-9999.

If Omar’s number is also on your opt-out list, the prepared count drops to 2. Try this in preview; you do not need to send a campaign to inspect the count. A valid-looking phone number does not confirm that it has a WhatsApp account.

NEXT GUIDE

Ready to send with care?

Review pace and campaign controls before starting, then follow every result in the live log.

Read the safe sending guide
Chat with us