ElevenLabs credit tracker and voice library cleanup desk

By General Input

See exactly where your ElevenLabs credits go, spot dormant and duplicate voices, and bill each team for what it actually used.

Integrations

  • ElevenLabs
  • Google Sheets
  • Slack Bot

Type

App

Categories

  • Operations
  • Finance

Build me an app for whoever owns our ElevenLabs account, so I can see where our voice credits are going, keep the voice library clean, and bill usage back to the teams that caused it. It should have three views plus a background agent I can start from a button. It runs off a single ElevenLabs API key, so I can use it as the account owner without buying console seats for everyone.

The first view is a quota burn-down. Pull the current plan from ElevenLabs Get Subscription: the character limit for the period, characters used so far, and the date the quota resets. Show credits used against the plan limit as a prominent progress bar, the number of days left until reset, and the average daily burn rate so far this period. Project that burn rate forward to the reset date and tell me plainly whether we will run out early, including the date we would hit zero and how far over or under the limit we are tracking. Use a clear status treatment so I can tell at a glance whether we are comfortable, tight, or heading for an overage.

The second view is a usage breakdown from ElevenLabs Workspace Usage Metrics over a date range I pick, defaulting to the current billing period. Slice the same totals three ways: by voice, by model, and by workspace user. Each slice is a sortable table showing characters consumed, share of the account total, and the change against the previous period of the same length. I want to be able to see immediately if one person is running our most expensive model for short internal drafts.

The third view is the voice roster. List every voice from ElevenLabs List Voices with its name, category (premade, cloned, or generated), labels, and description, and pull each voice's saved synthesis settings with Get Voice Settings so stability, similarity, style, and speaker boost are visible right in the table. Use Get Voice for the fuller detail when I open a single voice. Derive a last-used date for each voice by paging through ElevenLabs List History and taking the most recent generation for that voice id, then show days since last use. Flag any voice with no activity in the last ninety days as dormant, and group cloned voices with near-identical names, labels, or descriptions so likely duplicates sit next to each other.

From a row in the roster I want to act. Standardize a voice by writing new stability, similarity, style, and speaker boost values with Edit Voice Settings, ideally by defining a house preset once in the app and applying it to several voices at a time. Audition a voice by generating a fixed reference line with Text to Speech, using the same sentence for every voice so comparisons are fair, and play the result in the browser. Retire a dead clone with Delete Voice.

Add a generations browser backed by List History, with filters for voice, model, date range, and a text search over the generated text. From there I can play a single item with Get History Item Audio, select several items and pull them down as one zip archive with Download History Items (Batch), and clear out old items with Delete History Item.

Let me tag voices and workspace users with a team name inside the app, and persist those tags between sessions. Use the tags to attribute usage back to teams. Once a month I want to push a chargeback row per team into Google Sheets with Append Values: the month, the team, characters consumed, share of the account total, the estimated cost using a per-thousand-character rate I set in the app, and the top voices and models that team used. After the export, post a short summary of the same numbers to a Slack channel with Slack Bot Send a Message, including the per-team totals and a link to the sheet.

Add a "Run the monthly review" button that starts a background agent. The agent reads the workspace usage metrics for the period, the voice roster with its settings and last-used dates, and recent generation history, then writes a recommendations brief back into the app where I can read it alongside the other views. The brief should call out concrete waste: an expensive model being used for short internal drafts where a faster and cheaper model would do, cloned voices that are near duplicates of one another, voices with no activity in ninety days, and any team whose burn rate is growing fast enough to threaten the plan limit before the reset date. It should end with a suggested cleanup list of specific voices and history items to delete or standardize, each with a one line reason.

Nothing gets deleted automatically. The agent only proposes. Every item on the cleanup list sits in the app as a suggestion I confirm or dismiss one at a time, and only on confirm does the app call Delete Voice or Delete History Item. Show a confirmation step that names the exact voice or generation being removed, and keep a running log in the app of what was cleaned up, when, and who confirmed it.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board