# Create a Template

> Step-by-step guide to creating WhatsApp message templates in Waflow, including headers, body content, footers, and interactive buttons.

Source: https://edesy.in/docs/waflow/templates/create-template

This guide walks you through creating a WhatsApp message template in Waflow. Templates are the foundation of your WhatsApp campaigns, so taking time to craft them properly will improve your approval rates and campaign effectiveness.

## Before You Begin

Before creating a template, make sure you have:

- A Waflow workspace with an active WhatsApp connection
- A clear understanding of your message purpose
- Sample content for any variables you plan to use
- Media files ready (if using image, video, or document headers)

## Accessing the Template Builder

1. Navigate to your workspace in Waflow
2. Click **Templates** in the left sidebar
3. Click the **Create Template** button in the top right corner

The template builder opens with a form on the left and a live preview on the right.

## Step 1: Basic Information

### Template Name

Enter a unique name for your template. This name is:

- Used internally to identify the template
- Visible to WhatsApp reviewers
- Cannot be changed after submission

**Naming conventions:**

- Use lowercase letters, numbers, and underscores only
- No spaces or special characters
- Maximum 512 characters
- Be descriptive: `order_confirmation_v2` is better than `template1`

**Examples:**
- `welcome_message`
- `order_shipped_notification`
- `appointment_reminder_24hr`
- `promo_summer_sale_2024`

### Language

Select the language for your template. WhatsApp supports 70+ languages including:

- English (en)
- Hindi (hi)
- Spanish (es)
- Portuguese (pt_BR)
- French (fr)
- And many more

> **Tip:** Create separate templates for each language you want to support. You can duplicate templates and translate the content.

### Category

Choose the appropriate category for your message:

| Category | Use For | Example |
|----------|---------|---------|
| Marketing | Promotions, offers, announcements | Sale notifications, newsletters |
| Utility | Transaction updates, confirmations | Order status, appointment reminders |
| Authentication | OTP and verification codes | Login codes, password resets |

> **Warning:** Selecting the wrong category is a common reason for template rejection. Choose based on the actual content and purpose of your message.

## Step 2: Configure the Header (Optional)

Headers add visual appeal and context to your messages. You can choose from four header types:

### Text Header

A short text line at the top of your message.

- Maximum 60 characters
- Supports one variable `{{1}}`
- Displays in bold

**Example:** "Order Update for {{1}}"

### Image Header

Add an image to make your message more engaging.

**Requirements:**
- Format: JPEG or PNG
- Recommended size: 800 x 418 pixels (1.91:1 ratio)
- Maximum file size: 5MB

**Best for:** Product images, promotional banners, event graphics

### Video Header

Include a video in your template.

**Requirements:**
- Format: MP4
- Maximum duration: 30 seconds recommended
- Maximum file size: 16MB

**Best for:** Product demos, tutorials, announcements

### Document Header

Attach a PDF document to your message.

**Requirements:**
- Format: PDF only
- Maximum file size: 100MB
- Document name is visible to recipients

**Best for:** Invoices, tickets, contracts, brochures

> **Note:** Media headers (image, video, document) must be uploaded when creating a campaign. You can set a placeholder during template creation and provide the actual file when sending.

## Step 3: Write the Body (Required)

The body is the main content of your template. This is where your message lives.

### Character Limits

- Minimum: 1 character
- Maximum: 1024 characters
- Variables count toward the limit based on sample values

### Adding Variables

Variables are placeholders for dynamic content. Use the format `{{1}}`, `{{2}}`, `{{3}}`, etc.

**To add a variable:**

1. Click the **Add Variable** button or type `{{` in the text area
2. The next sequential number is automatically inserted
3. Enter a sample value for the variable

**Example body text:**
```
Hi {{1}},

Your order #{{2}} has been confirmed!

Order summary:
- Items: {{3}}
- Total: {{4}}

Expected delivery: {{5}}

Thank you for shopping with us!
```

### Text Formatting

WhatsApp supports basic formatting in template bodies:

| Format | Syntax | Example |
|--------|--------|---------|
| Bold | `*text*` | *Important* |
| Italic | `_text_` | _Note_ |
| Strikethrough | `~text~` | ~Deleted~ |
| Monospace | ``` `text` ``` | `Code` |

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

Your *exclusive* offer is here!

Use code: `SAVE20` for _20% off_ your next order.

~Regular price: $100~ *Sale price: $80*
```

### Body Writing Tips

1. **Start with a greeting**: "Hi {{1}}" makes messages personal
2. **State the purpose early**: Users should know why they received the message
3. **Keep it concise**: Shorter messages have higher read rates
4. **Use paragraphs**: Break up text for readability
5. **End with a CTA**: Tell users what to do next

## Step 4: Add a Footer (Optional)

Footers appear at the bottom of your message in smaller, gray text.

### Footer Guidelines

- Maximum 60 characters
- No variables allowed
- Static text only

### Common Footer Uses

- **Opt-out instructions**: "Reply STOP to unsubscribe"
- **Company name**: "From Acme Corporation"
- **Disclaimer**: "Terms and conditions apply"
- **Contact info**: "Questions? Call 1800-XXX-XXXX"

> **Tip:** Including opt-out instructions in the footer helps with compliance and can improve approval rates.

## Step 5: Configure Buttons (Optional)

Buttons make your templates interactive. WhatsApp supports two types of buttons:

### Call-to-Action (CTA) Buttons

CTA buttons trigger an action when tapped.

**Phone Number Button:**
- Opens the dialer with a pre-filled number
- Button text: Up to 25 characters
- Enter the complete phone number with country code

**Website URL Button:**
- Opens a URL in the browser
- Button text: Up to 25 characters
- Static URL or dynamic URL with one variable

**Dynamic URL Example:**
- URL: `https://example.com/track/{{1}}`
- The `{{1}}` variable is replaced with tracking data when sending

**Limits:** Maximum 2 CTA buttons per template

### Quick Reply Buttons

Quick reply buttons let users respond with pre-defined text.

- Each button sends its text as a reply when tapped
- Button text: Up to 25 characters each
- Maximum 3 quick reply buttons

**Example quick replies:**
- "Yes, I'm interested"
- "No, thanks"
- "Tell me more"

> **Note:** You can use either CTA buttons OR quick reply buttons, but not both in the same template.

### Button Configuration Tips

1. **Keep text short**: "Shop Now" is better than "Click here to shop"
2. **Use action verbs**: Start with verbs like "Buy," "Learn," "Track"
3. **Match user intent**: Align buttons with what users want to do
4. **Test URLs**: Ensure all links work before submission

## Step 6: Add Sample Values

Before submitting your template, you must provide sample values for all variables. These help WhatsApp reviewers understand how your template will be used.

### Sample Value Guidelines

- **Be realistic**: Use values that represent actual usage
- **Be appropriate**: Avoid placeholder text like "XXXX" or "test"
- **Match the context**: If `{{1}}` is a name, use a real name

**Example samples:**

| Variable | Sample Value |
|----------|--------------|
| `{{1}}` | John |
| `{{2}}` | ORD-12345 |
| `{{3}}` | 2 items |
| `{{4}}` | $150.00 |
| `{{5}}` | December 25, 2024 |

## Step 7: Preview and Submit

### Preview Your Template

The right side of the template builder shows a live preview. Review:

- Overall appearance and layout
- Variable placement and formatting
- Button text and configuration
- Header media placeholder

### Submit for Approval

1. Review all template details
2. Click **Save as Draft** to save without submitting
3. Click **Submit for Approval** to send to WhatsApp

After submission:
- Template status changes to "Pending"
- Review typically takes 24-48 hours
- You'll receive a notification when the status changes

## Common Template Examples

### Order Confirmation (Utility)

```
Name: order_confirmation
Category: Utility
Language: English

Header: Text - "Order Confirmed! #{{1}}"

Body:
Hi {{2}},

Thank you for your order!

Order Details:
- Items: {{3}}
- Subtotal: {{4}}
- Shipping: {{5}}
- Total: {{6}}

Track your order: {{7}}

Footer: Questions? Reply to this message

Button: [Track Order] → https://shop.com/track/{{1}}
```

### Appointment Reminder (Utility)

```
Name: appointment_reminder
Category: Utility
Language: English

Body:
Hi {{1}},

This is a reminder for your upcoming appointment:

📅 Date: {{2}}
⏰ Time: {{3}}
📍 Location: {{4}}

Please arrive 10 minutes early.

Need to reschedule? Reply to this message or call us.

Footer: From HealthCare Clinic

Buttons:
- [Confirm] Quick Reply
- [Reschedule] Quick Reply
```

### Promotional Offer (Marketing)

```
Name: summer_sale_promo
Category: Marketing
Language: English

Header: Image (promotional banner)

Body:
Hi {{1}},

☀️ *Summer Sale is HERE!* ☀️

Get up to {{2}}% off on {{3}}.

Use code: *{{4}}* at checkout

Offer valid until {{5}}.

Don't miss out!

Footer: Reply STOP to opt out

Button: [Shop Now] → https://shop.com/sale
```

## Next Steps

After creating your template:

1. **Wait for approval**: Check the [Approval Process](https://edesy.in/docs/waflow/templates/approval-process) for details
2. **Set up variables**: Learn more in [Template Variables](https://edesy.in/docs/waflow/templates/variables)
3. **Create a campaign**: Use your template in a [Campaign](https://edesy.in/docs/waflow/campaigns/create-campaign)
