CSV Data Uploads

OTM supports loading data using CSV (comma-separated values) files. This is a practical method for bulk data uploads during initial implementation or data migrations — especially when the source data is available in spreadsheet form.

The approach works by first exporting a sample record from OTM in CSV format, which gives you the exact column structure OTM expects. You then populate that template with your data and upload it back. The steps below use a Location record as an example — the same process applies to any OTM business object such as Order Release, Shipment, Service Provider, Invoice, and more.

Step by Step — Load a Location via CSV:

Step 1 — Create a sample Location in OTM manually

Log in to OTM and create one sample Location record with all the fields you plan to load via CSV. This sample record will be used in the next step to generate the correct CSV template.

Navigate to:

Shipment Management > Location Manager > New

Fill in the required fields — Location GID, Name, Address — and save the record.

OTM Location Manager showing a sample location record

Step 2 — Find the backend table name and WHERE clause

OTM stores Location data in the LOCATION table. To export just your sample record, you need a WHERE clause that identifies it. The Location GID’s Xid maps to LOCATION_XID:

SELECT * FROM location WHERE location_xid = 'YOUR-LOCATION-XID'

Note down the LOCATION_XID value — you will enter this as the WHERE clause in the next step.

Step 3 — Export the sample record as CSV from OTM

Navigate to:

Business Process Automation > Data Export > CSV Export

OTM CSV Export screen

Step 4 — Select table and run the export

On the CSV Export screen, set Table Name to LOCATION and paste the WHERE clause from Step 2 into the WHERE clause field. Click Run.

Step 5 — Save the output as a CSV file

OTM displays the exported data as grey text. Select all of that text and save it as a .txt file. Then open the .txt file in Microsoft Excel — when prompted, choose comma as the delimiter. Save the result as a .csv file.

To verify the file is correctly formatted, open it in a text editor (Notepad or TextPad) — you should see values separated by commas, with the column headers in the first line and the NLS date format in line 2.

OTM CSV export output showing comma-separated data

Step 6 — Populate the CSV template with your data

Add your actual records to the CSV file, following the same column structure as the exported sample row. Each row represents one Location (or whichever object you are loading). Do not change the column order or the header rows.

Step 7 — Upload the CSV file to OTM

Navigate to:

Business Process Automation > Integration > Integration Manager > Upload XML/CSV Transmission

Browse for your .csv file and click Upload.

OTM Integration Manager upload screen

The Command field on the upload screen controls how OTM handles each record in the CSV:

i (Insert): Inserts new records only. If a record with the same GID already exists in OTM, the row will error out.
iu (Insert or Update): Inserts the record if it does not exist, or updates it if it does. This is the safest option for most data loads.
d (Delete): Deletes the matching record from OTM. Use with caution — deleted records cannot be recovered from this screen.
Step 8 — Verify the result

After the upload, OTM displays a results screen showing Process Count and Error Count. A non-zero Error Count means some records failed — click the error details to review.

OTM CSV upload result showing Process Count and Error Count

OTM CSV upload confirmation screen

Important: Date columns in your CSV file must follow the NLS Date Format specified in line 2 of the exported CSV. If the date format does not match, OTM will reject those rows with a format error.

What’s Next:

Now that you have seen the main methods for loading data into OTM — XML uploads, HTTP POST from PL/SQL, and CSV uploads — the next topic covers OTM Outbound Integrations: how OTM sends data out to external systems such as carrier platforms, ERP applications, and middleware.

Next Topic: Outbound Integrations

Questions & Discussion

Have a question about this topic? Post it below using your GitHub account. Comments are visible to everyone and help other OTM consultants with the same question.