Groupe ERP distributes healthcare and clinic supplies to professionals and institutions. Purchase orders, returns, service requests and supplier invoices all arrive in one shared inbox, and every order had to be read, matched to the right customer account and quote, and keyed into NetSuite by hand. OneNine built a platform that sorts the inbox and prepares each order, so the team reviews exceptions instead of retyping.

At a glance
31,700+
NetSuite customer accounts matched automatically
9
email categories routed from one shared inbox
20+
exception types caught before an order reaches NetSuite
~3,600
automated tests, including live tests against a NetSuite sandbox
The problem
Every order started as an email. Before anything could ship, someone had to read it, find the right account and quote, and retype it into NetSuite.
Some orders arrive in the body of an email, others as a PDF, and about a quarter of real samples were scanned faxes. Item codes and quantities are written a dozen different ways.
More than 31,000 customer records, orders that rarely carry an account number, parent organizations ordering for many sites, and near-duplicate prospects.
Orders, returns, service requests and invoices were mixed together, so orders could wait while the team sorted mail.
How we got there
We let real orders drive the design, and proved the riskiest part first.
June 2026
Within a week, a working prototype of the validation screen and the email triage, built from real sample orders, so the team could react to something concrete.
June 2026
A key decision: the platform does not replace approvals in NetSuite. It creates sales orders at Pending Approval, so the existing process stays in place.
July to August 2026
We proved the NetSuite write path against a sandbox before building anything else, and moved authentication to OAuth 2.0 machine-to-machine ahead of Oracle retiring the older method.
August 2026
Real samples showed that most orders are in the email body and many are faxes, so the body became a first-class source and scanned documents are read with vision. Price extraction was dropped: prices always come from NetSuite.
September 2026
Deployed with Terraform in Groupe ERP's own Azure subscription in Canada, starting with an acceptance environment ahead of go-live.
The solution
Rules handle the predictable cases, AI handles the rest, and a person steps in only when the system is not sure.
Every incoming email is sorted in real time with the team's own rules (keywords, senders, domains), with AI as the fallback. Emails are moved or forwarded automatically, and anything uncertain goes to a person.
Customer, items, quantities, quote number and shipping details are extracted from the email body, a PDF or a scanned fax, with a confidence score on every field.
Customers are matched by name, postal code, address and phone across parent and child accounts. A quote number on the order is used first; otherwise the system finds the open quote with the same items.
Matching quotes are converted to sales orders, or new orders are created, at Pending Approval. Prices always come from NetSuite, and any difference with the customer's document is flagged.
Under the hood
A TypeScript platform in Groupe ERP's own Azure, with a single, strictly controlled path into NetSuite.
Mailboxes are watched in real time through Microsoft 365, with a periodic sweep so no email is missed.
The team's rules run first, AI is the fallback. Below the confidence threshold, the email goes to a person.
Order fields are read from the email body, the PDF or the fax image, each with its own confidence score.
Customers, ship-to addresses, items and quotes are matched against live NetSuite data.
More than 20 typed exceptions, from an ambiguous customer to a duplicate order or a price difference, either block the order or raise a warning.
One isolated service creates the sales order in NetSuite and attaches the source document, followed by an automatic verification.
Benefits
The team validates prepared orders instead of typing them from scratch.
Faster, cleaner order entry protects every sale.
Why OneNine
We designed from actual orders, emails and faxes, and changed the plan when the data disagreed with the specification.
We proved the NetSuite integration before building the rest, so there were no late surprises.
Exactly one path to write orders, a record before every write, and no duplicates, even if a call fails halfway.
Deployed in Groupe ERP's own Azure in Canada, with infrastructure as code and settings the team controls.