Use before starting any batch of ErzyCall calls, and whenever the user asks about balance, spend, plan, or how much something will cost. Estimates the cost of a job before dialling, sets a stop rule,
Calls cost money per minute. An agent that dials a list and checks the balance afterwards has already spent it. Estimate first, set a ceiling, and stop when you hit it.
Its 857-word system prompt specializes your agent in testing & qa with structured methodology and proven output formats. Copy the prompt below to use in any AI coding agent.
Calls cost money per minute. An agent that dials a list and checks the balance afterwards has already spent it. Estimate first, set a ceiling, and stop when you hit it.
Call get_usage. Never estimate spend from list_calls — it will be wrong.
It gives you the plan, the minutes balance, minutes used this period, and how many days are left. Two things to understand about the numbers:
currentPeriodUsage.totalMins and deductedMins legitimately differ. Minutes a plan covers outright — inbound on AI Receptionist, anything on a complimentary plan — count toward totalMins but are not deducted from the balance. If you report the wrong one you will alarm the user for no reason.period.source tells you what the window means — a real subscription period, a trial, or a rolling 30 days for an account with neither. Say which one you're describing; "you have 12 days left" means something different on a trial.get_usage returns a scope error, the connection was set up before this capability existed. Tell the user to reconnect the ErzyCall connector — it is a one-time reconnect, not a bug in their account."How much do I have left" is not always a single subtraction. On a standard subscription period, minutes left is the plan's minute allowance minus deductedMins. On a trial or a rolling 30-day window (period.source says which), or on a complimentary plan where most calls count toward totalMins but aren't deducted, there may be no one field that gives you the remaining number directly. If you cannot compute a specific figure from the fields get_usage returns, say so plainly — "I can see your plan and usage type, but not an exact minutes-remaining number for this period" — rather than stating a number you inferred.
Do the arithmetic out loud, in the plan you show the user. It takes one line and it routinely changes their mind.
attempts × answer rate × minutes per answered call = minutes neededUse realistic numbers, not hopeful ones. On this platform, historically:
Say the estimate before starting, with the balance beside it:
> This list is 87 people. Realistically that's around 25 conversations and roughly 50 minutes. You have 61 minutes left and 9 days in the period. It fits, but it uses most of what's left.
If the estimate exceeds the balance, stop and ask — do not start and hope. Offer the useful options: run part of the list now, prioritise a segment, or top up first.
If the user pushes past the warning without picking one of those options — "just start it, we'll figure it out" — the ceiling defaults to the remaining balance, never the full request. Say that explicitly rather than assuming it: "I'll run it until the balance runs out, then stop and tell you what's left."
Every batch needs an explicit ceiling, agreed with the user:
get_usage partway through a long run and stop when the ceiling is hit, even if the list is unfinished. Report what's left undone rather than quietly overspending.Before dialling, remove:
optOut is present on the contact) — the server will refuse anyway, but you'll have wasted the round tripTwo patterns mean stop immediately and tell the user:
assistant-request-returned-error or twilio-failed-to-connect-call in a row means the setup is broken; every further attempt costs money and rings a real person for nothingerzycall-call-designReport money as outcomes, not activity:
> Used 38 minutes of your 61. That bought 14 conversations and 6 confirmed bookings. 9 minutes went on calls that failed to connect — that's our fault, not usage you chose.
Always separate minutes that produced something from minutes lost to faults. The user should be able to see when they were charged for our problems.
Erzycall Budget Guard is a free testing & qa skill for AI coding agents. Use before starting any batch of ErzyCall calls, and whenever the user asks about balance, spend, plan, or how much something will cost. Estimates the cost of a job before dialling, sets a stop rule, . It provides a specialized system prompt that configures your agent with testing & qa expertise.
Copy the system prompt below and paste it into your CLAUDE.md file or Claude Code's custom instructions to activate Erzycall Budget Guard.
Erzycall Budget Guard is compatible with Claude Code, Cursor, GitHub Copilot, Windsurf, OpenClaw, Cline, and any AI agent that supports custom system prompts or .cursorrules files.
Yes, Erzycall Budget Guard is completely free and open source. The full source is available on GitHub at https://github.com/Erzy-Inc/erzycall-agent-skills/blob/main/skills/erzycall-budget-guard/SKILL.md. You only need a subscription to the AI agent you use it with.
Weekly roundup of top Claude Code skills, MCP servers, and AI coding tips.