All case studies
Live Entertainment & TicketingAmish Country Theater

The Box Office That Never Closes

An after-hours voice agent for a 538-seat theater's box office — answering only when the desk is closed, quoting live show data, and texting a ticket link before the caller hangs up.

Voice AITicketingQA Automation
The Challenge

The Amish Country Theater's box office is staffed during business hours by a great team. The problem is the hours in between — 9pm, Sundays, the holidays the office is closed.

Those calls used to go to voicemail. Most callers don't leave one. They google the next venue and buy tickets there instead.

What We Built

We built an agent that handles exactly the overflow the box office can't — nothing more. It never picks up while a human is at the desk; it only answers when there's nobody there to.

  • ElevenLabs runs the voice; a Node + TypeScript webhook service pulls live show data from VBO Ticketing and Land Cruise dates from RegFox so the agent never talks from a stale script.
  • A fuzzy-matching tool resolves caller-spoken show titles against a rolling date window — the hardest engineering problem in the build, since ASR mishears split titles and drops syllables.
  • Callers who want tickets get a direct, branded link texted to them, hosted on VBO and ready to check out — the whole call takes about ninety seconds.
  • Every call ends with a webhook that pulls the full transcript, scores it against a QA rubric, and posts the result to Slack — so a bad answer surfaces in minutes, not weeks.
  • A QA dashboard tracks summary metrics and a dead-letter queue for any post-call event that failed to process, with an automatic retry job so a Slack outage can't silently lose QA data.
  • An agent allowlist rejects webhook events from any unregistered agent ID, and intro-only call filtering keeps one-second hang-ups from flooding the QA queue.

The Stack

ElevenLabsTwilioVBO TicketingRegFoxNode.jsTypeScriptSlack
Results

After-hours only

Never answers while the box office is staffed

~90 sec

Average call, ticket link included

Every call

Transcript-scored against a QA rubric and posted to Slack

Zero lost

QA events — dead letters retry automatically

The QA layer isn't a nice-to-have. It's the difference between an agent that works and an agent that quietly degrades for weeks before anyone notices.

Read the full build story

Want something like this for your business?

Tell us about your business and we'll show you exactly where a system like this fits — no pressure, no jargon.