Skip to main content
INTEGRATION CASE STUDY

Competitive sourcing, triggered by the maintenance schedule.

A manufacturer's CMMS schedules routine maintenance and checks spare parts inventory. When stock falls below safety level for a required part, the system fires a replenishment event—and the integration service calls Purchaser to source competitively, rather than routing a PO directly to a single vendor. Procurement reviews quotes and awards. The CMMS receives the commitment.

CMMS Integration REST API Webhooks MRO Procurement
INTEGRATION ARCHITECTURE

How the systems connect.

The CMMS owns maintenance scheduling and inventory state. Purchaser handles vendor engagement, quote normalization, and comparison—triggered by the replenishment event, not by a procurement team member.

Maintenance System

CMMS / equipment state

replenishment event
availability & award callbacks

Integration Service

Customer-owned logic

REST API calls
quote.received · rfq.awarded

Purchaser

Sourcing platform

Vendor Engagement — managed by Purchaser

Every vendor in the pre-configured MRO list for the part category is attached automatically and receives the RFQ on publish. Lead time against the maintenance window is extracted alongside price—so the procurement team compares on the dimension that actually matters.

MRO Distributor A

MRO Distributor B

OEM Parts Supplier C

OEM Parts Supplier D

MRO vendor list by part category
END-TO-END FLOW

What happens, step by step.

Nine events connect the maintenance system to Purchaser and back. The CMMS owns the trigger and receives the outcome—Purchaser owns the competitive sourcing process in between.

Competitive sourcing where auto-reorder usually wins by default

Most MRO replenishment bypasses procurement entirely—a PO fires automatically to a preferred vendor and nobody reviews the price. For higher-value parts, that default costs real money over time. This integration intercepts the replenishment event and routes it through a competitive RFQ instead, while keeping the same automated trigger and the same deadline constraint.

Description
Maintenance System CMMS / equipment state
Integration Service Customer-owned
Purchaser Sourcing platform
MRO Vendors Parts suppliers
01
Maintenance System

Stock falls below safety level ahead of a scheduled service

The CMMS schedules routine maintenance on a piece of rotating equipment and checks the required spare parts against current inventory. Stock for one or more part categories has dropped below its safety level. The system fires a replenishment event with the part numbers, quantities needed, and the date the service is scheduled—before anyone in procurement is aware.

replenishment event
02
Integration Service

Creates a competitive RFQ instead of a single-vendor PO

The integration service reads the replenishment event and calls the Purchaser API to create an RFQ—rather than routing a PO directly to the preferred vendor. For higher-value parts, competitive sourcing recovers margin that auto-reorder leaves on the table. The pre-configured vendor list for that part category is attached automatically.

POST /api/v1/rfqs · POST /api/v1/rfqs/{id}/vendors
POST /api/v1/rfqs
03
Purchaser

RFQ published webhook confirms distribution to the integration service

Once the RFQ is sent to all vendors, an rfq.published event fires back to the integration service. The customer's system records that competitive sourcing is actively in motion—not just triggered, but confirmed distributed to the vendor list.

webhook: rfq.published
rfq.published
04
Purchaser

Distributes the RFQ to MRO vendors

Purchaser sends the RFQ to every vendor on the pre-configured list for this part category—OEM suppliers and authorized distributors. Each vendor receives the part numbers, required quantities, and the date stock needs to be on hand before the scheduled service.

RFQ email to each vendor
05
Vendors

Vendors submit availability and pricing

MRO distributors and OEM parts suppliers respond by email. Each submission is parsed into structured line items—availability, lead time, and unit price extracted from every response. No manual entry, no spreadsheet imports.

quote submission (email)
06
Purchaser

Vendor declines to bid — CMMS vendor record updated

If a vendor explicitly passes on the RFQ, a vendor.declined event fires to the integration service, which writes the non-response back to the CMMS against that vendor and part category. Over time, consistently unresponsive distributors can be removed from the vendor list for that category—the CMMS owns the vendor data, Purchaser surfaces the signal.

webhook: vendor.declined
vendor.declined
07
Purchaser

Quote receipts update the replenishment record

As quotes arrive, quote.received webhooks fire to the integration service, which writes vendor availability and lead time data back to the CMMS. Maintenance planners can see in real time whether parts will arrive before the scheduled service—before procurement has even awarded.

webhook: quote.received
quote.received
08
Procurement Team

Reviews normalized quotes against the service date, then awards

The procurement team opens Purchaser and reviews a side-by-side comparison: unit price, lead time, and availability for each vendor. Lead time is a constraint, not just a factor—parts that can't arrive before the scheduled service date aren't viable regardless of price. They negotiate directly in the conversation thread, select the winning vendor, and record the award.

review & award
09
Purchaser

Award webhook updates the inventory record

An rfq.awarded event fires to the integration service, which writes the purchase commitment back to the CMMS. The inbound quantity is logged against the part record and the service schedule is confirmed. Their downstream logic—PO creation, receiving, and inventory staging—picks up from there.

webhook: rfq.awarded
rfq.awarded

Get Connected

Ready to build your integration?

API documentation, authentication guides, and endpoint references are included with your account. Our integration team can help architect the connection for your environment.