This guide explains how to model physical objects, paper-based processes, and system-independent workflow steps in Korgraph.
Real-world business processes often involve:
Korgraph supports modeling these elements to create complete end-to-end process visualizations that bridge physical and digital worlds.
The "Physical World" is modeled as a special System that represents non-IT processes and objects:
system:
- id: "system-physical-world"
name: "Physische Welt"
description: "Non-IT objects and paper-based processes"
systemType: "Physical"
systemmodule:
- id: "module-paper"
name: "Papier"
description: "Paper-based documents"
systemId: "system-physical-world"Paper documents are represented as Data Objects that can flow through processes:
dataobject:
- id: "dataobject-frachtbrief"
name: "Frachtbrief"
description: "Physical waybill for shipment tracking"
- id: "dataobject-rechnung"
name: "Rechnung"
description: "Physical or digital invoice"
- id: "dataobject-routerlabel"
name: "Routerlabel"
description: "Address label for routing"Logistics:
Manufacturing:
Healthcare:
Vehicles (trucks, ships, trains) can be modeled as Actors:
actor:
- id: "actor-lkw"
name: "LKW"
description: "Truck as transport vehicle. Can send GPS positions."
actorType: "internal"
parentType: "company"Use Cases:
Physical locations are modeled as Actors:
actor:
- id: "actor-empfangsstation"
name: "Empfangsstation"
description: "Receiving station for goods"
actorType: "internal"
parentType: "company"Common Location Actors:
People operating physical processes:
actor:
- id: "actor-fahrer"
name: "Fahrer"
description: "Truck driver responsible for delivery"
actorType: "internal"
- id: "actor-disponent"
name: "Disponent"
description: "Dispatcher coordinating logistics"
actorType: "internal"These are process steps that occur outside of IT systems:
Use Stories to model these steps by connecting actors and objects:
story:
# Physical handover
- sourceElementId: "actor-fahrer"
targetElementId: "dataobject-frachtbrief"
label: "übergibt"
# Physical action (self-referencing)
- sourceElementId: "actor-lkw"
targetElementId: "actor-lkw"
label: "verlässt Beladung"
condition: "physische Aktion"
# Physical movement
- sourceElementId: "actor-lkw"
targetElementId: "actor-empfangsstation"
label: "fährt zu"Show transitions between physical and digital worlds:
story:
# Physical document → Digital entry
- sourceElementId: "actor-disponent"
targetElementId: "dataobject-frachtbrief"
label: "empfängt"
- sourceElementId: "actor-disponent"
targetElementId: "feature-tms-order-entry"
label: "erfasst in"
# Physical action → Digital tracking
- sourceElementId: "actor-lkw"
targetElementId: "dataobject-gps-position"
label: "meldet"
- sourceElementId: "dataobject-gps-position"
targetElementId: "feature-tms-tracking"
label: "an"Complete shipment process from physical handover to digital confirmation:
process:
- id: "process-road-logistics-shipment"
name: "Sendungsübergabe Road Logistik"
description: "Complete physical and digital shipment workflow"
processLandscapeId: "processlandscape-default"
story:
# Step 1-2: Physical handover
- sourceElementId: "actor-fahrer"
targetElementId: "dataobject-frachtbrief"
label: "übergibt"
order: 1
- sourceElementId: "dataobject-frachtbrief"
targetElementId: "actor-disponent"
label: "an"
order: 2
# Step 3: Digital data entry
- sourceElementId: "actor-disponent"
targetElementId: "feature-tms-order-entry"
label: "erfasst Daten in"
order: 3
# Step 4-5: GPS tracking (physical → digital)
- sourceElementId: "actor-lkw"
targetElementId: "dataobject-gps-position"
label: "meldet"
order: 4
- sourceElementId: "dataobject-gps-position"
targetElementId: "feature-tms-tracking"
label: "an"
order: 5
# Step 6: Physical action
- sourceElementId: "actor-lkw"
targetElementId: "actor-lkw"
label: "verlässt Beladung"
condition: "physische Aktion"
order: 6
# Step 7: Physical movement
- sourceElementId: "actor-lkw"
targetElementId: "actor-empfangsstation"
label: "fährt zu"
condition: "Umschlaglager"
order: 7
# Step 8: Physical unloading
- sourceElementId: "actor-fahrer"
targetElementId: "actor-lkw"
label: "entlädt"
order: 8
# Step 9-10: Confirmation and reporting
- sourceElementId: "actor-fahrer"
targetElementId: "dataobject-entladebericht"
label: "bestätigt"
order: 9
- sourceElementId: "dataobject-entladebericht"
targetElementId: "actor-empfangsstation"
label: "wird geschickt an"
order: 10Physical World System:
Actors:
Data Objects:
Clear Transitions:
Completeness:
Visualization:
Document Digitization:
Paper Doc → Actor → Digital System FeaturePhysical Tracking:
Vehicle → GPS Data → Tracking SystemHandover Chain:
Actor A → Physical Object → Actor B → Digital EntryPhysical Action:
Actor → Actor (self-reference with condition)Model IoT device data as Data Objects:
dataobject:
- name: "GPS Position"
description: "Real-time vehicle location"
- name: "Temperature Sensor"
description: "Cold chain monitoring"
- name: "Weight Sensor"
description: "Loading verification"Create parallel digital representations:
# Physical truck
actor:
- id: "actor-lkw-physical"
name: "LKW 12345"
actorType: "internal"
# Digital twin in TMS
feature:
- id: "feature-truck-digital-twin"
name: "LKW 12345 Digital Twin"
description: "Digital representation with telemetry"Combine physical and digital approvals:
story:
# Physical signature
- sourceElementId: "actor-manager"
targetElementId: "dataobject-approval-form"
label: "unterschreibt"
# Scan and upload
- sourceElementId: "actor-assistant"
targetElementId: "dataobject-approval-form"
label: "scannt"
# Digital processing
- sourceElementId: "dataobject-approval-form"
targetElementId: "feature-document-management"
label: "wird hochgeladen in"Use the condition field for context:
Korgraph includes example physical world data by default. When you start the server, it automatically creates:
Import your physical world model:
npm start -- --import ./my-physical-model.yamlOr place YAML in config/db-setup/ for automatic loading on startup.
Q: Can I model IoT sensors as actors?
A: Yes! Sensors can be actors that produce data objects (sensor readings).
Q: How do I show a physical handoff?
A: Use two stories: Actor A → Document, Document → Actor B.
Q: Can processes mix physical and digital steps?
A: Absolutely! That's the goal - complete end-to-end visibility.
Q: Should physical locations be actors or contexts?
A: Actors are better for locations that participate in processes (stations, docks).
Q: How do I model a vehicle fleet?
A: Create one actor type "LKW" and use descriptions/IDs for specific vehicles.
Q: Can paper documents become digital?
A: Yes! Show the transformation: Paper Doc → Scan Feature → Digital Doc.