The files your plant already makes. Plus a live line in.
No new format to produce, no re-keying. These are the exports your systems emit today — and, for measurements, a path your equipment can post to directly.
Documents
Read into structured 8D knowledge, field by field.
Measurement CSV
Lands as control-chart-ready readings for a capability study.
Measurement API
LiveLive automated capture: readings flow straight in as they are made.
Master-data & incident feeds
Equipment, products and failure history, refreshed each pull.
Images are the one thing we turn away — a scan of a photo carries no text to read, so it is refused outright rather than imported as an empty record you would only discover was blank later.
Your old RCAs arrive as knowledge, not attachments.
A decade of failure reports in PDFs and spreadsheets is dead weight until something can read it. Ours does — and it tells you, field by field, exactly where every value came from.
The value sits in your document, word for word. Read straight across.
Implied by the report but not stated outright — labelled as inference, so you can check it.
Your report never covered this discipline. Left blank — never invented to fill the form.
The value was there but ambiguous. Flagged for a human rather than guessed at.
Nothing becomes knowledge without a person saying so
Every extracted item lands in a review queue first. Someone on your side approves it, edits it, or rejects it before it can ever be resurfaced in an analysis. The AI proposes; your engineers decide what your history is allowed to say.
Your column names, mapped once.
Two plants never name a column the same way, and header-sniffing is where silent import bugs are born. So we don't sniff. Your columns are mapped to ours deliberately, one time, by a human who checks the result.
Set once, then every pull and every re-upload lands the same way — no per-file decisions, no drift.
Nothing lands silently, and nothing lands wrong.
The fastest way to lose a plant's trust is a quiet import — a feed that reports success while dropping rows, a date it guessed wrong. Every path here is built to surface the problem instead of burying it.
A bad row stops the whole measurement import
Bulk measurement CSV is all-or-nothing. One malformed row and the import is rejected with a line-by-line error report — nothing partial is written, so you never chase a half-loaded study.
The live API keeps the good rows and names the rest
A posted reading batch accepts every valid row and hands back each rejection with its position in the batch and the reason. Your connector learns exactly what to fix — no silent drops.
One poison row never sinks the feed
A single unparseable row in a feed is set aside; every other row lands, and every row seen is accounted for in the run — landed, skipped, and why.
A broken source is an error, not an empty one
If the endpoint is down or the fetch fails, the run is recorded as an honest failure — never a successful zero-row sync that quietly makes it look like nothing changed upstream.
An ambiguous date is withheld, not invented
A date like 03/04/2025 that reads as two different days is left unset rather than guessed — the record still imports, it just never claims a recurrence window it cannot stand behind.
It connects to what you already have inside.
Getting data in is the easy half. The value is in the joins: the same asset recognized across systems, every defect placed in the product structure, no duplicates, and a hard wall between your workspace and everyone else's.
One machine, however it was spelled
pump_001 in one system and PUMP-001 in another resolve to the same asset. Spelling drift across sources stops splitting your history in two.
Every defect ties back to the BOM
An imported failure lands on its node in the product structure — component, sub-assembly, and the lot involved — so a defect is never a floating note nobody can place.
Re-import changes nothing
Upload the same file twice, or re-pull the same feed, and you get the same one record — not a second copy. A knowledge base that grows by duplication is a graveyard, so this one refuses to.
Bound to your tenant, only yours
Every import is scoped to your workspace. A mis-mapped connector aimed at the wrong tenant fails loudly at the boundary — it can't quietly write one plant's data into another's.
What we haven't built yet.
The reason to trust the rest of this page is that we will tell you where it stops. These are on the roadmap — named as roadmap, never dressed up as shipped.
Native connectors into your ERP or CMMS — not built
There is no native, log-in-and-pull connector into any ERP or CMMS today. Every feed is a file your systems export or a URL you host.
Today: CSV and document exports, plus the live measurement API.
Automatic scheduled sync — not enabled
Feeds do not yet pull themselves on a cadence. Nothing runs on a timer behind your back — and we would rather say so than imply an automation that is switched off.
Today: a pull is triggered, not scheduled.
Self-serve connector setup — not built
There is no screen where you wire up a new source yourself. The column map is authored with you, once, during onboarding.
Today: setup is a guided step with us, not a self-serve form.
Guided import and the measurement API live today — Native connectors into your ERP or CMMS roadmap