An event generates more per-person collateral than almost any other kind of marketing. Invitations, confirmations, tickets, reminders, badges, and certificates afterwards - each ideally carrying the attendee's name, and each currently either generic or made by hand.
For fifty attendees, by hand is tedious. For five hundred it is somebody's entire week. And the irony is that events are exactly where personalization matters most: people are attending in person, under their own name, wearing a badge with it on.
All of it can generate automatically from the registration data you already have.
Where personalization pays off across an event
The whole sequence benefits, but not equally. In rough order of return:
The ticket or confirmation. The highest-value item. This is the thing people screenshot, save to their phone, and show at the door. A ticket with their name on it feels like a ticket; a generic graphic feels like a receipt.
The badge. If you print badges, they are already personalized - the question is only whether producing them is a manual job. It should not be.
Reminders. A reminder showing their name, the date, and the venue outperforms a generic one, because it reads as a message rather than a broadcast. For multi-track events, showing their sessions is better still.
Invitations. Personalizing the invite lifts response, particularly for B2B events where the recipient is deciding whether this is worth a day out of the office.
Post-event certificates. Covered in detail in our guide to generating certificates automatically.
If you only do one, do the ticket.
How it works
Each of these is one template with dynamic fields, rendered per attendee from your registration data.
https://media.okzest.com/img?c=YOUR-COMPANY-ID&i=YOUR-DESIGN-ID&name=Sarah%20Chen&session=Keynote&date=14%20March
In an email, those values become merge tags from your registration data:
<img src="https://media.okzest.com/img?c=YOUR-COMPANY-ID&i=YOUR-DESIGN-ID&name={{ attendee_name }}&date={{ event_date }}"
alt="Your ticket for {{ event_name }}, {{ attendee_name }}"
width="600" />
One template per asset type - invitation, ticket, reminder, badge - and every attendee gets their own version with no per-person work.
Getting the data from your registration platform
The attendee data already exists; it just needs to reach the template.
Eventbrite, Ticket Tailor, Luma, Hopin and similar all expose new registrations through Zapier or webhooks. The useful chain is: registration created → generate personalized ticket → email it to the attendee. Set up once, then it runs unattended - someone books at midnight and has their ticket a minute later.
A registration form (Typeform, Tally, Google Forms) works the same way if you are handling bookings yourself.
A spreadsheet is fine for a fixed guest list. Export attendees, run the batch, send. Suitable for invitations to a known list rather than open registration.
The immediacy matters more than it might seem. A ticket arriving instantly confirms the booking worked, which is the thing every attendee wants to know at the moment they hit submit.
Adding a QR code
Most event tickets need a scannable code, and this is worth explaining because it works slightly differently.
An image generator renders images, not barcodes. But a dynamic image layer accepts any image URL - including one from a QR generation service. So the pattern is:
- Your registration platform produces a unique reference per attendee
- A QR service turns that reference into a QR image at a URL
- You pass that URL into your template as a dynamic image layer
The ticket then contains a branded design, the attendee's name, and their own scannable code, all generated in one pass.
Check what your ticketing platform already provides - many generate QR codes and expose them as image URLs, in which case you can pass that URL straight through and skip the extra service.
Designing for names you have not seen yet
Event attendee lists are the messiest data you will encounter, because attendees type their own names into a booking form.
Design for long names. Full names are longer than first names, and you will get double-barrelled surnames, middle names, and people who type their full title. Build the layout around the longest plausible entry.
Expect inconsistent capitalisation. People type "sarah chen" at speed. If a badge or ticket is going to be printed or shown, consider normalising capitalisation in your data before rendering.
Handle the ones who typed something else. Some proportion will enter an email address, a company name, or a single character. For anything printed, a quick scan of the list before generating is worth the ten minutes.
Print resolution for anything physical. Badges and printed tickets need higher resolution than screen graphics, and PDF output rather than JPG if they are going to a printer.
Leave the name room to breathe. On a badge especially, the name is the functional element - it needs to be readable across a room, not squeezed into a corner of the design.
The reminder sequence
Reminders are where most events leave value on the table, because they are usually generic and sent to everyone identically.
Things worth rendering into a reminder image:
- Their name, so it reads as addressed to them
- The date and start time, ideally in their timezone for online events
- The venue, or the joining link context for virtual
- Their specific sessions, if the event has tracks and they selected any
- Their table or seat, for dinners and seated events
The last two are the ones that genuinely change behaviour, because they contain information the attendee actually needs and cannot get elsewhere without digging through their inbox.
What to test before the event
Events have a hard deadline and no second chance, which makes testing more important here than in ordinary campaigns.
- Render the twenty longest names on your actual attendee list and look at every one.
- Render an attendee with missing data - someone who skipped an optional field.
- If there is a QR code, scan it. From the rendered image, on a phone, as a door steward would. Do not assume.
- Print one badge if you are printing, and check it at arm's length.
- Check the ticket on a phone, since that is where it will be shown at the door.
- Send yourself the full sequence - invitation, confirmation, reminder - as a real attendee would receive it.
Frequently asked questions
How do I create event invitations with each attendee's name pre-filled? Build one invitation template with a dynamic text field for the name, then connect it to your guest list or registration platform. Each recipient's email renders their own version, with no design work per person.
Can I put a QR code on a personalized ticket? Yes. Generate the QR code from your attendee's unique reference - many ticketing platforms already provide one as an image URL - and pass that URL into a dynamic image layer in your template, alongside their name.
Which registration platforms does this work with? Any that can trigger an automation or expose registrations - Eventbrite, Ticket Tailor, Luma, Hopin, or a form like Typeform or Tally. The chain is registration created, ticket generated, email sent.
Can tickets be generated the moment someone books? Yes, by triggering on the registration event rather than running a batch. The attendee receives their ticket within a minute of booking, which also confirms the booking succeeded.
What about printed badges? Same template approach, but produce a PDF at print resolution rather than a screen-resolution image, and check a physical proof before running the batch.
How do I handle attendees who typed their name badly? Scan the list before generating anything that will be printed or shown at a door. Normalising capitalisation is usually worth doing programmatically; the genuinely odd entries need a human eye.
Can reminders show each attendee their own sessions? Yes, if your registration data records their selections. Session names, times, table numbers and seat allocations can all be rendered as dynamic fields.
Do I need a developer? No. Building the templates is visual editing, and connecting to your registration platform is a Zapier workflow. A developer is only needed for a direct API integration.
Start with the ticket
If you are running an event soon, build one template - the ticket or confirmation - and wire it to your registration flow. That is the highest-value item, it takes about half an hour, and it improves the moment every attendee is most attentive: immediately after they commit.
OKZest generates event images from a single template as a URL or a file, with attendee data populating each one. It connects to registration platforms through Zapier or the API, and works with any email platform.
Create a free account, no credit card required.
Related reading: generating certificates automatically for the post-event side, OKZest for event organizers, and put every recipient's name inside your email image.