Join the AI + Data Tour for hands-on training, real customer stories, and time with Domo product experts near you.
It's 8 am, and the accounts receivable (AR) analyst opens the aging report to start collections for the day. The list is sorted oldest first, so the first name on it is a $50 invoice that slipped 90 days past due from a customer who always pays eventually. An hour of phone tag later, that $50 trickles in.
Meanwhile, a $10,000 invoice from an account that pays late more than half the time sits untouched three screens down.
That backwards morning is the problem Gordon Pont, a Domo solution engineer, set out to fix in a recent Domo livestream. He shared an AI cash agent that reprioritizes collections by expected cash recovered instead of invoice age.
Below is the framework Gordon demonstrated, rebuilt so any AR team can score their own overdue invoices and decide who to call first.
Score every overdue invoice, then rank the queue
Working oldest first treats every dollar as equal, but they aren't. A ranked queue asks a sharper question: Which call today recovers the most cash at the least risk? To answer it, each open invoice is scored across four factors and combined into one priority number. The list is then re-ranked as new payments and disputes land.
The four scoring inputs below come straight from the agent Gordon demonstrated. Each one earns points, and the points add up to a single score per invoice.
Days past due. This factor carries the most weight, because the longer money sits unpaid, the harder it gets to collect. In the demo, an invoice 89 days past due contributed roughly 40 points on its own. Recent slips earn far fewer points than long-overdue balances.
Dollar amount. Bigger balances move your cash position more, so they earn points too, though less aggressively than aging. The $24,000 invoice in the session added about 2.9 points. Size matters, but it never gets to override risk and age by itself.
Payment reliability. How often does this account actually pay on time? The example customer paid on schedule only 44 percent of the time, a signal that a friendly reminder probably won't be enough. Accounts with a strong on-time history score lower and can wait.
Account history and risk signals. Chronic late payment, open disputes, and credit holds all raise the odds that a balance goes unpaid. These signals push an invoice up the priority list so nobody is blindsided by an account that was quietly heading toward a write-off.
Add those four factors together and every invoice gets one comparable priority score. Now the queue sorts by what you stand to recover, not by a date stamp.
Re-rank the list as the day changes
A ranked list built in the morning might be stale by the afternoon, because payments post, disputes open, and promises to pay come in.
The agent recalculates priority as those events happen, so the queue reflects expected cash recovered right now rather than the order things were overdue this morning.
That live re-ranking is what separates this approach from a spreadsheet. A static export freezes the world at the moment you downloaded it. A scored, self-updating queue keeps pointing the team at the next best call.
Start with quick wins before the hard accounts
Not every high-value call should come first. In the session, we made the case for opening the day with quick wins: low-risk accounts that are only a few days late and usually pay on time.
A short reminder often closes them, which brings in fast cash and gives the team a run of easy successes before the big, contentious, at-risk accounts.
Sequencing the day this way keeps momentum high. The team banks recoverable cash early, then spends its harder hours on the accounts that genuinely need negotiation, escalation, or a payment plan.
Build it on data you can trust
A priority score is only as good as the data feeding it. Payment history, dispute status, and aging live across different systems, usually an enterprise resource planning (ERP) tool and separate accounting or invoicing software.
If those sources don't line up, the score misleads the team. This is where Domo helps. The agent runs on a governed data foundation that unifies those sources, and it can sit on top of the customer's existing cloud data warehouse, whether that's Snowflake, BigQuery, or Databricks, without moving the data out of it.
Governance carries through every layer, and a person stays in the loop on the actions the agent proposes. Humans set the objectives and constraints; the agent works within them.
As Gordon put it, the difference comes down to what you build on: "With Domo, we don't have a garbage can. We've got a Cadillac."
A ranked call list only helps if it plugs into the collector's actual workflow, which is exactly what turning reporting into action looks like in practice.
Put the framework to work
Ranking your AR queue by cash impact and pay-late risk changes the first question of the day from "what's oldest?" to "what recovers the most cash right now?"
Score each invoice on days past due, dollar amount, payment reliability, and risk signals. Combine those into one priority number, re-rank as payments and disputes arrive, and open with quick wins before the hard accounts.
The livestream goes further than this framework does. Gordon showed the agent drafting outreach emails and routing them to a credit manager to approve or reject inside Domo, so a person signs off before anything sends.
He also walked through building the entire app fast with the agentic coding tool Cursor across eight phases, using Domo's MCP and command-line tools. Both are worth seeing in motion, so watch the full session.






