A Data Series attaches time-stamped measurement readings, such as weight, dimensions, temperature, humidity, emissions and GPS position, to a Product (or logistic unit) that already exists. You upload these readings as a CSV file from the Data Series tab. Internally this file is called "Product Data"; in the app you see it as a Data Series.
Important: A Data Series does not create Products. It only adds readings to Products or logistic units that already exist. If a row references a Product that has not been commissioned yet, the upload is rejected with "Product ... does not exist." To create a Product first, record a Commission event.
A Data Series can also be added programmatically through the OriginsNext API. See How do I integrate with OriginsNext?
For what a Data Series is, see What is a Data Series?
How it differs from the other CSV uploads
OriginsNext has three CSV uploads that do different jobs:
CSV upload | What it does |
Product Template CSV | Defines catalogue templates (what kind of thing a product is). |
Event CSV | Records lifecycle events. A Commission event is what actually creates a product. |
Data Series CSV (this one) | Attaches sensor or measurement readings to products that already exist. |
To bulk upload templates, see How do I bulk upload Product Templates with a CSV file? To upload events, see How do I upload Events with a CSV file?
Upload a Data Series
To upload a Data Series:
Open Events via Product Traceability > Events.
Select the Data Series tab. The upload history lists each file (File Name, Uploaded By, Uploaded At).
Click + ADD DATA SERIES.
Drag and drop your CSV file into the upload box, or click the box to browse for it.
Click Upload.
On success, the readings are attached to the matching Products, and the Data Series chart appears on the Product Summary for any Product that has data.
File format
The file must be a comma-separated .csv with a header row.
Numbers use a . (dot) decimal separator.
Timestamps use ISO 8601 format and are stored as UTC (for example, 2024-01-15T10:30:00Z).
Each row references exactly one ProductId or LogisticUnitId, never both. Rows where both are empty are ignored.
Column order does not matter; columns are matched by their header name.
The columns
Use these column headers. All measurement columns are optional.
Column | What it means |
ProductId or LogisticUnitId | The existing product (ProductId, for example SKU.EXAMPLE001) or logistic unit (LogisticUnitId, for example LOGUNIT.UNIT001) the reading belongs to. Both use Type.ID format. Provide exactly one per row, never both. |
Permission | Who can see this data point. Accepted values: Public or Private (defaults to Private if left blank). Private: only your organisation can view the data, regardless of product sharing permissions. Public: your organisation and any other participants with permission to view the product can view the data. |
TimeStampUtc | When the reading was taken, in UTC. ISO 8601 format (for example, 2024-01-15T10:30:00Z). Optional. |
WeightValue / WeightUOM | Weight and its unit (for example, 12.5 / kg). |
LengthValue / LengthUOM, WidthValue / WidthUOM, HeightValue / HeightUOM | Dimensions and units (for example, 150 / cm). |
HumidityValue / HumidityUOM | Humidity and unit (for example, 26 / %). |
TemperatureValue / TemperatureUOM | Temperature and unit (for example, 4 / C). |
EmissionValue / EmissionUOM | Emissions and unit (for example, 10 / kg CO2e). |
Latitude, Longitude | GPS coordinates in decimal degrees (for example, -27.435133 / 153.11496). Each is optional and independent. |
Other.<Name> | Any column starting with Other. is captured as a free-text custom field; the part after Other. is the field name (for example, Other.BatchNumber). |
Sample file
The quickest way to build your file is to start from the sample Data Series CSV. It has the exact column headers the upload expects and example rows, so it doubles as a worked example. Keep the header row, replace the example rows with your own readings, and save the file as a .csv.
Rules
Each row needs exactly one ID (a Product or a logistic unit), it must be valid, and the product or unit must already exist.
All measurement fields are optional; a row can carry just one reading.
Value and unit must be paired: if you provide a value you must provide its unit, and vice versa.
Each measurement value (and latitude/longitude) must be numeric.
Units are not checked against a fixed list; for example KG, kg, C, %, cm and kg CO2e are all accepted as free text.
Tip: Because units are free text, agree a consistent set within your organisation (for example, always 'kg' rather than mixing 'kg' and 'KG') so your charts and reports stay tidy.
What happens when you upload
All or nothing. Every row is validated first. If any row fails, the whole upload is rejected with the full list of errors (each citing the line number) and nothing is saved.
Processed immediately. A Data Series is processed straight away, so there is no background queue and no draft state (unlike the Event CSV).
No de-duplication. Readings accumulate as a time series. Re-uploading the same data adds more rows rather than overwriting existing ones.
Each upload is recorded in the upload history on the Data Series tab, and individual readings can be edited afterwards.
Who can upload
Your organisation must be subscribed to a traceability or catalogue feature (Product Traceability, Add Traceability Data, or Read/Edit Product Catalogue). You can only upload data for a Product or logistic unit you own or have custody of; otherwise you see "You are not authorized to upload product data for ...".
