Import existing parts list into FieldPulse?

We are currently migrating from our legacy field service management platform and require a method to import our existing parts inventory into FieldPulse without manual re-entry. Our current system exports data in CSV format with the following columns:

  1. Part Number
  2. Description
  3. Unit Cost
  4. Quantity on Hand
  5. Reorder Point
  6. Vendor Name
  7. Location/Warehouse
  8. Category/Department

I have reviewed the interface and do not see a direct import function under Inventory > Items. Is there a bulk import mechanism available? If so, please provide:

  1. The required CSV template format
  2. Any field mapping documentation
  3. Maximum file size limitations
  4. Whether the import can create new categories automatically or requires pre-configuration
  5. API endpoint alternatives if direct file upload is not supported

Our inventory contains approximately 4,200 SKUs, so manual entry is not a viable option. I can confirm that all part numbers conform to our internal 12-character alphanumeric standard if that affects validation requirements.

Thank you for your assistance.

Parents
  • Thank you both. I have downloaded the template and confirmed the following:

    1. The 12-character part number format is compatible — no validation errors on test import of 50 records
    2. I will proceed with the CSV method for this initial migration to maintain audit trail simplicity
    3. I have created the 14 categories required in advance

    However, I note that the template includes a "supplier_id" field that does not map cleanly from my "Vendor Name" column. Does the system support vendor name matching, or must I first create vendors and obtain their FieldPulse IDs?

  • Yeah this one tripped me up too when I first looked at it — the inventory endpoint doesn't do fuzzy matching on vendor names. You'll need the UUID from GET /v2/suppliers first.

    Quick script if you're comfortable with Python:

    suppliers = {s['name']: s['id'] for s in client.get('/v2/suppliers')}
    for row in inventory_rows:
        row['supplier_id'] = suppliers.get(row.pop('Vendor Name'))
    

    Edge case: if you have vendors with trailing spaces or inconsistent casing in your legacy data, normalize before lookup. I had "ACME Supply" and "ACME Supply " (note space) that created null mappings silently.

Reply
  • Yeah this one tripped me up too when I first looked at it — the inventory endpoint doesn't do fuzzy matching on vendor names. You'll need the UUID from GET /v2/suppliers first.

    Quick script if you're comfortable with Python:

    suppliers = {s['name']: s['id'] for s in client.get('/v2/suppliers')}
    for row in inventory_rows:
        row['supplier_id'] = suppliers.get(row.pop('Vendor Name'))
    

    Edge case: if you have vendors with trailing spaces or inconsistent casing in your legacy data, normalize before lookup. I had "ACME Supply" and "ACME Supply " (note space) that created null mappings silently.

Children
No Data