Connect it to what you already run
Maintenance data is worth more when finance can see the cost and the building system can raise its own alarms. Connections are explicit, one direction each, and logged every time they run.
What it connects to
By categoryFinance / ERP
Maintenance cost against cost centres
Building management
Plant alarms become work requests
Sensors & IoT
Readings feed condition thresholds
Named systems depend on your stack — tell us what you run and we will confirm what connects today. [Replace]
Cost where finance looks
Maintenance spend exported against your cost centres, from the same work orders your team closed.
Alarms become work
A plant alarm from a building management system arrives as a request with the asset already attached.
Visible when it runs
Every sync is logged — including the ones that only half worked, which is when you most need to know.
Which way the data moves
Two-way sync that nobody can explain is how data gets quietly corrupted.
- One direction stated per flow, in plain words
- The exact fields carried, and how often
- No silent overwriting of a record somebody edited
Which way it moves
4 flowsBuilding managementWork request
CarriesAlarm code, plant ID, timeHow oftenAs it happensSensor gatewayAsset reading
CarriesValue, unit, timestampHow oftenEvery 15 minutesWork order costFinance / ERP
CarriesLabour, parts, cost centreHow oftenNightlyDirectory groupsRoles & sites
CarriesUser, group, siteHow oftenOn change
Did it actually run?
An integration you cannot see is an integration you cannot trust.
- Every run logged with what it moved and what it skipped
- Partial runs shown as partial, not quietly marked successful
- Retries visible, so nothing disappears without a trace
Sync log
Last nightCost export to finance02:00OK
41 work orders, ₹2.14L, accepted
Reading import, sensor gateway01:45OK
1,204 readings across 38 assets
Directory sync01:30Partial
2 users skipped — no site mapped. Retried at 02:30.
BMS alarm webhook00:15OK
Alarm 4021 became WO-1044
An integration you cannot see is an integration you cannot trust. Every run is logged, including the ones that only half worked.
Build your own
Where there is no ready-made connection, there is an API and a scoped key.
- One key per purpose, scoped to what it needs
- A key that only reads assets cannot close a work order
- Revocable immediately, per key
API access
Scoped keys# one key, one purpose, one scope
GET /api/v1/work-orders?site=block-b
Authorization: Bearer ngn_live_••••••••
work-ordersRead & write
Used byNightly exportRevocableImmediately, per keyassetsRead
Used byReporting warehouseRevocableImmediately, per keyreadingsWrite
Used bySensor gatewayRevocableImmediately, per keypartsRead
Used byNot in useRevocableImmediately, per key
A key that only reads assets cannot close a work order. Scope is the whole point.
Ready to simplify your maintenance operations?
Book a personalized demo and see how NeoGen CMMS fits the way your team already works.
Integrations questions
Which systems do you connect to today?
That depends on your stack, and we would rather confirm it on a call than publish a list here that turns out not to include the one you care about. Bring what you run and we will be specific.
Do we need an integration to get value?
No. Everything else on this site works with no integration at all. Connections make the data reach further; they are not a prerequisite.
Is there an API?
Yes, with scoped keys, so an integration you build has exactly the access it needs and no more. Keys can be revoked individually.
What if our building system is old?
Very common. If it can send an email or a simple web request when something trips, that is enough to raise a work order. It does not need a modern API.
