Data import workflow

How to prepare, import, reconcile, and validate data in stages

A reliable import is iterative: prepare one dependency, search existing shared records, send a small batch, recover generated IDs, reconcile them with the source table, and validate the result before importing dependent objects.

Prepare and order dependencies

Define the destination Project and Dataset, confirm permissions, preserve an immutable source copy, and add a unique local key such as source_row_id. Normalize encoding, dates, missing values, decimals, and column names. Search shared People, References, Taxons, Locations, and Traits before creating them, and check the POST API. Keep both the source key and ODB ID or UUID.

StagePrepare or findUsed later by
1People and Bibliographic Referencescollection, identification, measurements, Taxons, Datasets
2Taxonsidentifications, measurements, vernacular names
3LocationsIndividuals, measurements, spatial validation
4Traits, units, categoriesmeasurements and forms
5Project and DatasetIndividuals, Vouchers, measurements, media
6Individuals and occurrencesVouchers, identifications, measurements, media
7Vouchers and identification historymeasurements, media, references
8Measurements, Media, vernacular namesfinal dataset

Validate coordinates first

POST locations-validation accepts decimal latitude and longitude and reports registered Locations containing each point. Use it before creating Individuals or automatic point Locations to find swapped axes, wrong signs, unexpected administrative areas or protected areas, duplicates, and unsuitable precision. It reports relationships with existing Locations; it does not decide whether a coordinate is scientifically correct.

The UserJob cycle

  1. Submit representative pilot rows and save the UserJob ID.
  2. Follow status, progress, and logs; do not resubmit while processing.
  3. Review every row’s status, ID, recognition fields, errors, and warnings.
  4. Join results back to source_row_id; never rely on position after sorting.
  5. GET created or reused records and compare essential fields and relationships.
  6. Correct and resubmit only pending rows, preserving every job ID.
  7. Use validated IDs in the next dependency stage.

A successful job may still contain warnings or reused records. A useful working table keeps source_row_id, odb_status, odb_id, odb_uuid, odb_error, and odb_warning. An import is complete only when every row is documented, warnings reviewed, IDs reconciled, server records checked, counts and permissions verified, and source files and UserJob results preserved.

Continue with the R import tutorials.