Problems & solutions · CRM

Debt Collection Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Debt Collection Agency Software software overview illustration showing common problems and fixes.
The short answer

The most expensive failure is building a system that records contact attempts after they happen instead of authorising them before they happen. Every channel keeps writing to its own table, the dialer still builds tomorrow's campaign from last night's export, and a consumer who texts STOP at 9pm gets dialled at 9am. That single call is a Telephone Consumer Protection Act exposure with statutory damages attaching per call, a Fair Debt Collection Practices Act claim, a client incident report, and two days of a compliance officer's time reconstructing an attempt history from three exports because no system holds one.

Why does the after the fact attempt log happen so often?

Almost every collection platform build starts from the same instinct: pull the dispositions from the dialer, pull the sends from the text platform, pull the mail file from the letter vendor, put them in one place, and report on the total. It sounds like the right project. It is the wrong direction of travel.

Recording an attempt after it happened is a receipt. What Regulation F needs is a gate. Seven call attempts within seven consecutive days per particular debt, plus the seven day cooldown after a telephone conversation, are limits that have to be checked before the dial, not counted after it. A system that reconciles nightly will tell you accurately that you broke the rule.

The reason teams land on the wrong side of this is sequencing. Ingesting dispositions is easy, ships in a fortnight and demos well. Making every channel ask permission first means the dialer becomes a dumb executor of an approved list, which requires renegotiating how your dialer is used and pushing back on a vendor integration that was built to run its own campaigns. That is uncomfortable work in week two of a project, so it gets deferred, and once the architecture assumes attempts arrive as batches it does not get undone cheaply.

The fix is to make the ledger the first thing built and the only writer. One append only record keyed on debt identifier, channel, timestamp, outcome, actor and client. Every dial request, every message, every limited content message asks it before going out. Write the acceptance test into the statement of work: with the ledger live, a revocation posted at 9:02pm must block the 4:15am campaign build without a human touching anything. If a proposal cannot describe how that works, it is a reporting project.

What goes wrong when a decade of account notes gets migrated?

Migration budgets in this category are almost always built around balances, and balances are the easy part. The hard part is account notes and attempt history, and they are not text. They are evidence.

A note written by a collector in 2019 may be quoted back to you in a deposition. It has an author, a timestamp, a debt it belongs to and a sequence relative to other events. If the migration flattens those notes into one blob per account, or rewrites timestamps into the migration date, or loses the distinction between a system generated entry and a human one, you have destroyed the record that your bona fide error defence depends on.

What we see go wrong, repeatedly:

  • Author fields carrying a departed employee's identifier that no longer maps to anyone, so the note appears unattributed.
  • Legacy systems storing local time with no zone, migrated into a system storing coordinated universal time, silently shifting an entire history by several hours and breaking the ordering of events on the days that matter.
  • Attempt history migrated as a count rather than as events, which permanently destroys the ability to answer how many attempts occurred in a specific seven day window in 2023.
  • Notes truncated at a field length that was larger in the old system.

The fix is unglamorous. Migrate notes and attempts as immutable events with original author, original timestamp, original time zone and a source system marker, and keep the raw extract in cold storage indefinitely. Then reconcile: pick fifty accounts across your oldest and newest clients, print the note history from both systems side by side, and have a supervisor who worked those accounts confirm they read the same. Do that before cutover, not after, and budget a parallel run through at least one full remittance cycle.

Why do dialer and payment integrations break after launch?

They break because they were built against a working state rather than against the failure states, and collection integrations fail constantly in ordinary operation.

The dialer is the common one. LiveVox, TCN, Noble, Convoso and Genesys all expose usable interfaces, and all of them will at some point return a disposition late, return it twice, or drop the connection mid batch. If your ledger writes are not idempotent, a redelivered disposition becomes a second attempt against a debt and your own compliance gate starts blocking legitimate calls. If they are idempotent but you do not reconcile, a dropped batch leaves attempts unrecorded and your gate lets calls through it should have stopped. Both directions cost you.

Payments break differently. Tokenised gateways such as Repay, Intelligent Contacts or PayNearMe are the right architecture, because card data never lands in your database and your Payment Card Industry scope stays small. The failure is the return. An automated clearing house payment reverses on day four, and if the build modelled a payment as a row that can be edited rather than as an event that can be reversed, the commission you already recognised and paid out has no clean path back. Every reversal then becomes a manual journal entry.

Design for it from the start. Every inbound message carries a source identifier and is processed exactly once. A scheduled reconciliation compares what the vendor believes it sent against what you recorded, and raises a named alert rather than a dashboard metric. Financial movements are events, never edits, so a reversal is a new entry with a link to what it reverses.

What happens when validation and dispute clocks are not covered?

The dispute is the most commonly underbuilt object in a collection platform, and it is the one that generates regulatory complaints.

Disputes arrive by post, through the consumer portal, as an automated consumer dispute verification through e-OSCAR, and as a sentence a collector typed into an account note at four in the afternoon. Four intake paths. One clock. In most builds a dispute is a status code, which means it has no owner, no service level, no attached evidence and no timer. Collection is supposed to stop on that debt until validation is mailed, the credit reporting record needs a compliance condition code, and the supporting media has to come from the creditor, which is an email to a client contact and a wait of unknown length.

The failure mode is worse than a missed deadline. It is mailing a wrong figure. The validation notice under Regulation F requires the itemisation date and an accurate breakdown as of that date, and if your placement record put the original creditor brand and the itemisation date into a user defined field, you cannot generate that notice from data and somebody retypes it. A retyped balance that does not match the creditor's statement is how a dispute becomes a lawsuit.

Build the dispute as a case object with a single intake regardless of channel, a clock that starts on receipt rather than on data entry, a hard block on outbound attempts for that debt while it is open, an automated media request to the client naming the exact documents needed, and a validation packet generated from stored structured fields. Then reconcile the creditor's returned statement against your placement record automatically and flag the mismatch before anything is mailed.

Should you build custom or configure what you already own?

Below roughly twenty five collectors, working one debt type for a handful of clients who accept your standard reporting, configure. CollectMax, Debtmaster or InterProse ACE will outrun anything you build at that size, and the money is better spent on skip tracing data and people. We would tell you that rather than take the work.

The same applies if the pain you feel is really a configuration gap. Plenty of agencies run Finvi Artiva or Columbia Ultimate at a fraction of what those platforms can do, with rules that were set at implementation years ago and never revisited. Before commissioning a build, have someone competent audit what your current system can already enforce, because replacing a platform to get behaviour you had not switched on is an expensive way to learn.

Build when the signals are concrete. Two or more full time people exist only to move files between systems. New client onboarding takes more than four weeks and the delay is the file format, not the contract. You lost a bid because you could not report the way a creditor wanted. Your compliance posture is set by a dialer vendor's roadmap. Or your largest client's rules live in one supervisor's head.

Even then, build the layer, not the stack. Keep the dialer, the payment gateway and the letter press, and build the account model, the attempt ledger, the decision engine, the dispute cases and the client facing ledger above them. That is the difference between a first release and a multi year programme.

How do hidden costs get into the quote?

Five items account for most of the overruns we see, and none of them are surprises if you ask.

Client specific formats priced as one integration. Each creditor brings a placement file, a recall file, a close file and a remit format, and the eleventh client costs roughly what the third did. Price per client, not per project.

Credit reporting treated as an export. Metro 2 output and dispute handling through e-OSCAR is unforgiving and the dispute path has to be exact. It is a module with its own budget line, and quotes that mention it in a bullet have not scoped it.

Audit logging retrofitted. If who changed which rule and when is not designed in from day one, adding it after launch means touching everything. This is one of the most common cost overruns in the category, and the audit trail is your defence, so it is not optional.

The state rule matrix. Licensed in thirty plus states means disclosure text, cadence limits and interest treatment varying by jurisdiction, held as versioned configuration your compliance officer can edit without a release.

The parallel run. Nobody cuts a collection floor over in a weekend. Budget the double running, the reconciliation work and the temporary drop in collector productivity, because it is real cost that appears in no proposal.

What separates a build that works from one that fails here?

Make them draw the data model before you sign. Debt, consumer, account relationship, placement, attempt, consent event, dispute case, financial transaction. If consumer and debt are one entity, or attempts are a counter rather than an event log, they have never built this and your budget is paying for their education.

Ask which integrations they have run in production, by name, and what broke. A dialer interface, a tokenised gateway, Metro 2 output, TLOxp or Accurint, a bankruptcy scrub feed. The right answer contains a war story. Vague talk about integration capability means your first three months are discovery on your money.

Ask how a compliance rule gets changed. If the answer involves a code change and a release, keep looking. Cadence limits, disclosure text and state rules belong in versioned configuration with an audit trail of who changed what and when.

Settle ownership and exit in the contract, not at kickoff. You own the repository, the schema and the deployment in your own cloud account from the first commit, which is how Digital Heroes ships, and you get a runbook plus a named plan for taking the team down to a maintenance retainer. A partner who resists that is selling a subscription with extra steps.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Large companies globally have captured, on average, only 31% of the expected revenue lift and 25% of the expected cost savings from their digital and AI transformations - a significant gap between expected and realized value. Source: McKinsey & Company (2023) →
  2. Median SaaS spend reached $9,455 per employee, and organizations leave an average of 36% of their SaaS licenses unused. Source: Zylo (2026) →
  3. The median annual wage for U.S. software developers was $133,080 in May 2024, and employment is projected to grow 15% from 2024 to 2034 - a core input to any in-house build-vs-buy TCO model. Source: U.S. Bureau of Labor Statistics (2024) →
  4. Across more than 5,400 IT projects studied by McKinsey and the University of Oxford BT Centre, large IT projects ran on average 45% over budget and 7% over schedule while delivering 56% less value than predicted. Source: McKinsey & Company / University of Oxford (BT Centre for Major Programme Management) (2012) →
Omir Pal Singh · Finance & Accounts Manager · Delhi

Omir handles finance and accounts at Digital Heroes, which puts him close to how software projects are actually billed: milestones, change requests, retainers and the cost of scope that moves. His perspective helps buyers read a proposal properly before signing it.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Why is an attempt ledger different from a call disposition report?
A report tells you what happened. A ledger authorises what is about to happen. Regulation F limits are checked before a dial, so if your dialer builds a campaign from last night's export and reports back afterwards, the check has already failed by the time you see it. The test is simple: a revocation posted at 9:02pm must block the 4:15am campaign build with no human involved.
What is the safest way to migrate ten years of account notes?
Move them as immutable events carrying original author, original timestamp, the original time zone and a source system marker, and keep the raw extract in cold storage permanently. Then reconcile fifty accounts across your oldest and newest clients by printing note history from both systems side by side and having a supervisor who worked them confirm they read the same. Notes are evidence in a deposition, so a flattened or re-dated history is a real loss.
Our disputes are tracked as a status code. What breaks?
Everything that has a clock. A status code has no owner, no service level, no attached evidence and no timer, so blown deadlines surface when a regulatory complaint lands rather than when they happen. Build the dispute as a case with one intake regardless of channel, a clock starting on receipt rather than data entry, an automatic block on outbound attempts for that debt, and a media request to the client naming the exact documents.
Why do dialer integrations start blocking legitimate calls?
Usually because the ledger writes are not idempotent. Every dialer will eventually redeliver a disposition or drop a batch, and a redelivered disposition counted twice pushes a debt over its cadence limit against attempts that never happened. Process each inbound message exactly once using the vendor's own identifier, and reconcile on a schedule so a dropped batch raises a named alert instead of quietly leaving attempts unrecorded.
Can we keep our existing dialer and payment gateway?
Yes, and you should. Dialers, tokenised gateways and letter vendors are commodities their vendors are good at, so treat them as swappable executors behind your own interface. Build the account model, the attempt ledger, the decision engine, the dispute cases and the client facing ledger above them. That decision is what turns a multi year replacement programme into a first release you can actually finish.
When is CollectMax or InterProse ACE the right answer instead of building?
Under roughly twenty five collectors, one debt type, a handful of clients who accept your standard reporting and no unusual fee or interest logic. At that size a packaged platform will outrun anything custom and your money does more good in skip tracing data. It is also worth auditing what your current system can already enforce before replacing it, because plenty of agencies run capable platforms at a fraction of their configured capability.
What gets left out of collection software quotes most often?
Per client file formats priced as a single integration, credit reporting and e-OSCAR dispute handling mentioned as a bullet rather than scoped as a module, audit logging assumed to come free, the state rule matrix if you are licensed widely, and the parallel run. The parallel run in particular appears in no proposal and is real cost, because you will double run through at least one full remittance cycle.
How do we tell whether a developer has built this before?
Ask them to draw the entities on a whiteboard. Debt, consumer, account relationship, placement, attempt, consent event, dispute case, financial transaction. If consumer and debt are one thing, or attempts are a counter rather than an event log, they will rebuild the schema in month three at your expense. Then ask how a compliance officer changes a cadence rule, and reject any answer that involves a code release.
Should we pay a consultant to customize Salesforce or just build our own CRM?
If your gaps are configuration-sized, hire the consultant; the Salesforce customization quotes our clients bring to Digital Heroes usually run $150 to $250 per hour, and small changes land fast. Switch to building your own once the customization estimate crosses roughly half the cost of a custom system, because you would be spending custom-development money while still renewing per-seat licenses every year. We regularly see teams put $60,000 into Salesforce customization on top of $40,000 a year in licenses, more than a comparable system they would own outright.
We're outgrowing HubSpot's free CRM. Should we upgrade to a paid plan or build our own?
Upgrade inside HubSpot if your problem is limits on contacts, seats, or automation; Sales Hub Professional lists at $90 to $100 per seat per month and solves volume problems well. Build custom when the data model is the problem, for example deals that involve multi-site installations, equipment rentals, or recurring service visits that HubSpot's contact-company-deal structure cannot represent without workarounds. Roughly a third of the CRM projects Digital Heroes takes on replace a HubSpot account the team had bent past its limits.
How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
How do I vet a CRM development agency before signing a contract?
Ask to see two live CRMs they built for businesses your size and talk to those clients about what happened after launch, not during the sales process. Then pin down three specifics: who owns the code (you should, fully, on final payment), what a change request costs after go-live, and how they plan data migration. An agency that cannot walk you through a migration plan on the first call will improvise yours.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
Why do agencies charge for a discovery phase instead of quoting for free?
Because an accurate quote requires real work: mapping your workflows, finding the edge cases, and writing a specification, which typically takes 1 to 3 weeks and costs $2,000 to $10,000 at Digital Heroes depending on system complexity. You leave discovery owning a written spec and a fixed price you can take to any vendor, so the money is not locked into one agency. Free estimates are guesses, and the guess usually becomes your budget overrun six months later.
How long does it take to build a custom CRM from scratch?
A focused first version takes 10 to 14 weeks in Digital Heroes delivery experience: about 2 weeks of discovery and data modeling, 6 to 9 weeks of build, and 2 weeks of migration and testing. Fully replacing a heavily customized Salesforce setup takes 5 to 8 months. Timelines slip most often on data migration, so insist that legacy data mapping starts in week one, not at the end.
Can a custom CRM integrate with QuickBooks, Gmail, and our phone system?
Yes, and integrations are usually the main reason to go custom: QuickBooks, Gmail and Outlook, Stripe, Mailchimp, WhatsApp, and VoIP platforms like Twilio all have stable APIs we wire into CRMs routinely at Digital Heroes. Each standard integration adds roughly $2,000 to $6,000 and one to two weeks to the schedule. The expensive ones are legacy systems with no API, which need file-based syncs or database-level connections, so flag those in the first conversation.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
Who can build a custom CRM software system?

Digital Heroes builds custom CRM software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other CRM software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?