Payload Shapes
This article assumes you've completed the Getting Started guide and understand the data modeling concepts.
Payload shapes define the structure and validation rules for message payloads. While built-in shapes handle most time-series data, custom shapes enable relational data modeling for complex business records.
Overview
In the component chain, payload shapes provide the foundation:
Payload Shapes → Data Models → Data Contracts → Data Flows
↑
Value types defined hereUI Capabilities
Payload shapes have no UI component:
View shapes
❌
Configuration file only
Create shapes
❌
Edit config.yaml directly
Edit shapes
❌
Modify config.yaml
Built-in shapes
✅
Always available, no configuration needed
Configuration location: Select your instance under Instances in the menu, press ..., then Config File. Find payload shapes under the payloadShapes: section
Built-in Shapes
UMH provides two built-in shapes that handle 90% of industrial data:
timeseries-number
For numeric sensor data and measurements.
Structure:
Use cases: Temperature, pressure, speed, counts, any numeric measurement
timeseries-string
For text-based status and identifiers.
Structure:
Use cases: Machine states, batch IDs, product codes, operator names
When to Use Custom Shapes
Custom shapes are specifically for relational data - business records with multiple related fields that must stay together.
Time-series vs Relational:
Single values over time
Built-in timeseries-*
Temperature readings
Complex business records
Custom shape
Work orders, quality inspections
Learn more: Payload Formats
Configuration
Access configuration via: Instances → Select instance → ... → Config File
Defining Custom Shapes
Key points:
Only two types:
stringandnumberAll fields are required
Shape names must be unique
Using Custom Shapes in Models
Reference custom shapes in your data models to create CRUD-like endpoints:
This creates topics like:
enterprise.site._work_order_v1.create- New work ordersenterprise.site._work_order_v1.update- Update existing ordersenterprise.site._work_order_v1.delete- Delete orders
Processing Relational Data
Example: Processing Work Orders
This creates a message at enterprise.site._work_order_v1.create with the complete work order data.
Relationship to Other Components
Payload shapes are referenced by data models, which are then enforced by data contracts.
Next Steps
Define structure: Data Models - Create hierarchies using shapes
Enforce validation: Data Contracts - Make shapes mandatory
Build pipelines: Data Flows - Process data with bridges
Last updated

