You create a WhatsApp template with an image header.
You upload an image.
Meta reviews the template.
The template gets approved.
So when you launch your campaign, you might reasonably expect that image to be sent automatically.
It doesn't work that way.
One of the most confusing parts of WhatsApp template management is understanding the difference between the media sample used when creating the template and the actual media file sent to the customer.
This distinction applies to templates with:
- Image headers
- Video headers
- Document/PDF headers
And understanding it can save you from a lot of failed campaigns and confusing API errors.
The short version
Think of a media template as having two separate stages:
Template creation
You upload a sample media file so Meta can review what your template looks like.
↓
Message sending
You provide the actual media file that should be delivered to the customer.
The two files can be different.
In fact, that's one of the main reasons media headers are designed this way.
1. The media you upload when creating a template
When you create a template with a media header, you select the header type:
- Image
- Video
- Document
You then provide a sample file.
For example, suppose you're creating a promotional template:
[IMAGE HEADER]
Your order is ready
Hi {{1}}, your order #{{2}} has been confirmed.
You might upload a sample product image while submitting the template.
That image allows Meta's review system to understand what the header will look like.
But this is not your campaign image.
The sample exists primarily to help Meta review the template.
It doesn't mean that every message sent using that template must contain the same image.
2. The media you provide when sending the message
Now imagine your business has 500 customers.
You want to use the same approved template, but every customer needs to receive a different image.
For example:
- Customer A → Product A image
- Customer B → Product B image
- Customer C → Product C image
- Customer D → Product D image
You don't need to create 500 templates.
You create one media-header template and provide the appropriate media when sending each message.
This is what makes media headers useful for dynamic campaigns.
Think of the template as the structure
A useful way to understand this is:
Template
Defines the structure and message content.
[IMAGE]
Hi {{1}},
Your order #{{2}} has been shipped.
Track your order below.
Send
Defines the actual values and media.
Image: customer-specific-product.jpg
{{1}} = Rahul
{{2}} = ORD-58291
The template tells WhatsApp what the message is supposed to look like.
The send request supplies the actual information and media for that particular recipient.
Why does Meta need a sample at all?
Because the template needs to be reviewed before you can use it.
Meta needs to evaluate the template's content and structure, including the type of media header you've selected.
For example, if your template has an image header, the review process needs to see an example image.
If it has a video header, the reviewer needs to see an example video.
If it has a document header, the reviewer needs to see an example document.
So the sample essentially answers:
"What kind of media will this template contain?"
It doesn't necessarily answer:
"What exact file will every customer receive?"
The three media header types
Let's look at each one separately.
Image headers
Image headers are useful for things such as:
- Product images
- Promotional creatives
- Event banners
- Delivery-related images
- Personalized customer visuals
For template creation, supported image formats include JPEG and PNG, with a maximum size of 5 MB.
For example:
Template creation:
sample-product.jpg
5 MB or less
Then at send time:
customer-product.jpg
The actual image can be different for every message, as long as it satisfies the media requirements.
Video headers
Video headers work in much the same way.
You might create a template such as:
Here's a quick look at what's new.
During template creation, you upload a sample video for review.
Later, your campaign can provide the actual video that should be delivered.
For template media headers, video is commonly supported as MP4, with a maximum size of 16 MB. Video compatibility also depends on the supported codec requirements.
A typical workflow might look like:
Create template
↓
Upload sample-video.mp4
↓
Meta reviews template
↓
Template approved
↓
Create campaign
↓
Upload actual campaign-video.mp4
↓
Send message
Again, the first video and the second video don't have to be the same file.
Document headers
Document headers are particularly useful for businesses sending things like:
- Invoices
- Statements
- Reports
- Tickets
- Booking documents
- Receipts
- Certificates
For WhatsApp template document headers, PDF is the relevant format, with a maximum size of 100 MB.
For example, you could have a template:
Your monthly statement is ready.
When creating the template, you might upload:
sample-statement.pdf
But when sending the message, you could provide:
statement-rahul-october.pdf
for one customer and:
statement-priya-october.pdf
for another.
The template remains the same.
The document changes.
This is where many campaigns go wrong
Let's say you've created and approved a template called:
order_confirmation
The template has an image header.
You uploaded:
sample.jpg
during template creation.
The template gets approved.
Later, you create a campaign and select:
order_confirmation
Then you expect Samvad to automatically use sample.jpg.
That's the wrong mental model.
The sample image was provided for the template creation/review process.
Your campaign still needs to provide the media that should actually be sent.
Template approval does not mean media is permanently attached
This is probably the most important concept in the entire article.
An approved media template doesn't mean:
"This exact image/video/PDF is now permanently attached to this template."
It means something closer to:
"This template has been reviewed with this type of media header and can be used for messages."
The actual media can be supplied when you send the message.
This is especially important when building a WhatsApp platform because templates and campaigns need to be treated as two separate layers.
One template can power many different messages
Imagine an e-commerce company wants to send:
Your order has been shipped.
They could create separate templates for every product image.
That would be extremely inefficient.
Instead, they can have one template:
[IMAGE]
Your order #{{1}} has been shipped.
Then the campaign or notification system can supply the appropriate image for each message.
This allows the same approved template to support many different customers and use cases.
What about campaigns in Samvad?
This distinction is particularly important when using a platform such as Samvad.
You might have:
Template
Name: product_update
Header: Image
Body:
Hi {{1}},
Check out the latest update for your account.
Campaign
Campaign: October Product Launch
Recipient 1 → image-a.jpg
Recipient 2 → image-b.jpg
Recipient 3 → image-c.jpg
The template defines the message structure.
The campaign determines the actual media being sent.
This separation makes it possible to reuse the same approved template across multiple campaigns.
What happens if the campaign file is too large?
This is another important distinction.
The sample you uploaded during template creation may have been perfectly valid.
That doesn't mean every file you later upload for a campaign will be valid.
For example:
Template sample:
product.jpg
2 MB
✓ Valid
But your campaign might contain:
product-large.png
8 MB
✗ Too large for an image header
The template can still be approved.
The campaign media can still fail.
Template approval doesn't validate every future media file you might send.
Your sending system should validate the media before attempting to send it.
Keep these limits in mind
For media headers, the commonly documented limits are:
| Header type | Format | Maximum size |
|---|---|---|
| Image | JPEG, PNG | 5 MB |
| Video | MP4 | 16 MB |
| Document | 100 MB |
These limits are based on the documented WhatsApp Business Platform media requirements.
There are also additional technical requirements for particular media types. For example, supported video codecs matter in addition to simply having an .mp4 extension.
So don't rely only on the filename.
A common developer mistake: storing the sample as the campaign media
If you're building your own WhatsApp integration, avoid treating these two things as the same object.
You effectively have:
Template
↓
Review sample
and separately:
Message
↓
Actual media
The template tells your system what kind of media is expected.
The message tells your system which media should actually be sent.
Keeping those concepts separate in your database and application logic will make your messaging system much easier to maintain.
What should Samvad users remember?
If you're using a media header template in Samvad, remember these three rules:
1. The template sample is for approval
The media you provide while creating the template gives Meta an example to review.
2. Your campaign needs its own media
When you actually send the message, provide the image, video, or PDF that should go to the recipient.
3. The campaign media still needs to meet the requirements
A template being approved doesn't mean an arbitrary file can be sent through it.
Check the format, size, and other media requirements before sending.
The easiest way to remember it
Think about it like a document template.
If you create an invoice template, the template defines:
How the invoice should look.
But every customer gets a different invoice.
WhatsApp media templates work similarly.
The approved template defines:
What kind of message you're sending.
The campaign supplies:
What the customer actually receives.
So:
Sample at template creation ≠ Media at message send time
Once you understand that distinction, media-header templates become much easier to work with.
Building media campaigns with Samvad?
Samvad lets you create WhatsApp templates and use them across campaigns and customer messaging workflows.
When working with image, video, or document headers, remember to treat the template's review sample and the campaign's actual media as two separate parts of the messaging workflow.
That small distinction can prevent a lot of confusion when a perfectly approved template suddenly refuses to send the media you expected.
