Memo Risk & Sales Intelligence.
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.
Company Profile
A $40M family-owned B2B wholesaler that grows, imports, manufactures and sells mined and lab-grown diamonds to retailers. Sixteen outbound reps across the US and India work the memo book. The ERP is a legacy, vendor-hosted system with no API; the CRM had been adopted but never maintained.
The Challenge
Customer data was split across the ERP, the CRM and the inbox. 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, written 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, so it showed the wrong picture and nobody trusted it.
About $2M sat past due across 234 accounts, with more than $15M of inventory on consignment and out of sight across about 2,130 open memos. 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.
The memo book kept growing and past-due balances reached critical levels. The firm knew its data could answer these questions but had no way to reach it.
What 3Pillars Built
3Pillars embedded a CAIO and a production engineering team. The first workflow was live in 5 weeks, and 5 production workflows run today. The engagement is 6 months in and ongoing.
An API over an ERP with no API
The ERP’s internal data reverse-engineered into a versioned, 28-endpoint service, with a data store behind it.
Memo risk scoring
Every open memo rated 0 to 100 every 15 minutes on age, value and Jewelers Board of Trade credit data: $15M+ of consigned inventory and about $2M of past-due receivables.
Follow-up engine
Status requests for aged memos and past-due invoices drafted and sent from reps’ own mailboxes; a person approves each one before it sends. About 1,500 sent. Inbound reply detection; HubSpot contact and owner sync.
Sales workbench
Each of 16 reps opens the day with a ranked list (new prospects, reactivations, reorders, consignment), a 15-call queue and full account context pre-assembled. 34,000+ actions queued.
Claude assistant
A natural-language assistant on Claude answers sales, margin, memo and inventory questions and exports spreadsheets.
Staff querying live data in Claude
A read-only MCP server with query allowlists, scrubbed credentials and per-user audit logs lets the client’s own claude.ai accounts query the database; an Agent Skill teaches Claude the schema.
Daily RapNet market prices (about 283,000 listings) feed buying intelligence, and a nightly sync of the ERP, the CRM and email keeps about 6,300 CRM customer records aligned. A 181-test automated suite guards the follow-up engine and runs before every deploy. The client’s team now sees the whole memo book, ranked by risk, every morning.
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.
Results
Faster collection on even 1% of past-due balances offsets the platform’s full annual cost. An estimated 6 to 10 staff hours a week returned across sales and admin. About 283,000 market listings pulled daily at ~95% coverage. Figures come from the platform’s own databases and sync audits and from the engagement team, April to October 2026.
Functional Areas Touched
Highlighted nodes are where the platform changed daily work.