A greeting with the customer’s name rendered into the artwork gets forwarded. The same words as plain text get scrolled past.
What "dynamic" actually means here
You design once, placing fields where the variable content should sit. At send time each recipient gets a genuinely different rendered file, not the same image with their name written in the message text below it.
That distinction matters for the use cases where the artefact is the point: a ticket, a certificate, an invoice.
Where it earns its keep
- Event tickets: one per attendee, delivered where they will find it later
- Festival greetings: personalised artwork customers actually forward
- Certificates: course and training completion generated in bulk
- Invoices and statements: a PDF per customer on a schedule
- Loyalty cards: carrying the customer’s own balance
- Booking confirmations: details rendered into a visual
Three ways to send them
The webhook route is how per-booking tickets are normally produced: the booking system posts, the ticket is generated, the customer receives it in seconds.
- In a bulk campaign, with the image generated per contact as the campaign runs.
- From inside a bot flow, once the bot knows what it needs to render.
- From a webhook, where your own system posts the data and the file is generated and sent.
Why WhatsApp beats email for tickets
An emailed ticket is one of forty emails the attendee received that week. A WhatsApp ticket is in a thread they can find by searching your business name, and it is on the phone they will be holding at the door.
It also survives the case where the attendee has no data connection at the venue, because the image is already downloaded in the chat.
Test with realistic data
- Long names are where these break; test with the longest name in your list
- Non-Latin scripts need a font that actually supports them
- Amounts and dates need consistent formatting before they are rendered
- Check the file size, since very large images are slow on poor connections