Skip to main content

How do I upload a Data Series?

Upload a CSV of time-stamped readings (weight, temperature, emissions, GPS and more) to attach them to products or logistic units that already exist.

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.


Upload a Data Series

To upload a Data Series:

  1. Open Events via Product Traceability > Events.

  2. Select the Data Series tab. The upload history lists each file (File Name, Uploaded By, Uploaded At).

  3. Click + ADD DATA SERIES.

  4. Drag and drop your CSV file into the upload box, or click the box to browse for it.

  5. 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 ...".

Did this answer your question?