Waitlist with confirmation email
Record each signup as an event, keep every joiner as a contact, and send them a confirmation without lifting a finger
There's no simpler Bitelio setup than a waitlist: your app tracks one event, one workflow reacts to it, and one email goes out.
Setup
Create the confirmation template
Go to Templates → New template and build a Marketing template. Wherever you want contact data to appear, drop in a {{variable}} placeholder:
Subject: You're on the list, {{firstName}}
Hi {{firstName}}, thanks for joining the {{product}} waitlist.
We'll let you know as soon as your spot opens up.Track the signup from your backend
When the form is submitted, hit POST /v1/track from your server. This must use a secret key (sk_*), so keep the call out of browser code entirely.
curl https://api.bitelio.com/v1/track \
-H "Authorization: Bearer sk_your_secret_key" \
-H "Content-Type: application/json" \
-d '{
"event": "waitlist.joined",
"email": "ada@example.com",
"data": { "firstName": "Ada", "product": "Beta" }
}'One request does two things: it upserts the contact (subscribed unless you say otherwise) and logs a waitlist.joined event against them. Every key inside data is written onto the contact, so the template can read it back as {{firstName}}, {{product}}, and so on.
Pick a stable event name
Once a workflow has run even once, its trigger event is locked in permanently. Choose a namespaced name like waitlist.joined instead of a generic one you might later want for something else.
Create the workflow
Under Workflows → New workflow:
- Trigger:
EVENTonwaitlist.joined - Add a
SEND_EMAILstep pointing at the template from step 1
Flip the workflow on. New workflows start disabled, and a disabled workflow never triggers — no matter how many events arrive.
Tagging signups for later
To make waitlist members easy to segment down the road, insert an UPDATE_CONTACT step ahead of the email:
{ "stage": "waitlist", "waitlistSource": "{{event.referrer}}" }Now a segment on stage == "waitlist" gives you a clean audience for follow-up campaigns — a tidier approach than segmenting on whether waitlist.joined was ever fired.