# ElevenLabs credit tracker and voice library cleanup desk

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

- Workflow type: app
- Services: ElevenLabs, Google Sheets, Slack Bot
- Categories: Operations, Finance
- Published: 2026-08-21

## What it does

- Shows how much of your monthly credit allowance is gone, how many days remain before it resets, and whether you are on pace to run out early.
- Breaks usage down by voice, by model, and by person, so you can see what is actually eating the plan.
- Lists every voice with its settings and last-used date so dormant clones and near-duplicates are obvious, then lets you fix settings, preview a voice, or retire a dead clone on the spot.
- Exports a monthly cost row per team to Google Sheets and posts the summary to Slack, with a one click review that writes a cleanup brief you approve item by item.

## What you'll need

- An ElevenLabs account you own or administer. The app connects with your own account key, so nobody else needs a seat.
- A Google account with access to the spreadsheet where the monthly cost rows should land.
- A Slack workspace and a channel for the monthly summary.
- A rough idea of which teams use which voices, so you can tag them once inside the app.
- Your cost per thousand characters, if you want the export to show money rather than raw usage.

## Prompt

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.

## How to customize

- Change the dormancy window from ninety days to whatever fits how often your library gets used.
- Set your own house settings preset and the reference line every voice audition reads, so comparisons are fair.
- Pick the spreadsheet, the Slack channel, and the rate used to turn characters into cost on the monthly chargeback rows.

## FAQ

### Will it delete voices or recordings on its own?

No. The monthly review only proposes a cleanup list. Every removal is a separate confirmation you make item by item, and the app names the exact voice or recording before anything goes.

### How does it know when a voice was last used?

It reads your generation history and finds the most recent recording made with each voice, then shows how many days ago that was. Anything quiet for ninety days gets flagged as dormant.

### Can I bill different teams for their usage?

Yes. Tag each voice and each person with a team inside the app, and the monthly export writes one row per team with characters used, share of the account total, estimated cost, and the voices and models that team leaned on.

### Does everyone on my team need an ElevenLabs login?

No. The app runs on the account owner's key, so you can review the numbers and clean up the library yourself and share the results through the spreadsheet and the Slack summary.

### How is this different from the usage charts inside ElevenLabs?

The built-in charts show you spend and stop there. This joins spend to your actual voice library and generation history, adds team attribution and a chargeback export, and lets you act on what you find by standardizing settings, retiring clones, and archiving old audio.

Use this prompt in General Input: https://www.generalinput.com/prompts/elevenlabs-credit-tracker-and-voice-library-cleanup-desk