Ledger Collections Call
SkillAI & modelsLets your agent place an outbound debt-collection phone call using details from an overdue invoice record.
Use Ledger Collections Call in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Ledger Collections Call and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Ledger Collections Call skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
HITL outbound collections phone call from overdue JSON (E.164, integer minor units, region); CALL-E create plus poll; structured promise out; dry-run default; never posts to unsupported regions including YE.
What this skill tells your AI
The instructions your AI receives, as published by calle-ai/awesome-phone-call-agents in skills/ledger-collections-call/SKILL.md and read by Ahel’s review.
Use this skill when a merchant (or an agent acting for one) has explicit authority to place one disclosed phone call about an overdue balance, and needs a structured promise back.
The directory name does not mean a money write. A CALL-E promised result is display-only. Payment stays a later human confirm (or another tool). Read references/overlap.md before treating this as a collections product: it is not kept.
This skill does not book a payment, post a ledger row, or run a campaign. A human reviews the result before any cash movement.
When To Use
- One overdue contact the operator already authorized, with E.164, integer
amountMinor, currency, locale, and region in JSON - Preview the CALL-E task and recipient result schema without credentials
- Refuse Yemen and other unsupported regions before
POST /v1/calls - Hand a structured promise to a human, a display-only card, or
keptcapture — not to a cashier
When Not To Use
- Consumer FDCPA / statutory debt-collection engines
- Collecting cards, CVV, bank passwords, or OTPs (PCI)
- Automatic retry when the outcome is
unknown, timeout, voicemail, orno_answer - Writing a ledger, invoice, or
keptfinancial record from the structured result - CSV campaigns, call budgets, bank-feed reconcile (that is
kept) - First-contact sales, scraped lists, or numbers the user did not authorize
- Hidden schedulers, webhooks, or
create_and_waiton the HTTP request - Inferring region from a leading
+1
Required Inputs
JSON object:
| Field | Type | Notes |
|---|---|---|
contactId | UUID string | Stable local id; used in the idempotency material |
displayName | string | Spoken name |
phoneE164 | string | E.164, authorized |
amountMinor | integer | Outstanding balance, smallest currency unit. No floats |
currency | string | ISO code, e.g. USD |
locale | en or ar | Task language. Documented in English; do not embed other scripts in this folder |
region | ISO 3166-1 alpha-2 | Stated by the operator. Not inferred from the number |
doNotCall | boolean | If true, refuse |
Optional: storeName (default Store), promisedDate (YYYY-MM-DD or empty; authorization material only).
Preflight
- Confirm the user authorized this one collections call.
- Confirm E.164 and that
doNotCallis false. - Confirm
amountMinoris a JSON integer (no remainder). - Confirm
regionis supported and is not YE. Seereferences/regions.md. - Run
scripts/preview.pybefore any CALL-E plan.
Dry-Run Preview
No CALL-E credentials. No network. scripts/preview.py never POSTs.
If the skill lives under docs/skills/ (originating product repo):
python3 docs/skills/ledger-collections-call/scripts/preview.py \
--request docs/skills/ledger-collections-call/assets/sample-overdue.json
If the skill lives under skills/ (this awesome-list layout):
python3 skills/ledger-collections-call/scripts/preview.py \
--request skills/ledger-collections-call/assets/sample-overdue.json
Preview prints a masked phone, the CALL-E task, the result schema, and an idempotency key. It exits 0 with status: not_called. --live is rejected: live execute is not implemented in this skill.
CALL-E Goal Template
Device-owned English (locale en). Shame language and fake legal threats are forbidden. Disclose that the caller is the store's assistant. Ask for a promise date and amount. Do not collect card numbers.
Call {displayName} on behalf of {storeName}. Identify yourself as the store's assistant, not a government collector. Their outstanding balance is {amountLine}. Ask whether they can promise a payment date and amount. Be brief, polite, and stop if they refuse. Return structured fields only: promised / refused / voicemail / no_answer / wrong_number / callback_requested, integer minor-unit amount if they state one, ISO date if they state one.
amountLine is formatted from integer amountMinor plus currency (for example USD 15.00 for 1500 USD). Do not re-convert through floating point.
For locale ar, use the same constraints in Arabic at execute time. This folder stays English-only.
Structured Result
See references/result-schema.md. Required outcome enum: promised, refused, voicemail, no_answer, wrong_number, callback_requested. Optional integer promised_amount_minor, promised_currency, promised_date (YYYY-MM-DD).
A promised result is not a payment. voicemail, no_answer, and unknown all need a human. Do not redial unknown.
Live Planning
preview.py does not dial. Live requires a host that already has CALL-E authentication, a human confirm, and a second explicit gate (for example --live plus --confirm PLACE-REAL-CALLS on that host). This skill documents the gates; it does not implement POST /v1/calls.
If you use the CALL-E CLI after review:
calle call plan --to-phone <E164_PHONE> --goal "<reviewed goal text>" --timezone America/New_York --language English --region US
Do not run calle call start unless the user separately confirms. Do not post unsupported regions including YE.
Cancellation And Idempotency
Idempotency key (hex SHA-256), not uuid4:
sha256("{contactId}|{amountMinor}|{currency}|{promisedDate}|{utcDate}")
utcDate is YYYY-MM-DD in UTC for the authorization day. promisedDate may be empty.
If the user cancels before dial, do not execute. If a result is ambiguous, route to a human rather than calling again with a new key.
Safety Notes
Read references/safety.md, references/examples.md, references/regions.md, references/result-schema.md, and references/overlap.md before live planning.
Signals
- GitHub stars
- 104
- Forks
- 528
- Last commit
- Sep 2026
Ahel review
K6low
bundled executables the agent is told to run
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
ledger-collections-call- Source
- github.com/calle-ai/awesome-phone-call-agents
github.com/calle-ai/awesome-phone-call-agents
More in AI & models
Skill · anthropics
More in AI & modelstriage
Skill · mattpocock
More in AI & modelswayfinder
Skill · mattpocock
More in AI & modelsalgorithmic-art
Skill · anthropics
More in AI & modelscode-review-and-quality
Skill · addyosmani
More in AI & modelsmarketing-psychology
Skill · coreyhaines31
More in AI & models