You can bulk-upload supply-chain Events into OriginsNext using a structured CSV file. This lets you record many Events at once instead of creating them one by one. A downloadable sample template is available with one example row per Event type, which also works as a worked example.
Download the sample CSV
The quickest way to build your file is to start from the sample Event CSV. It has the exact column headers the upload expects, and one example row for each supported Event type, so it doubles as a worked example. Keep the header row, replace the example rows with your own Events, and save the file as a .csv.
File and format basics
Your upload must meet these format rules before the platform will accept it.
The file must be a .csv file and under 20 MB.
Identifiers everywhere use a Type.Value format, for example GLN.WAREHOUSE-A. To put more than one identifier in a single cell, separate them with a pipe character ( | ).
The file has one wide set of columns that covers every Event type. Which columns matter depends on the Event's Type. Columns are grouped as shown in the next section.
Column groups
All Event types share the same columns. You only fill in the columns relevant to the Type you are recording.
Column group | What it covers |
Event-level | Id, Type, Organisation, Name, Location, Time, Permission, Data Qualifier and Accurate Timestamp. |
Input side | The Products or units going into the Event, including their owner, logistics and origin or destination Locations, quantity, count, and any input IoT device IDs. |
Output side | The Products produced or moved out of the Event, including the output SKU and batch, owner and logistics Organisation, quantity and count, the transferable IDs assigned to them, and whether to increment the product generation. |
Order links | Links to a Purchase Order, Sales Order, or consignment. |
Value and cost | Value or cost fields (product value, additional cost and logistics cost), each paired with a currency. |
Metadata | Free-form columns named Metadata.<key> for your own extra fields. |
Note: The Permission column sets each Event's visibility. Enter Private for Private, or MyProductPartners for My Product Partners. This controls who can see the Event. To understand the difference, see Why can't I see all the Events in a Product's journey?
Supported Event types
The Type column must be one of the supported Event types below. Any other value is rejected. For what each one means and an example, see What are the supported Event Types?
Event type | Event type |
Commission | Decommission |
Object | Transformation |
Ownership Change | Aggregation |
Disaggregation | Received |
Dispatched | Transportation Started |
Transportation Ended | Storage Started |
Storage Ended | Bulk Receival |
Bulk Outturn |
|
Key rules
Follow these rules when filling in the file, because the upload is validated against all of them before anything is created.
Id and Type are always required on every row.
Rows that share the same Id are merged into one Event. This is how a single Event can list several inputs: you add one row per input, all using the same Id. For example, a Received Event with three input Products uses three rows that share one Id.
Timestamps must be full ISO format with a timezone, in the form YYYY-MM-DDTHH:MM:SS.ZZZ TZ (for example 2026-01-01T08:00:00.000Z, where Z means UTC).
Quantities must be numeric, counts must be whole numbers, and any value field must be paired with a currency.
Each Event type has its own required fields. For example, a Commission Event needs an output SKU and output Product identifiers.
How to upload your file
To upload your completed Event CSV:
Navigate to Product Traceability > Events from the side menu to open the Events List.
Click + Add Events in the top-right corner.
In the upload form, either drag and drop your completed CSV file into the shaded area, or click in the shaded area to browse and select your file.
Click Upload to begin processing.
What happens after you upload
The whole file is validated up front before anything is created, and successful Events are then processed in the background rather than instantly.
Important: Uploads are all-or-nothing. If any row or Event fails validation, the entire upload is rejected with a combined list of the errors, and nothing is created. Fix every listed error and upload the file again.
When the file passes validation, the Events are queued and processed in the background. They are not created instantly and they are not saved as drafts. You can track each Event's progress on the upload-details page, where it moves through the states below.
Status | What it means |
Pending | The Event is queued and waiting to be processed. |
In Progress | The Event is being processed now. |
Completed | The Event was created successfully. |
Failed | The Event could not be created. |
Once processed, uploaded Events appear in the Events List and in the Journey view for each relevant Product.
