Daily
Get yesterday's ticket sales every morning
An 8am email breaks down tickets sold and revenue per live event, with totals.
- Runs
- Daily
- Apps
- Eventbrite
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every day at 8am, email me yesterday's tickets sold and revenue for each live Eventbrite event, plus overall totals.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
An Eventbrite organizer running a workshop series, a comedy night and a weekend festival usually checks sales by opening each event's dashboard in turn. That is fine the week of launch and easy to skip once other work piles up. Slow sales then go unnoticed until it is too late to run a promotion, while sell-outs go unnoticed until the waitlist is angry. Both outcomes cost real money.
Every morning, ClickRuntime lists your organization's live events, collects the orders placed or changed since yesterday, totals the tickets and revenue per event, and emails a single table. One message replaces a round of clicking through event pages.
Event teams that share the report with a marketing lead or venue manager find it especially handy, since everyone sees the same figures at the same time.
What you get out of it
See which events need a push
Per-event totals show that the Thursday workshop sold two tickets while the Saturday show sold forty. You can send an email blast or open a discount for the slow one while there is still time.
Hold the whole team to one number
The report goes to anyone you add, so marketing, finance and venue staff discuss the same yesterday figures. It ends arguments caused by people reading different dashboards at different hours.
React to a sales spike
A sudden jump after an influencer post or press mention appears the next morning. You can increase capacity, add a second session, or order more staff before ticket demand turns into complaints.
Reduce reliance on memory
Checking every event daily is a chore that gets dropped during busy periods. The scheduled email keeps the habit alive without effort, which matters most in the weeks before doors open.
Build a day-by-day sales curve
Saved reports line up as a record of how each event sold from launch to doors. Next season you can compare pacing and know when sales normally pick up. That history makes next season's launch plan far less guesswork.
How it works
What happens, step by step
Every morning at 8, ClickRuntime lists your live Eventbrite events.
For each event it gathers the orders from the previous day and counts tickets sold and revenue.
You get one email with a line per event and the day's totals at the top.
Before it runs live
- Connect Eventbrite
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Eventbrite steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, credentials, http, notify
ORG_ID = "your-organization-id"
API = "https://www.eventbriteapi.com/v3"
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.secret('EVENTBRITE_TOKEN')}"}
end = datetime.now(timezone.utc).replace(hour=0, minute=0, second=0, microsecond=0)
start = end - timedelta(days=1)
events = http.get(f"{API}/organizations/{ORG_ID}/events/", headers=h, params={"status": "live"}).json()["events"]
lines, all_tix, all_rev = [], 0, 0
for ev in events:
orders = http.get(f"{API}/events/{ev['id']}/orders/", headers=h, params={
"changed_since": start.strftime("%Y-%m-%dT%H:%M:%SZ"), "expand": "attendees", "status": "active"}).json()["orders"]
orders = [o for o in orders if start.isoformat()[:19] <= o["created"][:19] < end.isoformat()[:19]]
tix = sum(len(o["attendees"]) for o in orders)
rev = sum(o["costs"]["gross"]["value"] for o in orders) / 100
all_tix, all_rev = all_tix + tix, all_rev + rev
lines.append(f"{ev['name']['text']}: {tix} tickets, ${rev:,.2f}")
notify.email_me(f"Ticket sales {start:%b %d}: {all_tix} tickets, ${all_rev:,.2f}", "\n".join(lines))
return {"tickets": all_tix, "revenue": all_rev}FAQ
Common questions
Which orders are counted as yesterday's sales?
Are free tickets included in the totals?
Does it cover events in draft or past events?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Post each Eventbrite order to Slack
Your Slack channel shows the buyer, ticket count and amount whenever an order is placed.
See how it worksGet warned before a ticket type sells out
You hear once when any ticket class passes 90% of its capacity.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksKeep exploring
Set up “Get yesterday's ticket sales every morning” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.