Dograh

AI Voice Agents for Debt Collection in Fintech: Campaigns at Scale

AI Voice Agents for Debt Collection in Fintech: Campaigns at Scale
Use CaseNovember 5, 2026·6 min read

AI Voice Agents for Debt Collection in Fintech: Campaigns at Scale

Abhishek Kumar
Abhishek Kumar·Co-founder, Dograh AI

Co-founder of Dograh, building the future of open-source voice AI agents. Own your voice AI stack.

AI voice agents for debt collection in fintech run early collections as campaigns, one per delinquency stage, built each morning by the lender's loan system. You set the retries, calling hours and pace. Each verified borrower hears the amount due, and after the call a Webhook node sends the result back to the loan system.

Key Takeaways

  • Your loan system builds each day's list, and the campaign only places calls.
  • Regulation F's seven-in-seven limit binds agencies, while state rules can bind lenders.
  • A Webhook node retries delivery when your loan system is briefly down.

This post is part of our guide to AI voice agents for BNPL lenders, where the call list is the real control in early collections. In Dograh, the open-source voice agent platform we build, we follow that list from the morning upload to the result your loan system receives.

Early collections is a volume job

App lenders do not have a few large overdue accounts. They have thousands of small ones, and most are only a few days late. In LendingTree's 2026 BNPL survey, 72% of borrowers who paid late said their most recent late payment was about a week late or less, a figure our post on missed-payment recovery in BNPL covers in detail.

That shape suits short calls placed well. Each one names the lender, verifies the borrower, states the amount and asks when it will be paid. If the borrower wants to pay now, your own system sends the payment link, since nothing is paid on the call itself. The hard part is placing the right calls at the right pace and getting every result back where your team works.

One campaign per delinquency stage

Run a separate campaign for each stage, such as days 1 to 5, days 6 to 15 and days 16 to 30. Each stage can use its own agent and script, since a borrower one day late needs a lighter touch than one three weeks behind. Each morning, your loan system builds the files: it drops anyone who paid overnight, opened a dispute, entered a hardship plan or asked to stop, and uploads the rest.

Your loan system decides who is called and how often. Dograh campaigns keep no count per borrower across campaigns, so a limit that spans the week must live in your list. Massachusetts' debt collection regulations are a good test: they apply to creditors, not only agencies, and treat more than two calls a creditor starts about a debt in seven days as unfair.

Some vendor guides treat seven calls in seven days as the limit for everyone. That figure comes from Regulation F's call-frequency rule, which is written for third-party debt collectors. A lender collecting its own debt in its own name is generally outside that rule and the Fair Debt Collection Practices Act (FDCPA), while an agency it later places the account with is inside both. Our post on AI voice agents for first-party collections covers that line and when to hand an account over. Check the states your borrowers live in and confirm your per-borrower limits with counsel.

Dograh

Open Source Alternative to Vapi / Retell

Self-hosted voice agent platform — no per-minute fees

dograh-hq/dograh

Star on GitHub

Retries, pace and the circuit breaker

You set the retries (0 to 10) in the campaign's Advanced Settings, along with the Retry Delay (seconds) and which outcomes get another try: a busy line, no answer or voicemail. Every retry counts toward the borrower's weekly limit, so a stage with a tight limit may run with retries off and let tomorrow's list decide.

The Call Schedule sets the calling hours on one time zone per campaign. A national list needs one campaign per time zone, each with its own window, so nobody gets a call at 8 p.m. their time because the campaign runs on Eastern.

Two settings control pace. Calls Started per Second defaults to 1, which keeps your carrier and your models from a sudden burst. Max Concurrent Calls sets how many calls run at once. Self-hosted, the default limit is 10 per organisation and you can raise it. On Dograh Cloud, pay-as-you-go accounts run 10 calls at once, and you can contact Dograh for more.

A new campaign also has the Circuit Breaker switched on. If at least half of the calls in a 120-second window end with a speech or model failure, after at least 5 calls, the campaign pauses until someone resumes it. A rejected key or an unpaid account at a provider pauses it at once. A bad model key on a busy morning then costs a few failed calls while the rest of the list waits.

Sending each result to the loan system

Every finished call gets an outcome. Switch on call disposition extraction and the call dispositions start from a short list: qualified, not_interested, wrong_number, voicemail_detected, do_not_call and callback_requested. Add your own codes, such as promise_to_pay or disputed, each with a plain description. Disposition mapping can then translate them to your loan system's own codes.

A Webhook node sends the result after the call. The payload is your own JSON, filled from the call: the run ID, columns from your file such as {{initial_context.loan_id}}, the outcome as {{gathered_context.mapped_call_disposition}}, any promised date the agent extracted, the call duration, and links to the recording and transcript.

Loan systems go down. When the endpoint times out, refuses the connection or answers with a temporary error such as 503 or 429, Dograh tries again, up to 5 attempts, with longer gaps between tries. An error such as a rejected credential stops at once, because retrying will not fix it. Each delivery carries an X-Dograh-Delivery-Id header, so your endpoint can ignore a duplicate.

A finished collections call produces a result with the loan ID, a promise to pay and a recording link. The loan system answers with a temporary error, so delivery is tried again with longer and longer gaps until the result lands in the loan system, where a duplicate with the same delivery ID is ignored.
A result that never reaches the loan system leaves tomorrow's list out of date, so a borrower who promised to pay can be called again. Retries cover a short outage on the loan system's side.

A promise to pay is the simplest result. When the borrower cannot pay in full, the next step is a short catch-up plan, set up as in AI voice agents for BNPL repayment plan setup.

Join the Dograh Community

Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.

Checking calls at volume

Collections calls carry account details, so where they run matters. Self-hosted, recordings, transcripts and traces stay on your servers, with your own model keys or open-source models. Self-hosted Dograh has no per-minute platform fee, but servers, model keys and phone minutes still cost money. Dograh Cloud charges a 1¢-a-minute platform fee.

At thousands of calls a day, nobody listens to them all. Set QA to a sample rate, and replace its System Prompt with checks for this campaign, such as whether the agent named the amount before verification or strayed from the lender's name. Also check whether it described the account to someone who failed verification. Every call also has a full trace you can open when a borrower complains.

Glossary

Delinquency stage
A range of days past due, such as days 1 to 5 or 6 to 15. Early collections runs one campaign per stage, each with its own script and limits.
Calls Started per Second
A campaign setting that caps how many new calls begin each second. It defaults to 1, which keeps a large list from hitting the carrier and models in one burst.
Circuit Breaker
A campaign setting, on by default, that pauses the campaign when too many calls fail inside a time window. Someone must resume it after checking the cause.
Disposition mapping
Translating a call outcome into the lender's own code, such as callback_requested becoming follow_up. A Webhook node can send the raw or mapped value to the loan system.

Frequently Asked Questions

Get started with Dograh

Build, deploy, and scale AI agents with Dograh. Join the community of developers building the future.