Bulk work order import format specification

We are preparing to migrate approximately 12,000 historical work orders from our legacy system into FieldPulse. I have reviewed the Bulk Importing Inventory via CSV documentation, but I am seeking clarification on the specific schema requirements for work order imports, as the available documentation appears to focus on inventory rather than work order entities.

Specifically, I would appreciate confirmation on the following points:

  1. Required vs. optional fields: Which fields are mandatory for a successful import? I assume work_order_number, customer_id (or customer_email), and scheduled_date are required, but I would like explicit confirmation.
  2. Date/time formats: The documentation references ISO 8601, but does not specify whether timezone offsets are supported (e.g., 2025-09-22T14:00:00-04:00) or if all timestamps must be normalized to UTC.
  3. Status mapping: Our legacy system uses non-standard status values (e.g., "Dispatched," "In Progress," "Awaiting Parts"). Is there a defined mapping to FieldPulse's internal status enum, or must we pre-transform these values?
  4. Technician assignment: Can we assign technicians via technician_email at import time, or does this require a separate API call post-import?
  5. Custom fields: We have approximately 40 custom fields defined in our legacy system. Are these supported in the bulk import, and if so, what is the expected column naming convention (e.g., custom_field_{id} or cf_{name})?
  6. Validation and error reporting: Does the import process support partial success (i.e., importing valid rows while reporting errors for invalid rows), or is it atomic? What is the granularity of error reporting—row-level, field-level, or batch-level?
  7. Rate limiting and throughput: Are there documented limits on import file size (rows or bytes) and concurrent import operations?

Additionally, I would like to understand whether there is a sandbox or staging environment where we can validate our transformation pipeline before performing the production import. Our migration window is constrained, and we would prefer to avoid iterative correction cycles against production data.

I have attached a sample of our transformed data structure below for reference. Any clarification on the above points would be greatly appreciated.

work_order_number,customer_email,scheduled_date,status,technician_email,custom_field_site_id,custom_field_equipment_type
WO-2019-0042,customer@example.com,2019-03-15T09:00:00,Dispatched,tech@company.com,SITE-442,HVAC-Commercial
Parents
  • Supplemental notes from a recent migration:

    • Custom field keys are case-sensitive and underscore-normalized. "Equipment Type" becomes equipment_type, but if you created it as "Equipment-Type" originally, the key is equipment_type anyway—hyphens become underscores. Verify in the UI.
    • Technician email matching is case-insensitive but trailing-space sensitive. Strip whitespace in your transform.
    • Date parsing accepts YYYY-MM-DD without time, assumes 00:00:00 in account timezone. We used this for historical jobs where exact time was lost.

    Documentation gaps: Using the FieldPulse API has a more complete field reference than the import docs, oddly.

Reply
  • Supplemental notes from a recent migration:

    • Custom field keys are case-sensitive and underscore-normalized. "Equipment Type" becomes equipment_type, but if you created it as "Equipment-Type" originally, the key is equipment_type anyway—hyphens become underscores. Verify in the UI.
    • Technician email matching is case-insensitive but trailing-space sensitive. Strip whitespace in your transform.
    • Date parsing accepts YYYY-MM-DD without time, assumes 00:00:00 in account timezone. We used this for historical jobs where exact time was lost.

    Documentation gaps: Using the FieldPulse API has a more complete field reference than the import docs, oddly.

Children
No Data