Building against Manufacturing PLM

This is a guide to the shape of the platform rather than a reference. The reference lives with the API itself; what this explains is why the surfaces are divided the way they are, and which of them you should reach for.

Updated · 1,228 words · no sign-up required
ONE GRAPH · TYPED EDGESverified byspecifiesgeometry forused insourced fromrolls up torevisesRequirementDocumentCAD modelPartrev C · releasedProduct BOMCost · massSupplier · AMLOpen ECO“This MPN just went EOL.” — one traversal, three answers.

Frequently asked

Should I use the API or webhooks?

It depends on who initiates. Use the API when your code starts the interaction and needs an answer now. Use webhooks when Manufacturing PLM starts it and your system needs to know. Polling the API on a timer to detect changes is the pattern webhooks exist to replace.

Can an integration write anonymously?

No. Every write has an attributed actor and there is no service account that writes as nobody. This surprises teams building automation, who expect the automation to be invisible in the record — it is deliberately not, because an unattributable change is not auditable.

Why are idempotency keys so important?

Because without one, a network timeout after the server commits produces a duplicate on retry. Two items describing one physical part is the most damaging condition a PLM can hold: both are individually correct, no validation fires, and every structural query afterwards returns half the truth.

What should an idempotency key be derived from?

Something stable in your own system, such as the source record's identifier. Not a timestamp and not a value generated at call time, because a retry has to produce the same key as the original attempt or the mechanism accomplishes exactly nothing.

Why can't I just fetch the raw BOM lines?

Because you would then have to reimplement effectivity and variant resolution in your own code, differently, and get a different answer from the one the interface shows. Structural reads return resolutions under stated conditions, with those conditions attached to the response itself.

Why are webhook payloads so thin?

A fat payload is stale on arrival and bakes a permission decision in at send time. A thin event tells your system something happened; your system then reads current state under its own identity, which is both more correct and considerably more secure.

Is webhook delivery ordered?

Per object, yes. Across objects, no. Building a state machine that assumes global ordering will pass all of your tests and then fail under load, which is reliably the worst possible moment to discover that the assumption was never guaranteed anywhere.

When do I need the connector SDK?

When your integration writes in both directions and somebody has to be responsible for the two sides agreeing over time. The rule of thumb: if you would need to build a reconciliation report to trust your own integration, use the SDK, because that report already exists there.

In the product

No form on this page, deliberately. Guides exist to be read and cited by people who are not buying anything today.