A memo risk and sales intelligence layer on a legacy ERP for a $40M B2B wholesaler
A $40M B2B diamond wholesaler sells on memo: a retailer takes a stone, tries to sell it, and pays or returns it later. Customer data was split across the ERP, the CRM and the inbox, and past-due receivables and consigned inventory were tracked from memory. 3Pillars built a sales and risk intelligence layer on top of a legacy ERP, with Claude in the product and Claude Code behind the build. The first workflow was live in 5 weeks.
- Engagement
- An embedded CAIO and production engineering team; 6 months, ongoing; first workflow live in 5 weeks; 5 production workflows
- Claude in production
- Claude API assistant (Claude Haiku, Sonnet as the upgrade path); a read-only MCP server for staff claude.ai accounts; an Agent Skill for the schema; Claude Code with Claude Opus for the build
- Status
- Memo scoring and follow-up automation live April 2026; sales workbench, receivables automation and the assistant May 2026; MCP connector August 2026
- Integrations
- A 28-endpoint API over the ERP, HubSpot, Gmail, Jewelers Board of Trade credit data, RapNet market prices
- Rep go-get list: each of 16 outbound reps across the US and India gets a ranked list every morning (new prospects, reactivations, reorders, consignment). 34,000+ actions queued. Live.
- Customer follow-up: $15M+ of consigned inventory and about $2M of past-due receivables risk-scored every 15 minutes. About 1,500 follow-ups sent from reps’ own mailboxes, each approved by a person. Live.
- Connected customer data: the ERP, the CRM and email synced every night. Account ownership mismatches went from 516 to 0, and CRM owner coverage from 0.04% to 35% after one backfill of 3,412 companies with zero errors. Live.
The problem we took
The client is a $40M family-owned B2B diamond wholesaler with 16 outbound reps across the US and India. It had about 2,130 open memos and more than $15M of consigned inventory outstanding at any time, and no reliable way to track them. Customer data was split across the ERP, the CRM and the inbox. The ERP was a legacy, vendor-hosted system with no API. Past-due receivables and consigned inventory were tracked from memory; nobody knew which memo was old, which account was slow to pay, or which retailer to call next. Follow-up was manual email, one at a time. Credit risk lived in a third-party report nobody cross-checked. After months on a mainstream CRM, fewer than 1 in 2,000 company records had a valid owner.
About $2M sat past due across 234 accounts. Reps spent the first hour of each day deciding who to call with no data behind the choice. Memo status chases took days of staff time each week. Slow-pay accounts aged silently until the stone was gone or the balance was stale.
What the client already had
The data, locked inside the ERP, and a sales team that knew its accounts. The client keeps the final say on every outbound email: a person approves each follow-up before it sends.
What we built
3Pillars embedded a CAIO and a production engineering team. The first workflow was live in 5 weeks; 5 production workflows run today. An API service reads the ERP’s internal data and serves it through 28 clean, versioned endpoints, since the vendor offers none. A scoring service rates every open memo 0 to 100 for risk every 15 minutes on age, value and credit data. A follow-up engine drafts status requests for aged memos and past-due invoices and sends them from reps’ own mailboxes, with inbound reply detection and HubSpot contact and owner sync. A sales workbench gives each of 16 reps a ranked daily call queue with full account context. A natural-language assistant on Claude answers sales, margin, memo and inventory questions and exports spreadsheets. And a read-only MCP server, with query allowlists, scrubbed credentials and per-user audit logs, lets the client’s own claude.ai sessions safely query live ERP data; an Agent Skill teaches Claude the schema.
Before the model choice, 3Pillars ran a 30-prompt bake-off across four vendors: Claude Haiku 4.5 and Claude Sonnet 4.6 beat two open-weight alternatives on tool accuracy and speed. Daily RapNet market prices (about 283,000 listings at about 95% coverage) feed buying intelligence, and a 181-test automated suite guards the follow-up engine before every deploy.
What it returned
The client’s team sees the whole memo book, ranked by risk, every morning. The system risk-scores more than $15M of consigned inventory and about $2M of past-due receivables every 15 minutes, and chases past-due balances on a fixed twice-monthly cadence; faster collection on even 1% of past-due balances offsets the platform’s full annual cost. About 1,500 follow-ups have gone out from reps’ own mailboxes, each approved by a person. In the first memo cycle the engine drafted 290 follow-ups; the first live receivable cycle produced 138 approved sends, 31 replies and 18 balances paid or cleared inside the window. Reps open the day with a reasoned list instead of a blank slate, 34,000+ actions are queued, and slow-pay accounts surface instead of aging silently: an estimated 6 to 10 staff hours a week returned.
Next, the work moves into the back office: an AI financial reporting dashboard, and a buying intelligence tool that joins inventory, market pricing and expected margin.
Figures come from the platform’s own databases and sync audits and from the engagement team, April to October 2026, compiled by 3Pillars. Model choice for the assistant: Claude Haiku by default, accessed through an API gateway.
Run this inside your organization.
A 30-minute working session. We walk through what an engagement like this one would look like for you.