Minctrl Docs
Guides

Import / export BPMN

Round-trip a Minctrl process template with BPMN 2.0 — export a vertical to XML, or import a foreign model to see where it is ungoverned.

Minctrl process templates interchange with BPMN 2.0, so you can hand a governed flow off to a modeling tool (Camunda, Signavio, Bizagi, bpmn.io) or bring a model authored elsewhere in to check it against the governance invariants.

Export a vertical to BPMN 2.0 XML

curl -s "$API/process-templates/prior-auth/bpmn" \
  -H "Authorization: Bearer $TOKEN" \
  -o prior-auth.bpmn

The response is BPMN 2.0 XML with isExecutable="false" — an interchange artefact, not a runnable model. The mapping is:

Minctrl stepBPMN element
Agent stepserviceTask
Human gateuserTask
Gatewaybranch / join gateway

The exported XML is for round-tripping into a modeling tool. Execution still happens in Minctrl via process runs — the BPMN export is not handed to a BPMN engine.

Import a foreign BPMN model

Bring a model authored elsewhere in with POST /process-templates/import-bpmn. The endpoint takes JSON with the BPMN XML as a string field (not a raw XML body):

curl -s -X POST "$API/process-templates/import-bpmn" \
  -H "Content-Type: application/json" \
  -d '{ "xml": "<?xml version=\"1.0\"?><definitions><process id=\"p1\">…</process></definitions>" }'

To send a file's contents as the xml field, wrap it as JSON first (e.g. with jq):

jq -n --rawfile xml model.bpmn '{xml: $xml}' \
  | curl -s -X POST "$API/process-templates/import-bpmn" \
      -H "Content-Type: application/json" \
      --data-binary @-

The importer parses the BPMN and returns the Minctrl canvas graph (nodes + edges) plus the live governance violations — so importing a third-party model immediately shows where it is ungoverned (for example, an irreversible step with no human gate on some path). The XML must contain a <process> element; malformed XML or a missing <process> returns 400.

Validate before saving

The import is a pure read — nothing is persisted. Assign risk tiers and gates, then run the graph through validation to catch structural problems (an ungated irreversible step, a gate missing its human/gate-id, a bad blast radius) before it becomes a template:

curl -s -X POST "$API/process-templates/validate" \
  -H "Content-Type: application/json" \
  -d '{
    "nodes": [
      { "id": "screen", "kind": "agent", "tier": "medium" },
      { "id": "signoff", "kind": "gate" }
    ],
    "edges": [{ "source": "screen", "target": "signoff" }]
  }'

Save the reviewed graph as a draft with POST /process-templates/ (requires a token).

An imported model has no governance decoration until you add it. Assign risk tiers and gates before running one — until you do, the validator flags irreversible steps that have no human gate protecting them.

See the Process templates reference for the full BPMN and canvas schemas.

On this page