Healthcare supplies distributionLaval, QC2026

From purchase order email to NetSuite sales order, with the team handling only the exceptions

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.

Groupe ERP

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.

Orders in every format

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.

Accounts that are hard to find

More than 31,000 customer records, orders that rarely carry an account number, parent organizations ordering for many sites, and near-duplicate prospects.

One inbox for everything

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.

  1. June 2026

    A clickable prototype from real orders

    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.

  2. June 2026

    NetSuite stays the source of truth

    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.

  3. July to August 2026

    The riskiest part first

    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.

  4. August 2026

    Shaped by the real orders

    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.

  5. September 2026

    In the client's own Azure

    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.

The inbox sorts itself

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.

Orders read from any format

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.

The right customer and quote

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.

Sales orders in NetSuite

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.

How it works, step by step

  1. 1

    Ingest

    Mailboxes are watched in real time through Microsoft 365, with a periodic sweep so no email is missed.

  2. 2

    Classify

    The team's rules run first, AI is the fallback. Below the confidence threshold, the email goes to a person.

  3. 3

    Extract

    Order fields are read from the email body, the PDF or the fax image, each with its own confidence score.

  4. 4

    Match

    Customers, ship-to addresses, items and quotes are matched against live NetSuite data.

  5. 5

    Check

    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.

  6. 6

    Write

    One isolated service creates the sales order in NetSuite and attaches the source document, followed by an automatic verification.

Technology

TypeScriptReact + ViteNode.js + ExpressPostgreSQL + Drizzlepg-boss job queueMicrosoft 365 (Graph, IMAP)NetSuite (REST, SuiteQL)Azure (Canada)Azure Blob StorageTerraform

Engineering safeguards

  • Only one service can write to NetSuite, enforced by architecture rules
  • Every write recorded before it happens, so an order is never created twice
  • Prices never taken from documents: NetSuite is always the source
  • Microsoft sign-in, invitation-only access and encrypted tokens
  • Configurable data retention, hosted in Canada
  • About 3,600 automated tests, including live tests against a NetSuite sandbox

Benefits

Time saved

The team validates prepared orders instead of typing them from scratch.

  • The shared inbox sorts itself into the right folders and to the right people
  • Order details arrive extracted and matched, with the fields to check highlighted
  • No more searching NetSuite for the right customer account and quote
  • Routing rules, inboxes and users managed by the team, without a developer

Revenue impact

Faster, cleaner order entry protects every sale.

  • Orders reach NetSuite sooner, so they ship sooner
  • Prices always come from NetSuite, with mismatches flagged before an order goes out
  • Duplicate orders blocked before they turn into billing problems
  • Order volume can grow without adding order-entry staff

Why OneNine

Why Groupe ERP trusted OneNine with its order entry

Real data before real code

We designed from actual orders, emails and faxes, and changed the plan when the data disagreed with the specification.

Risk first

We proved the NetSuite integration before building the rest, so there were no late surprises.

Built not to make costly mistakes

Exactly one path to write orders, a record before every write, and no duplicates, even if a call fails halfway.

Your cloud, your rules

Deployed in Groupe ERP's own Azure in Canada, with infrastructure as code and settings the team controls.

Ready to take the manual work out of your revenue?

Tell us where you are on your AI journey. We will come prepared with a clear perspective on what is possible and what to prioritize, not a generic pitch.