# Create a Campaign

> Step-by-step guide to creating WhatsApp campaigns in Waflow, including template selection, audience targeting, variable mapping, and preview.

Source: https://edesy.in/docs/waflow/campaigns/create-campaign

This guide walks you through creating a WhatsApp campaign in Waflow. You'll learn how to select templates, choose your audience, map variables, and preview your messages before sending.

## Before You Begin

Ensure you have the following ready:

- **Approved template**: At least one template with "Approved" status
- **Contact list**: Contacts imported into Waflow
- **Variable data**: Data to fill in template placeholders
- **Media files**: If using templates with image/video/document headers

## Accessing the Campaign Builder

1. Navigate to your workspace in Waflow
2. Click **Campaigns** in the left sidebar
3. Click the **Create Campaign** button

The campaign builder opens with a step-by-step wizard.

## Step 1: Campaign Details

### Campaign Name

Give your campaign a descriptive name:

- **Be specific**: "December Newsletter" not "Campaign 1"
- **Include date or context**: "Black Friday Sale 2024"
- **Internal use only**: Contacts won't see this name

**Good examples:**
- "Order Shipped Notifications - Dec 2024"
- "Weekly Newsletter - Issue 47"
- "Flash Sale - 24hr Only"
- "Appointment Reminders - Week 52"

### Campaign Description (Optional)

Add notes about the campaign purpose:
- Who is the audience
- What is the goal
- Any special considerations

This helps team members understand the campaign context.

## Step 2: Select Template

### Browsing Templates

The template selector shows all approved templates in your workspace:

- Filter by category (Marketing, Utility, Authentication)
- Search by template name
- Sort by date created or name
- Preview templates before selecting

### Template Preview

Click on a template to see:
- Full message preview
- Header, body, footer, and buttons
- Variables used
- Template category and language

### Selecting Your Template

1. Browse or search for your template
2. Click to preview
3. Click **Select Template** to confirm

> **Note:** Only templates with "Approved" status appear in the list. If you don't see your template, check its approval status.

### Template with Media Headers

If your template has an image, video, or document header:
- You'll upload the media file later in the process
- Prepare your media file according to the requirements:
  - **Image**: JPEG/PNG, max 5MB
  - **Video**: MP4, max 16MB
  - **Document**: PDF, max 100MB

## Step 3: Choose Audience

### Audience Options

Waflow offers multiple ways to define your campaign audience:

#### All Contacts

Send to every contact in your workspace.

**Best for:**
- Broad announcements
- Company-wide updates
- Small contact lists

**Caution:** Consider if all contacts should receive this message.

#### Segments

Select a predefined segment based on contact criteria.

**Examples of segments:**
- "Customers who purchased in last 30 days"
- "Newsletter subscribers"
- "VIP members"
- "Leads from website"

**To use:**
1. Click **Segments** tab
2. Select one or more segments
3. View estimated audience size

#### Tags

Filter contacts by tags you've assigned.

**Examples:**
- "newsletter-subscriber"
- "vip-customer"
- "product-beta-tester"

**To use:**
1. Click **Tags** tab
2. Select required tags
3. Choose match type:
   - **All tags**: Contact must have all selected tags
   - **Any tag**: Contact must have at least one tag

#### Upload CSV

Import a list specifically for this campaign.

**CSV requirements:**
- Must include phone number column
- Phone numbers with country code
- UTF-8 encoding
- Maximum 100,000 rows

**To use:**
1. Click **Upload CSV** tab
2. Drag and drop or browse for file
3. Map CSV columns to contact fields
4. Preview the import

#### Manual Selection

Pick individual contacts for small, targeted sends.

**Best for:**
- Testing before full send
- Very small, specific audiences
- Personalized outreach

**To use:**
1. Click **Manual** tab
2. Search for contacts
3. Click to add to audience
4. Review selected list

### Audience Preview

After selecting your audience:
- View total contact count
- See sample contacts
- Verify the audience looks correct

> **Tip:** Always verify your audience size is what you expect before proceeding.

### Exclusions

Waflow automatically excludes:
- Contacts who have opted out
- Invalid phone numbers
- Numbers that previously failed
- Blocked contacts

You can add additional exclusions:
1. Click **Add Exclusion**
2. Select contacts, tags, or segments to exclude
3. View updated audience count

## Step 4: Map Variables

### Understanding Variable Mapping

Template variables (`{{1}}`, `{{2}}`, etc.) need to be connected to actual data. This step tells Waflow what data to insert for each variable.

### The Mapping Interface

For each variable in your template, you'll see:
- Variable number and position in template
- Sample value from template creation
- Dropdown to select data source

### Data Source Options

#### Contact Fields

Map to standard contact data:

| Field | Description |
|-------|-------------|
| First Name | Contact's first name |
| Last Name | Contact's last name |
| Full Name | Combined first and last |
| Email | Email address |
| Phone | Phone number |

#### Custom Fields

Map to your custom contact fields:
- Any custom fields you've created
- Business-specific data points
- Dynamic values stored per contact

#### Static Value

Use the same value for all recipients:

**When to use:**
- Discount codes that apply to everyone
- Event dates
- Store addresses
- Website URLs

**To set:**
1. Select "Static Value" from dropdown
2. Enter the value in the text field
3. Value appears the same for every recipient

#### Computed Values

Dynamic values generated at send time:

| Computed Value | Description |
|----------------|-------------|
| Current Date | Today's date |
| Expiry Date | Date + offset (e.g., 7 days) |
| Random Code | Unique code per recipient |

#### CSV Column (if using CSV upload)

Map to columns from your uploaded file:
1. Select "CSV Column"
2. Choose the column name
3. Values come from each row

### Mapping Example

**Template:**
```
Hi {{1}},

Your order #{{2}} is ready for pickup at {{3}}.

Show this message at the counter.
Valid until: {{4}}
```

**Mapping:**

| Variable | Source | Value |
|----------|--------|-------|
| `{{1}}` | Contact Field | First Name |
| `{{2}}` | Custom Field | orderNumber |
| `{{3}}` | Static Value | "123 Main Street" |
| `{{4}}` | Computed | Expiry Date (+7 days) |

### Fallback Values

For contact fields that might be empty:

1. Click the **gear icon** next to the mapping
2. Enter a fallback value
3. This value is used when the field is empty

**Example:**
- Field: First Name
- Fallback: "there"
- Empty field result: "Hi there," instead of "Hi ,"

### Formatting Options

Apply formatting to mapped values:

| Format | Description | Example |
|--------|-------------|---------|
| Uppercase | ALL CAPS | SARAH |
| Lowercase | all lowercase | sarah |
| Capitalize | Title Case | Sarah Johnson |
| Currency | Format as money | $1,500.00 |
| Date | Format date | Dec 28, 2024 |

## Step 5: Upload Media (If Required)

If your template has a media header:

### Image Upload

1. Click **Upload Image**
2. Select your file (JPEG or PNG)
3. Preview the image
4. Confirm upload

**Image tips:**
- Use 800x418 pixels for best display
- Keep important content centered
- Optimize file size for faster delivery

### Video Upload

1. Click **Upload Video**
2. Select your MP4 file
3. Wait for processing
4. Preview the video

**Video tips:**
- Keep videos under 30 seconds
- Use clear, high-quality footage
- Include captions if possible

### Document Upload

1. Click **Upload Document**
2. Select your PDF file
3. The filename will be visible to recipients

**Document tips:**
- Use descriptive filenames
- Keep file size reasonable
- Ensure content is mobile-readable

### Dynamic Media (Advanced)

For personalized media per recipient:
1. Select "Dynamic Media URL"
2. Map to a contact field containing the media URL
3. Each recipient receives their specific media

## Step 6: Preview Messages

Before sending, preview how messages will appear.

### Single Contact Preview

1. Click **Preview Message**
2. Select a contact from your audience
3. View the fully rendered message
4. Check all variables are correctly replaced

**Things to verify:**
- Name is correctly inserted
- All variables have values
- Formatting looks correct
- Media displays properly
- Buttons show expected text/URLs

### Multi-Contact Preview

Preview messages for multiple contacts:
1. Click **Preview Multiple**
2. See side-by-side comparisons
3. Catch any data issues before sending

### Test Send

Send a test message to yourself or team:
1. Click **Send Test**
2. Enter a phone number
3. Receive the actual message
4. Verify on a real device

> **Tip:** Always send a test before launching a campaign to a large audience.

## Step 7: Configure Sending

### Send Immediately

Send messages as soon as you complete setup:
1. Select **Send Now**
2. Messages begin processing immediately
3. Monitor progress in real-time

### Schedule for Later

Set a specific date and time:
1. Select **Schedule**
2. Choose date and time
3. Select time zone
4. Campaign queues and sends automatically

For detailed scheduling options, see [Campaign Scheduling](https://edesy.in/docs/waflow/campaigns/scheduling).

### Sending Speed

Control the rate of message delivery:

| Speed | Messages/Minute | Best For |
|-------|-----------------|----------|
| Normal | Up to 80 | Standard campaigns |
| Slow | Up to 30 | Sensitive content |
| Fast | Up to 200 | Urgent notifications |

> **Note:** Actual speed may be limited by your WhatsApp tier and rate limits.

## Step 8: Review and Launch

### Final Review Checklist

Before launching, verify:

- [ ] Campaign name is descriptive
- [ ] Correct template is selected
- [ ] Audience size is expected
- [ ] All variables are mapped
- [ ] Fallback values are set for empty fields
- [ ] Media is uploaded (if required)
- [ ] Preview messages look correct
- [ ] Schedule is set correctly (if scheduling)

### Cost Estimate

Waflow shows an estimated cost:
- Based on audience size
- Template category pricing
- Currency in your account settings

### Launch Campaign

1. Review the summary screen
2. Confirm all settings are correct
3. Click **Launch Campaign**
4. Confirm in the popup dialog

### After Launch

Once launched:
- Campaign status changes to "Sending"
- Real-time progress is visible
- You can pause if needed
- Monitor delivery status

## Campaign Management

### Editing Drafts

Before sending, you can edit any aspect:
1. Go to **Campaigns**
2. Find your draft campaign
3. Click **Edit**
4. Make changes
5. Save or launch

### Duplicating Campaigns

Reuse campaign settings:
1. Find an existing campaign
2. Click the **menu icon** (three dots)
3. Select **Duplicate**
4. Modify as needed
5. Save as new campaign

### Deleting Drafts

Remove unwanted drafts:
1. Find the draft campaign
2. Click the **menu icon**
3. Select **Delete**
4. Confirm deletion

> **Warning:** This action cannot be undone.

## Troubleshooting

### Template Not Appearing

- Verify template is approved
- Check template is in the same workspace
- Refresh the page

### Audience Count is Zero

- Verify contacts exist in workspace
- Check segment/tag filters
- Review exclusion rules

### Variable Mapping Error

- Ensure all variables are mapped
- Check for data in contact fields
- Set fallback values for empty fields

### Media Upload Failed

- Check file format and size
- Ensure stable internet connection
- Try a different file

## Next Steps

- [Campaign Scheduling](https://edesy.in/docs/waflow/campaigns/scheduling) - Time your campaigns optimally
- [Campaign Tracking](https://edesy.in/docs/waflow/campaigns/tracking) - Monitor delivery and engagement
- [Template Variables](https://edesy.in/docs/waflow/templates/variables) - Master personalization
