How to put a live waitlist ticket in Mailchimp emails
Published September 28, 2026 · Mailchimp steps checked against its help center on September 28, 2026
Lineup keeps each subscriber’s spot and referral count from your waitlist tool’s webhook and draws them as a two-image ticket. In Mailchimp, an audience field tagged LINEUPID holds each subscriber’s lineup_id, and a Code block carries the ticket. Today the field is filled with a CSV join in your browser; direct Mailchimp sync is coming.

What you’ll build
- A ticket of two images side by side: the subscriber’s spot in line, such as #784, and how many friends joined with their link, out of a goal such as 5.
- Optionally, a referral leaderboard image for updates and newsletters, with the reader’s own row highlighted when they’re in the top eight.
DynaMail draws both images each time an inbox loads them, from the numbers Lineup keeps. You paste the ticket into your emails once; nothing in the email changes after that.
What you need
- A free DynaMail account. Lineup is free, and its ticket images are ordinary DynaMail widgets you can restyle in the editor.
- A waitlist tool that sends webhooks: LaunchList on the Grow plan or higher, Waitlister on the Growth plan or higher, or anything that can post JSON to a URL, such as Tally, Zapier or your own backend.
- Your waitlist subscribers in a Mailchimp audience, with the same email addresses, and room for one more audience field.
Set it up, step by step
Create your waitlist ticket
In the DynaMail dashboard, open Lineup and start a new waitlist ticket. Under Your ticket, enter your product’s name, how many spots a referral moves someone up (250 by default), the referral goal (5 by default) and the reward for reaching it, such as “Early access”. Lineup creates three widgets from this: the spot, the friends bar and the leaderboard.
Subscribers’ names on the leaderboard stay off unless you turn them on.
Connect your waitlist tool
Under Connect your waitlist tool, pick your tool and copy the webhook URL Lineup shows you. It’s private to this waitlist; if it leaks, you can rotate it in the waitlist’s settings.
LaunchList (Grow plan or higher): click Plugins in the sidebar, then Create a webhook, and add the URL. LaunchList sends a
new_userevent for each signup and anemail_verifyevent when someone confirms their address.Waitlister (Growth plan or higher): go to Integrations in the sidebar, click Manage on the Webhooks card, enter the URL, and select new sign-ups, referrals completed and subscriber unsubscribed.
Anything else: have it post each signup as JSON to the URL, with the subscriber’s ID or email and the referral code or referrer they came with. Lineup’s field map tells it where those are in your payload.
Then tell Lineup whether your tool confirms email addresses. If it does, a referral counts once the friend confirms; if not, it counts at signup. Click Send test signup to see a test referral land, and use Import existing signups (CSV) if people joined before you connected Lineup.
Add a LINEUPID field to your audience
In Mailchimp, click Audience, open the three-dot menu and choose Audience fields and merge tags. Click Create a new field, name it “Lineup ID”, pick a text data type, enter
LINEUPIDas its merge tag, and save. Mailchimp merge tags are at most 10 characters, in capitals.Fill the field with the CSV join
Export the audience: click Audience, then Export audience and Export CSV. Mailchimp emails you when the export is ready; it can be a ZIP with one CSV per contact type, and the subscribed file is the one you need.
In Lineup, under Put the ticket in your emails, open the Mailchimp tab and drop the CSV into the CSV join. Your browser sends Lineup only the email column, gets back each subscriber’s lineup_id, and saves a copy of your file with a lineup_id column added.
Import that file back: click Audience, then Add contacts and Import contacts, and upload it. Check Update any existing contacts, and when you match columns, match lineup_id to the Lineup ID field. An import doesn’t change anyone’s marketing status.
People who join after the export don’t have a lineup_id in Mailchimp yet, so run the join again before each send. Direct Mailchimp sync, which fills the field as people join, is coming.
Paste the ticket into a Code block
In the new builder, click a Code block or drag one into your layout, and paste the ticket in the Code menu. In the legacy builder, drag in the Code block, paste, and click Save & Close. The Image block will not do: in the new builder it only uploads or browses the content studio.
Ticket (Mailchimp)
<table role="presentation" width="600" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;"> <tr> <td width="372" style="padding:0;"><img src="https://img.dynamail.io/widgets/YOUR-SPOT-WIDGET-ID/render.png?recipient=*|LINEUPID|*" width="372" height="236" alt="Your spot on the YOUR-PRODUCT waitlist" style="display:block;border:0;" /></td> <td width="228" style="padding:0;"><img src="https://img.dynamail.io/widgets/YOUR-FRIENDS-WIDGET-ID/render.png?recipient=*|LINEUPID|*&target=5" width="228" height="236" alt="Friends who joined with your link" style="display:block;border:0;" /></td> </tr> </table>Lineup’s setup page gives you this snippet with your three widget IDs and your goal filled in. Here,
YOUR-SPOT-WIDGET-ID,YOUR-FRIENDS-WIDGET-IDandYOUR-LEADERBOARD-WIDGET-IDstand for them, and 5 is an example goal.*|LINEUPID|*is the field’s merge tag, so each subscriber’s lineup_id lands in both image URLs. A lineup_id is only lowercase letters and digits, so it needs no URL encoding. For a dark email, add&scheme=darkto both URLs.For an update or newsletter, the leaderboard goes in a second Code block:
Leaderboard
<img src="https://img.dynamail.io/widgets/YOUR-LEADERBOARD-WIDGET-ID/render.png?recipient=*|LINEUPID|*" width="600" height="528" alt="YOUR-PRODUCT referral leaders" style="display:block;border:0;max-width:100%;height:auto;" />Test with a real subscriber
Mailchimp doesn’t fill contact merge tags in test emails, so a test send shows the ticket without a number. Open Preview, turn on Enable live merge tag info, and pick a subscriber from your import; the ticket should show their spot. Mailchimp also suggests sending a live email to a small test segment.
In Lineup, Check the merge tag takes a value, such as a lineup_id from your subscriber list, and shows the images that reader will get. Paste an unfilled tag there too, to see the ticket a reader gets when the tag fails: it has no number.
What subscribers will see
Their spot and friends as of the moment their inbox loaded the images. Apple Mail can load images when the email arrives and Gmail keeps its own copy, so reopening an old email may still show an old spot. Each new email asks DynaMail for the ticket when it’s opened, and DynaMail draws the current spot and marks the image not to be cached. Some inboxes, such as Gmail’s image proxy and Apple Mail Privacy Protection, can keep showing a copy they fetched earlier, so the number can lag.
Limits and privacy
- Image URLs carry the random lineup_id, never an email address.
- The CSV join sends only the email column, in batches, and Lineup keeps nothing from it; the file with lineup_id is assembled in your browser.
- A subscriber whose Lineup ID field is empty sees the ticket without a number, never someone else’s.
Sources
Every Mailchimp step above comes from these pages, read on September 28, 2026. Apps rename menus often; if a step no longer matches what you see, the source page is the place to check.
- LaunchList: Webhook (opens in a new tab)
- LaunchList: Pricing (opens in a new tab)
- Waitlister: Webhooks (opens in a new tab)
- Waitlister: Pricing (opens in a new tab)
- Mailchimp: Manage audience and signup form fields (opens in a new tab)
- Mailchimp developers: Add merge field (opens in a new tab)
- Mailchimp: View or export your contacts (opens in a new tab)
- Mailchimp: Import contacts to Mailchimp (opens in a new tab)
- Mailchimp: Use Code content blocks in the new builder (opens in a new tab)
- Mailchimp: Use Code content blocks (legacy builder) (opens in a new tab)
- Mailchimp: Preview and test your email campaign (opens in a new tab)
Frequently asked questions
Does Lineup sync with Mailchimp directly?
Not yet. Today you add lineup_id with the CSV join: export your audience, drop the file into Lineup, and import the result back into Mailchimp. Direct sync, which keeps the field filled as people join, is coming.
Do email addresses leave my browser during the CSV join?
Only the email column is sent, in batches, so Lineup can match each address to a lineup_id. Lineup compares hashes and keeps nothing from the file; the finished CSV is put together in your browser.
What do new subscribers see before their lineup_id is in Mailchimp?
The ticket without a number, because their LINEUPID field is still empty. Run the CSV join again before each send so everyone who joined since the last one gets their ticket.
Why does a test email show the ticket without a number?
Mailchimp doesn’t fill contact merge tags in test emails. Use Preview with live merge tag info turned on, or send a live email to a small test segment.