Eventbrite Waitlist and Capacity Manager
When an Eventbrite event sells out, the flow captures further interest onto a Dataverse waitlist; when a cancellation/refund frees capacity, it offers the spot to the next person in line via a time-limited claim email, and promotes them on claim. Maximizes attendance and automates the sold-out waitlist dance.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow automates the sold-out waitlist dance for Eventbrite events. On an hourly schedule it reads the organization's live events, measures each event's remaining capacity (total tickets minus sold), and when a sold-out event has freed a seat it offers that seat to the next person on a Dataverse waitlist via a time-limited claim email and marks their row Offered.
Why it matters: Sold-out events still leak attendance to cancellations and refunds. An automated, fair, first-in-line waitlist with timed claim windows fills freed seats without anyone manually chasing the list.
Build: FlowLibs CF-560 - API-first deployment (Dataverse workflow record) - ships Off - Flow Checker 0 errors / 0 warnings.
Use Case
An events team running popular, frequently sold-out Eventbrite events wants freed capacity offered automatically to waitlisted people in queue order, each with a fair time-limited window to claim before the offer rolls to the next person - maximizing turnout while keeping a governed, auditable record in the CRM.
Flow Architecture
Recurrence Every Hour
Recurrence (Hour/1)Polls hourly for freed capacity
Initialize variables
Initialize VariableClaim window, waitlist entity set name, claim base URL, Eventbrite REST base, and per-event capacity/sold tallies
Get Live Events
Eventbrite GetOrganizationEventsLists live (published) events for the org
For Each Event
Foreach (concurrency 1)Processes each live event: tally capacity/sold from ticket classes, and when seats are freed offer to the next waitlister
Get Ticket Classes
HTTP GET (Eventbrite REST)/v3/events/{id}/ticket_classes/ capacity + sold (fallback)
List Next Waitlister
Dataverse ListRecordsNext Waiting entry for this event, ordered by position, top 1
Send Claim Email
Outlook SendEmailV2Time-limited claim link to the next attendee
Update Waitlister
Dataverse UpdateRecordMarks row Offered, stamps offered-on + expiry
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_EventbriteOrgId | String | (set per tenant) | Eventbrite organization id for GetOrganizationEvents |
| flowlibs_EventbriteApiBase | String | https://www.eventbriteapi.com | Eventbrite REST base for the ticket-classes call |
| flowlibs_EventbriteApiToken | String | (set per tenant) | Bearer token for the Eventbrite REST fallback |
| flowlibs_WaitlistTable | String | flowlibs_waitlists | Waitlist entity set name (used by ListRecords) |
| flowlibs_ClaimWindowHours | String | 24 | Hours a waitlister has to claim a freed seat |
| flowlibs_ClaimBaseUrl | String | https://your-tenant.sharepoint.com/sites/Events/claim | Base URL of the seat-claim page |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Eventbrite | shared_eventbrite | GetOrganizationEvents |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords UpdateRecord |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Tiered priority
- Order the waitlist by a VIP/tier column or signup time instead of a simple flowlibs_position.
- Claim window
- Change flowlibs_ClaimWindowHours (e.g. 6 for fast-moving events).
- Unique claim link
- Issue a one-time discount/registration code on the claim page rather than a generic URL.
- Capacity buffer
- Overbook slightly by comparing against sold + buffer based on historical no-show rate.
- Expiry sweep
- Add a companion flow that flips Offered rows past flowlibs_offerexpiry back to Expired and re-offers the next person.
- Signup capture
- Pair with a Form/Power Apps flow that CreateRecords Waiting rows when an event sells out.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Seats available (per event)
Remaining capacity for the event
EXPR.02Sum a ticket class into a tally
Accumulates quantity_total / quantity_sold
EXPR.03Next-in-line filter (ListRecords)
Ordered by flowlibs_position asc, top 1
EXPR.04Claim expiry
When the current offer lapses
EXPR.05Claim link
Per-event seat-claim URL
EXPR.06Read an undeclared Eventbrite field
The connector's declared schema only surfaces name.text + id; other fields are read with ?[] at runtime
Customize & download
Generate a ready-to-import copy of this solution with your environment-variable values baked in — available on Base, Pro, or Team.
Upgrade to customize
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.