Skip to main content

Overview

The Runs importer bulk-creates runs, one CSV row per run. It drives the same path as creating runs in the UI, so step copying, batching, and every downstream side effect behave identically. This importer is create-only: it does not update existing runs. Each run can:
  • be created from a procedure, identified by procedure_id or procedure_title + procedure_version (a run with no procedure is also allowed),
  • be tied to part inventory, either linking an existing record via part_inventory_id or creating a new one via part_number,
  • join a run batch via run_batch_title,
  • carry an assignee, intent option, due date, and custom attributes.

Columns

Three column groups are mutually exclusive per row:
  • title vs. autogenerate_title: provide exactly one.
  • procedure_id vs. procedure_title + procedure_version: provide at most one form.
  • part_inventory_id vs. part_number: when linking an existing inventory, the new-inventory columns (revision, serial_number, lot_number, autogenerate_serial_number, autogenerate_lot_number) must be empty.
Procedure titles aren’t globally unique, so a (procedure_title, procedure_version) pair that matches more than one procedure produces an ambiguity error. Use procedure_id to disambiguate.

Run batches

Rows sharing a run_batch_title are grouped into a single run batch. Batch titles are unique in ION, so this is a find-or-create: if a batch with that title already exists, the runs join it; otherwise ION creates the batch.

Custom attributes

Any column not in the standard list above is treated as a custom attribute on the run. Custom attribute columns must match a configured attribute key for your organization; unknown columns cause a validation error. For general import behavior, empty cell handling, and error reporting, see Importers.