Enterprise AI · Medtech Parts & Service
Every System in One Conversation, Every Email in Its Place
A multimillion-dollar international medtech parts dealer and service provider ran on five systems that never spoke to each other, and on a shared mailbox that carries thousands of service requests. We built three production systems on top of them. An enterprise MCP lets Claude answer questions across every system in plain English. Attuned turns the service mailbox into jobs with drafted replies. Parts & Inventory ranks every part number by revenue at risk each night.
- Client
- Multimillion-dollar international medtech parts dealer and service provider
- Delivered
- 2026, live in production
- Users
- Leadership, service desk, pricing and field engineers
- Platform
- Claude, Azure, Microsoft Entra ID, Postgres
Impact Metrics
- 5 Enterprise systems (Reached through one connector)
- 38 MCP tools (36 read-only, 2 gated writes)
- 14,901 Service emails read (Grouped into 2,557 jobs)
- 83% Less to read (For the service desk)
- 21,047 Part numbers (Ranked every night)
- 0 Emails sent by software (A named person approves each draft)
The data existed. Nobody could ask it a question.
Five systems, no common language
CRM, financial ERP across 40+ legal entities and four currencies, a field-service ERP, an acquired business's warehouse and a data platform. Every cross-system question meant exports and a spreadsheet.
References that resolve to nothing
Partners write their own SR, PO and quote numbers, and those arrive before the company has created any record. Nine were searched against the live CRM. None resolved. At intake there is no lookup key.
A mailbox as the work queue
Service requests come by email from a dozen partners, each with its own format. One machine's repair scatters across several threads and senders, and the team tracked it by hand.
Stock and price from stale exports
Twenty-one thousand part numbers, demand against stock and list prices reviewed in spreadsheets. The cost of a harvested system was unknown until someone worked it out by hand.
Rules where rules work, AI where they stop, people where it counts
Problem: Leadership waited days for answers that needed more than one system.
Solution: An MCP server gives Claude 38 tools over the CRM, financial ERP, field-service ERP, the acquired business's warehouse and Fabric. People ask in plain English; Claude joins records only on keys proven to hold across systems.
Problem: An AI that guesses is worse than none when the input is customer mail.
Solution: Rules classify first. The AI reads only what the rules cannot place, answers inside a closed schema, and every value it returns passes the same validators the rules use. Email is treated as data, never as instructions.
Problem: Replies to partners and hospitals were typed from scratch, one at a time.
Solution: Attuned drafts the reply at each milestone and a named person approves it. Approved drafts become unsent Outlook drafts. The software has no send function, and pricing is refused on anything that could reach a hospital.
Problem: Changing a threshold or a template meant waiting on a developer.
Solution: Draft wording, priority phrases, thresholds, sender classes and pricing rules live in Administration. The product owner edits them; every save is versioned, audited and live at the next run.
Problem: Automation that writes to the CRM puts the system of record at risk.
Solution: The inventory app signs in as a read-only integration user with a certificate. It runs SELECT queries only, and a test fails the build if any write path appears.
Product walkthrough
Screens from the live production systems, captured on real data on 21 October 2026. Before each capture, customer, partner and patient details, people, serial numbers, amounts and the client's name were replaced with random characters and then blurred, so the images hold none of the original text.
Enterprise MCP
For leadership and analysts. One Model Context Protocol server that lets Claude query five enterprise systems, with the data's known weak spots built into what Claude is told.
Attuned
For the service desk. Attuned reads the shared service mailbox, works out which machine each email is about, groups the correspondence into jobs and drafts the replies. It is built on the service team's own rule:
1 job = 1 work order = 1 field service report = 1 machine
Parts & Inventory
For pricing and inventory. Rebuilt from the CRM every night, read-only, on the same platform as Attuned: Entra sign-in, roles from the database, an append-only activity log and staging before production.
Thirty-Eight Tools Behind One Connector
The server runs on Azure and connects to Claude as a custom connector. Each person connects with their own authorization.
- Every tool listed by name, and each call waits for approval
- 36 tools only read; the 2 that update CRM records are gated
- Deal to invoice to ledger traced on verified keys
Connector settings in Claude. Connector name and server address blurred.
A Question in Plain English
A manager asks for an operations snapshot covering returns and open repair work. Claude chooses the systems and the tools.
- Nine read-only calls across the CRM and the service ERP
- Checks how fresh the service snapshot is before using it
- The full answer arrived in under two minutes
The question and Claude's first steps. Client name and most record counts blurred.
The Data's Weak Spots, Stated
The root-cause field was blank on 99.7% of RMAs. Claude said so and used the closest structured field instead.
- Each table names its source, live or snapshot
- Free-text causes grouped, and labelled as Claude's own call
- Shares stay exact; most record counts are blurred here
RMA breakdown. Most record counts blurred, shares left readable.
The One Thing to Look at First
Most repair orders marked open for more than a year had already been billed. The live backlog is roughly a tenth of the reported one.
- 78% of year-old open orders already invoiced
- Only a small share show labor or material in 90 days
- Fix proposed: bulk-close billed, inactive jobs and add a close-out step
Repair-order aging and the finding. Most counts, a staff name and a business unit blurred.
The Service Mailbox, Turned into Jobs
Attuned checks the mailbox every five minutes and keeps a running account of what it has done.
- 14,901 emails became 2,557 service jobs
- 54.9% classified with nobody touching them
- Partner identified on 60.9% of jobs, machine on 48.9%
Overview. Client logo, account name and partner names blurred.
One Job per Machine
Every email about a machine lands on one job, whichever partner sent it and whatever reference they used.
- Keyed on serial number, partner reference or thread, with the confidence shown
- Twenty-five messages from several senders on this one job
- Reference formats live in a pattern registry; a new one is a line and a test
A job's correspondence. Senders, subjects, bodies and references blurred.
A Queue That Says Why
Only jobs the rules cannot place with confidence reach a person, and each one says what it is waiting on.
- Partner unknown, hospital direct, machine unknown, too thin to route
- Decisions recorded on the job: reviewed, assigned, partner set, noise
- A decision applies at once; notes never change how a job is classified
Review queue. References, serials and email text blurred.
Replies Drafted, Approved by Name
At each milestone Attuned drafts the reply as the customer will read it. A named person approves or rejects it.
- Approved drafts become unsent drafts in Outlook
- The mail permission was never granted, so nothing can send
- A rejection note is kept so the next draft does better
Draft detail. Recipient, subject, body and approver blurred.
Field Engineers, Ready for Dispatch Texts
The roster holds each engineer's territory, dispatch radius and the mobile number dispatch texts will go to.
- 38 active engineers, every one with a location for dispatch distance
- Consent kept as an append-only record of every opt-in and opt-out
- Deactivated engineers stay on the record with their history
Engineer roster. Names, mobile numbers, territories and leads blurred.
The Business Owns the Rules
Draft wording, priority phrases, thresholds and the AI budget are edited in Administration by the product owner.
- A change applies at the next mail check, with no restart
- Every save is recorded in Activity
- Sender domains classed as partner, end user, internal or ignore
Settings. Template wording blurred.
Where Stock Is Short, and What It Costs
Each night the app rebuilds demand against stock for every part number and ranks the gaps by revenue at risk.
- 21,047 part numbers, 10,963 with demand
- P1 out of stock, P2 below the 2-month minimum, P3 below the 6-month maximum
- Revenue at risk is the shortfall times list price, by modality
Overview. Logo, win rate and every dollar figure blurred.
Every Part, Against Its Demand
One row per part number: nine-month demand, stock, and the gap against the two- and six-month estimates.
- Filter by modality, family or priority
- Pick any night's run to see it as it was
- Export to Excel with the run and rules version stamped in
Part demand. Part numbers, products, gaps and amounts blurred.
Price Recommendations, Never Price Changes
The app proposes cuts, raises and list fixes. A price changes only after review and approval.
- Cuts under the margin floor flagged
- Duplicate part numbers with conflicting prices surfaced
- Past changes judged on close rate three months before and after
Pricing. Part numbers, prices and amounts blurred.
Business Rules with Versions
Every rule the engines use is a typed setting with history, a diff and a revert.
- Version 3 in force; 48 of 72 rules await a client decision
- Each rule shown beside the blueprint's recommendation
- A what-if run under the recommendations every night
Business rules. Client-specific wording, values and people blurred.
Read-Only on the CRM, and It Shows
The app signs in as a read-only integration user with a certificate and runs SELECT queries only.
- Nightly and monthly runs, every step logged
- Field history kept past the CRM's 18-month limit: over a million asset history rows
- Every landing checked against the CRM's own count
Data and refresh. Integration user and run ids blurred.
Less reading, fewer exports, decisions with the evidence attached
Service desk
Before: Every email read and tracked by hand across a dozen partner formats.
Now: 14,901 emails grouped into 2,557 jobs, one per machine. The review queue holds only what needs a person, each with its reason.
Customer updates
Before: Replies typed from scratch.
Now: Drafted at each milestone, approved by a named person, saved as an Outlook draft.
Leadership questions
Before: A request to whoever could export each system, then a spreadsheet.
Now: A plain-English question across five systems. The returns and repair-order snapshot above took under two minutes.
Inventory and pricing
Before: Periodic exports and manual costing.
Now: A nightly rebuild ranks 21,047 part numbers by revenue at risk and costs every open work order. Price changes wait for review.
Business rules
Before: A developer change and a deploy.
Now: The product owner edits wording, thresholds and pricing rules in Administration. Versioned, audited, live at the next run.
Data quality
Before: Problems found by accident, if at all.
Now: Surfaced with the answer: a root-cause field blank on 99.7% of RMAs, and year-old repair orders billed but never closed.
What we built
- Five systems, one connector: CRM, financial ERP, field-service ERP, an acquired business's warehouse and the data platform, behind 38 named tools.
- Joins on trusted keys: Deal to product items to invoice, ledger entries by opportunity number, leads to deals by conversion id. No fuzzy matching.
- Data-quality context: Claude is told where the data is weak, such as blank stages, legacy stage names and unsynced accounts, so caveats travel with the answer.
- Governed metric definitions: Revenue, pipeline, bookings, margin, DSO, AR and AP aging, parts and repair-order margin, each computed one agreed way.
- Identity engine: Serials, references and sites extracted by a pattern registry kept as data. Job ids derive from the job's key, so decisions never detach.
- Rules first, AI second: AI reads only the mail the rules cannot place, inside a closed schema, with a monthly budget that flags spending rather than stopping work.
- Drafts with a named approver: Approval checked in two independent places before anything reaches a mailbox. An approval without a name is rejected.
- Report a problem: On every screen. The report carries the screen, filters and recent steps, with customer details painted over before it leaves the browser.
- Nightly and monthly rebuilds: Scheduled jobs land write-once snapshots with checksums and the CRM's own counts before any analysis runs.
- History beyond 18 months: Field history exported every night and kept, giving stock per part per day and every price change with its date.
- Role-scoped figures: Viewers never receive costs or margins. The API leaves them out of every response and every workbook.
- Harvest costing: Every open work order costed nightly by the pricing team's own steps, with fixed costs pinned by hand where they know better.
The same platform, applied to the next problems
- SMS dispatch (Launching): Texts to field engineers from Attuned's roster, with the consent ledger and registered campaign already in place.
- Commissions engine (In build): Replaces a SaaS commissions platform. It already reproduces 310 of 310 payouts from July to September to the cent, reading transactions through the read-only CRM user.
- Quoting capacity model (Claude skill): Rebuilds each sales team's quoting capacity and forecast from live opportunity data on request, down to the rep.
Milestones, 2026
- 27 Aug The service rule: The service team sets the rule everything is built on: one job per machine.
- 1 Sep No lookup key at intake: Nine customer references searched in the live CRM, none resolved. The identity engine becomes the core.
- 2 Oct Staging goes live: Every release now runs in staging first; production only receives what staging has run.
- 4 Oct Attuned in production: Entra sign-in, Postgres and alerting replace the original shared-password console.
- 6 Oct SMS program pages live: Terms, privacy and consent published; the carrier campaign submitted.
- 14 Oct Inventory joins the platform: Parts & Inventory rebuilt on Attuned's foundations, deployed through pipelines to staging and production.
- 19 Oct Read-only by construction: Inventory moves to a certificate-signed, read-only CRM user; the nightly refresh verified in both environments.
- 21 Oct Commissions reproduced: The new engine matches three months of payouts to the cent.
Platform Capabilities
Identity and Access
- Microsoft Entra ID single sign-on
- Roles read from the database on every request
- A protected root administrator who alone grants admin
- Invitations bound to the person's Entra id
Audit and Trust
- Activity log the database refuses to edit or delete
- Every change and every refusal recorded
- CRM access read-only; mail access read and draft only
- Email content never treated as instructions
Delivery
- Staging and production on Azure, managed in Terraform
- Production promoted only from staging
- Unit and end-to-end tests with accessibility checks before each commit
- Rollback to the previous revision in one step
Operations
- Application Insights with alert rules
- JSON logs with a request id on every call
- Security headers and a content security policy
- Incremental processing: quiet passes cut from about 73 s to 1.7 s
“1 job = 1 work order = 1 field service report = 1 machine.”
The service team's rule, August 2026. Attuned's identity engine exists to keep it true.
Three systems now carry work that used to live in inboxes and exports. Claude answers questions across five systems and says when the data is weak. Attuned turns a shared mailbox into jobs and drafts that a named person approves. Parts & Inventory ranks every part by what a shortage costs, every night, without writing a byte to the CRM.
Client name withheld. Screens captured from the live systems on 21 October 2026; figures as of that date.
See more of how we think in the AetherCraft glossary, or read the UNIZA case study and the Deal Intelligence case study.
Book a Discovery Call. Eduardo Diaz leads every AetherCraft engagement personally.