> ## Documentation Index
> Fetch the complete documentation index at: https://docs.callkaro.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# WhatsApp Campaigns

> Send WhatsApp template messages to multiple contacts

## Overview

WhatsApp Campaigns allow you to send template messages to multiple phone numbers at once using a CSV file.

**Access:**

* **Create Campaign:** `https://callkaro.ai/dashboard/whatsapp/campaign/create`
* **View Analytics:** `https://callkaro.ai/dashboard/whatsapp/campaign`

***

## Creating a Campaign

<Steps>
  <Step title="Name Your Campaign">
    Enter a descriptive campaign name
  </Step>

  <Step title="Choose Phone Number">
    Select your WhatsApp phone number to send from
  </Step>

  <Step title="Choose Template">
    Select an approved WhatsApp template
  </Step>

  <Step title="Prepare CSV File">
    Create CSV with proper column headers:

    **Required Columns:**

    * **First column:** `phone` (always phone numbers)

    **Parameter Columns (if template has variables):**

    * **Header variables:** `header_0`
    * **Body variables:** `body_0`, `body_1`, `body_2`, etc.
    * **Button variables:** `button_0`, `button_1`, `button_2`, etc.
  </Step>

  <Step title="Upload CSV">
    Upload your prepared CSV file
  </Step>

  <Step title="Send Campaign">
    Click **"Send"** to start the campaign
  </Step>
</Steps>

<Warning>
  **Test first!** Always test your CSV with your own phone number before sending to all contacts.
</Warning>

***

## CSV Format

### Example Template

Template: "Hi `{{1}}`, your order `{{2}}` is confirmed!"

### CSV Structure

```csv theme={null}
phone,body_0,body_1
+919876543210,John,ORD123
+919876543211,Jane,ORD124
+919876543212,Bob,ORD125
```

### Column Headers Reference

| Template Variable | CSV Column Header |
| ----------------- | ----------------- |
| Header `{{1}}`    | `header_0`        |
| Body `{{1}}`      | `body_0`          |
| Body `{{2}}`      | `body_1`          |
| Body `{{3}}`      | `body_2`          |
| Button `{{1}}`    | `button_0`        |
| Button `{{2}}`    | `button_1`        |

<Note>
  **First column must always be `phone`** with phone numbers in international format (e.g., +919876543210)
</Note>

***

## Complete CSV Example

**Template with header, body, and button variables:**

```csv theme={null}
phone,header_0,body_0,body_1,button_0
+919876543210,John,Premium Plan,Dec 25,CONFIRM123
+919876543211,Jane,Basic Plan,Dec 26,CONFIRM124
+919876543212,Bob,Pro Plan,Dec 27,CONFIRM125
```

**Maps to:**

* Header: Hi `{{1}}` (John/Jane/Bob)
* Body: Your `{{1}}` subscription starts on `{{2}}` (Premium Plan + Dec 25)
* Button: Track order: `{{1}}` (CONFIRM123)

***

## Testing Your Campaign

<Steps>
  <Step title="Create Test CSV">
    Make a CSV with only your phone number

    ```csv theme={null}
    phone,body_0,body_1
    +919876543210,Test Name,Test Value
    ```
  </Step>

  <Step title="Upload and Send">
    Upload test CSV and send
  </Step>

  <Step title="Verify Message">
    Check your WhatsApp for the message

    * Verify template renders correctly
    * Confirm variables populated properly
  </Step>

  <Step title="Fix Issues">
    If needed, adjust CSV format and retest
  </Step>

  <Step title="Send Full Campaign">
    Once test succeeds, upload full contact list
  </Step>
</Steps>

***

## Campaign Analytics

View campaign performance at: `https://callkaro.ai/dashboard/whatsapp/campaign`

### Metrics Available

**Messages Sent**

* Total messages successfully sent

**Messages Errored**

* Failed deliveries (invalid numbers, blocked users, etc.)

**Messages Seen**

* Messages read by recipients
* Note: Only counts users with "Read Receipts" enabled
* Users with read receipts OFF are NOT counted

<Tip>
  Seen count may be lower than actual reads due to privacy settings.
</Tip>

***

## Best Practices

<AccordionGroup>
  <Accordion title="Always test first" icon="vial">
    * Send to your own number first
    * Verify all variables populate correctly
    * Check message formatting
  </Accordion>

  <Accordion title="Use correct phone format" icon="phone">
    * International format: +\[country code]\[number]
    * India: `+919876543210`
    * No spaces or dashes
  </Accordion>

  <Accordion title="Match CSV headers exactly" icon="table">
    * Use `body_0`, `body_1`, NOT `body1` or `Body_0`
    * Case-sensitive
    * Numbering starts from 0
  </Accordion>

  <Accordion title="Keep CSV clean" icon="broom">
    * No extra columns
    * No empty rows
    * Proper UTF-8 encoding
  </Accordion>
</AccordionGroup>

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Messages not sending" icon="circle-xmark">
    **Check:**

    * Template is APPROVED
    * Phone number is CLOUD\_API
    * CSV format is correct
    * Phone numbers in international format
  </Accordion>

  <Accordion title="Variables not populating" icon="brackets-curly">
    **Issue:** Template shows `{{1}}` instead of values

    **Solution:**

    * Verify CSV column headers match exactly
    * Check `body_0`, `body_1` numbering
    * Ensure no typos in headers
  </Accordion>

  <Accordion title="High error rate" icon="triangle-exclamation">
    **Common causes:**

    * Invalid phone numbers
    * Blocked by recipients
    * WhatsApp account limits reached

    **Solution:**

    * Validate phone numbers
    * Check Meta quality rating
    * Spread campaigns over time
  </Accordion>

  <Accordion title="Low seen count" icon="eye-slash">
    **Why:** Many users disable read receipts

    **Note:** This is normal. Seen count only includes users with read receipts ON. Actual read rate is likely higher.
  </Accordion>
</AccordionGroup>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="WhatsApp Templates" icon="file-lines" href="/whatsapp/templates">
    Create and manage templates
  </Card>

  <Card title="WhatsApp Phone Numbers" icon="hashtag" href="/whatsapp/phone-numbers">
    Manage your numbers
  </Card>
</CardGroup>
