Creating and editing WhatsApp templates now happens in a completely rebuilt builder with a live phone preview, so what you see while you author is what your contact actually receives. And media headers no longer need a hard-coded URL: point them at a dynamic value and the right image, video, or document resolves per contact at send time.

> 📎 Send every customer their own invoice, ticket, or personalized image from a single template. No more cloning a template for every asset and waiting on Meta to approve each copy.
What's new
🎨 A rebuilt create and edit experience
- One modern layout:Category, type, naming, body, media, buttons, and variables now live together in a single redesigned builder, matching the templates and folders experience you already use for managing your library.
- Consistent everywhere you author:AI template generation now runs through the same builder end to end, and the WhatsApp template builder opened from Reputation uses it too. One interface to learn, not three.

📱 Live phone preview while you build
- See the real thing as you type:The preview updates as you edit your header, body, media, and buttons, showing exactly how the message lands on WhatsApp. Catching a layout problem in the builder costs you seconds. Catching it after Meta approval costs you another approval cycle.
🔗 Dynamic media URLs, the big one
- Media that changes per contact:Media header fields now accept custom fields and dynamic values, not just one static public URL. At send time the value resolves for that specific contact and Meta receives a concrete URL for that message.
- One template instead of many:Previously, a different image or document meant a different template, and every new template goes to Meta for approval. Now a single approved template serves every contact's unique asset.
- Works across your send surfaces:Workflows and automations, conversations, bulk actions, calendar appointments, reputation review requests, and missed call text back all support dynamic media headers.
🖼️ Personalized images in bulk, the use case worth stealing
- Every contact gets their own image, from one send:Pair dynamic media with an image personalization service like NiftyImages and a single bulk action renders a unique image for every recipient. Build the design once with a name placeholder, and let the URL resolve per contact at send time.
- What your contacts actually see:Shaun opens WhatsApp to an image reading "Here's a special offer for you, Shaun." Varun gets the same design reading "Here's a special offer for you, Varun." Robin gets his. One template, one bulk send, thousands of individually rendered images.
- Beyond names:The same approach works for personalized discount codes, event tickets with the attendee's seat, course certificates, renewal dates, or a product image matched to what that contact last bought.

✅ Failures you can actually diagnose
- No silent wrong media:A dynamic value that resolves to a valid public URL sends normally. One that resolves to something invalid or empty fails clearly, so you never discover that the wrong document went out by hearing it from your client.
Where to find it
- Template builder:Sub-account →Settings → WhatsApp → Templates → CreateorEdit
- Reputation:Reputation → Settings → WhatsApp Requests → Open WhatsApp Template Builder
- Missed call text back:Settings → Phone System → Voice → Voicemail & Missed Call TextBack → Missed Call Text Back → Customize

How to use dynamic media
For per-contact documents (invoices, contracts, IDs):
- Store a publicly reachable HTTPS URL on a contact custom field.
- In your template's media or header field, map to that custom field instead of pasting a fixed URL.
- Send from a workflow, bulk action, or conversation. Each contact receives their own file.
For personalized images at scale:
- Create your image design in a service like NiftyImages, with a placeholder for the contact's name or any other detail.
- Use the personalized image URL as your media header value, with the contact's detail supplied dynamically.
- Run a bulk action. Every contact receives an image rendered just for them.
One requirement worth noting:
the resolved value must be a publicly reachable URL that Meta can download. Private Drive links, URLs behind a login, and empty fields will fail.
Why this matters for your business
Personalized media used to carry a hidden tax. Every variation meant another template, and every template means another round of Meta approval before you can send anything. That made per-customer invoices, tickets, certificates, and personalized campaign images impractical for most agencies, so they either skipped them or built fragile workarounds.

- Run personalized image campaigns at bulk scaleinstead of sending the same flat creative to everyone
- Send genuinely personalized documentswithout multiplying your template library
- Skip the approval queuefor asset changes, since the approved template stays the same and only the resolved URL varies
- Keep automations stable, because workflows reference a dynamic value rather than a URL you hand-edit after every clone
- Catch layout mistakes before Meta sees them, with a preview that matches the real message
Open Settings → WhatsApp → Templates, build one, and try a personalized image on your next bulk send.