Resolve the tickets that need a look inside your systems.
Refunds, cancellations, renewal quotes, log investigation. Ballet checks Stripe, your CRM and your own portal, decides against your policy, takes the action, and escalates when it should. Readable code your engineers can sign off. Running in an afternoon.
Every support team automates the answerable questions. Then hits the same ceiling.
Teams tell us articles deflect 20 to 30% of volume, and that it buys back real time. Everything after that needs a system opened, not an article found.
Knowledge deflection is tablestakes
Articles handle 20 to 30% of volume and give your team back real time. The ceiling arrives immediately after: what is left needs a system checked, not an article found.
The next tier needs a lookup
“Why was I charged twice.” “Cancel my second subscription.” “I can’t log in. Here are my logs.” None of it lives in an article. All of it lives in Stripe, the CRM, the billing platform and your own portal, behind 73 clicks.
Integrations are where it all dies
Support teams do not describe a slow integration. They describe a missing one. The endpoint for the field you need does not exist, the request to build it sits behind the product roadmap, and security review takes two weeks or longer. So the ticket goes to a human. Every time.
So we built for the four things that decide whether it ships.
Introducing Ballet by Brainfish
Systems
Off-the-shelf connectors, MCP, any REST or GraphQL API, databases over VPN. However many a job needs, one workflow spans them.
Deterministic
Written as real code, not a proprietary drag-and-drop builder. Same input, same steps, same order, every run, instead of a different path every time. Your engineers can read it before it touches production.
Thresholds and escalation
Write the rule in your words: refund the most recent payment under fifty dollars, process it. Over the threshold, or outside policy, it stops for a second pair of eyes. Simulate against real cases before production. Version it, roll it back.
Cost per resolution, in the open
Every step evaluated, every run priced. So you can put Ballet's cost per resolved ticket next to what your current agent charges you per resolution, and take that number to your CFO.
Twenty-seven workflows from real support queues.
Each one came from a support leader describing volume they cannot get to. Find the one that looks like yours.
Multi-subscription refund
Refund request → verify identity, evaluate every subscription against policy, refund the eligible ones and explain the rest in the same reply.
Cancellation & downgrade
Billing ticket → classify against the refund-type decision tree, look up subscription state, execute or route to the right tier.
Subscription merge
Duplicate subscriptions → disambiguate with a dropdown built live from the API response, confirm intent, merge, reconcile billing.
Explain this charge
Unrecognised charge → retrieve the transaction, resolve the plan and period, check proration and trial conversion, answer in plain language.
Account deletion
Deletion request → verify identity, run pre-deletion checks for active subscriptions, balances and retention obligations, execute or return the blocker.
Intent-aware triage
Ticket created → read the content rather than the submitted category, classify true intent, answer or reclassify and route.
Junk filtering & case segmentation
Case created → score genuine vs junk, bucket into general, reseller or technical, apply bucket-specific handling.
Tier & specialist routing
Classified case → match to product pillar, check entitlement and availability, route, and attach the research the agent would have done.
Autonomous first reply
Ticket arrives → read customer data, diagnose against known failure patterns, send the first reply, score the output, tune on supervisor feedback.
Log collection & pre-triage
Technical case → identify the environment, pull the logs, run first-pass analysis against known signatures, attach the diagnosis before a human opens it.
Transaction decline investigation
Question in the widget → fetch the transaction and decline reason across systems, analyse against rules and history, answer live in the same session.
Proactive error → workaround → ticket
Known error detected → surface the workaround in-product before contact, auto-create the engineering ticket, pre-investigate in monitoring.
Preloaded in-product workflows
Widget opens on a page → the workflow fires automatically and answers the question the customer was about to ask.
Authorized-contact verification
Entitlement request → check the requester against the authorized-contact list on the account record, confirm tier, allow self-serve or route.
MFA reset & risk-lock release
Can't authenticate → verify by text, confirm against the identity record, issue the enrolment reset link or release the risk lock — on chat and phone alike.
Login recovery via ID provider
Locked-out customer → collect evidence, hand off to the identity-verification provider by API, act on the verdict, log the decision.
Entitlement & status lookup
“Why can’t I access my account?” → look up suspension status and the actual reason, return the specific unblock path rather than a generic article.
Resolve-or-draft
Any ticket → attempt end-to-end resolution; where it can't complete, draft the agent note and customer reply in-ticket with every lookup already done and cited.
Agent assist across scattered knowledge
Agent opens a case → search every knowledge location at once, autocomplete the reply, surface the internal doc they'd otherwise hunt for.
Structured escalation & handover
Workflow can't or shouldn't finish → choose the handover — human, ticket, embedded page, email, phone — and carry the full context and everything already checked.
Cross-system ticket reporting
Daily schedule → pull tickets from ITSM and the engineering tracker plus the related docs, analyse, prioritise, publish a bottleneck report to Slack or email.
Review response at scale
Batch of new reviews → attach store context, triage by type, draft a regionally native reply, route for approval, escalate incidents without replying.
Onboarding automation
New customer signs → send structured pre-work, read the replies, extract the data, map it to named CRM fields via a defined API call, human confirms before write.
Back-office queue routing
Document arrives → extract, apply business rules, weight priority by value and due date, assign to queue, release the worker on approval waits.
Knowledge gap detection
Batch of call recordings → transcribe, find where documented knowledge diverges from what agents actually said, propose the articles that close the gap.
Content pipeline on release
Release ships → cross-reference the corpus, identify every affected article, draft the updates, route through review, publish to the CMS.
Knowledge sync & index hygiene
Every deployment → build the source-of-truth list, drop no-index and low-traffic pages, push to the catalog by API, verify the sync landed, alert on drift.
Ballet is built to handle it.
Managed through chat. Readable as code. Priced per run.
from a plain-English description to a first running draft
typical build time for the complex tier, end to end
average run time for a complex flow
resolution rate at Smokeball
Bring us your trickiest support ticket.
We will build the workflow on your actual systems, before you spend anything. No sales theater.
Book a demo