Asset migration using EIB fails in maintenance management due to duplicate Asset ID validation

We’re migrating 3,500 physical assets from our legacy CMMS system into Workday maintenance management module using EIB. The migration keeps failing with ‘Duplicate Asset ID’ errors even though we’ve verified our CSV has unique IDs in every row. We’re using sequential IDs like ASSET-00001, ASSET-00002, etc.

The error report shows about 200 records flagged as duplicates, but when I check our CSV file, those IDs only appear once. I’m wondering if EIB is checking against existing assets already in Workday? We did load a small test batch last week (about 50 assets) which are still in the system. Could those be causing the validation to fail? Also concerned about how this impacts our maintenance planning schedule since we need asset data loaded before we can schedule preventive maintenance tasks.

Good points both. I verified our source data has unique IDs, and we’re using consistent uppercase formatting. The 50 test assets are definitely the issue - those IDs overlap with our production load. Should I delete them manually or is there an EIB way to clear them out? Also, if I switch to update mode, will that correctly handle the mix of existing and new assets?

From a maintenance planning perspective, make sure your asset data includes location, asset type, and criticality fields. These are essential for scheduling preventive maintenance. If you’re doing update/insert mode, verify that existing test assets have accurate location data, as PM schedules are often location-based. Also consider loading asset hierarchy relationships if your equipment has parent-child structures.

Yes, EIB absolutely checks for duplicate Asset IDs against existing records in your tenant, not just within your current CSV file. If you loaded 50 test assets last week and they’re still active, any matching IDs in your new CSV will be flagged as duplicates. You have two options: either delete the test assets first, or use EIB’s update mode instead of insert mode to update existing assets and insert only new ones.

Here’s a comprehensive solution addressing all three focus areas:

Asset ID Uniqueness: EIB validates Asset IDs against all existing assets in your Workday tenant, not just your current CSV batch. Your ‘Duplicate Asset ID’ errors are occurring because 200 of your 3,500 asset IDs match records already in the system (likely including your 50 test assets plus potentially 150 others).

To identify exactly which IDs are duplicates:

  1. Export all existing assets from Workday: Navigate to Asset Management > View Assets > Export to Excel
  2. Create a comparison spreadsheet:

Existing_Asset_IDs (from Workday)
ASSSET-00001
ASSET-00015
ASSET-00023
...

New_CSV_Asset_IDs (from your migration file)
ASSET-00001 ← DUPLICATE
ASSET-00002
ASSET-00015 ← DUPLICATE
  1. Use Excel VLOOKUP or MATCH function to flag duplicates
  2. Determine if duplicates should be updated or if your CSV IDs need renumbering

Asset ID best practices:

  • Use a consistent prefix that won’t conflict with existing assets (e.g., ‘FAC-’ for facilities assets)
  • Include check digits or location codes to ensure uniqueness
  • Document your ID scheme for future asset additions
  • Consider using meaningful IDs (building code + sequence) rather than pure sequential numbers

EIB Import Validation: You have three options to resolve the duplicate issue:

Option 1 - Clean slate approach (if test data is not production-ready):

  1. Delete the 50 test assets manually or via business process
  2. Run EIB in Insert mode with all 3,500 assets
  3. Pros: Clean, consistent data. Cons: Requires cleanup work

Option 2 - Update/Insert mode (recommended if test data is valid):

  1. Modify your EIB template to use Update/Insert mode
  2. Ensure CSV includes all required fields for both operations
  3. EIB will update 200 existing assets and insert 3,300 new ones
  4. Pros: Preserves existing data and relationships. Cons: Must validate all fields are correct for updates

Option 3 - Renumber conflicting assets:

  1. Modify your CSV to use different IDs for the 200 conflicts (e.g., ASSET-10001 through ASSET-10200)
  2. Keep existing assets unchanged
  3. Pros: No Workday changes needed. Cons: Breaks ID sequence, may confuse users

For your situation, I recommend Option 2 (Update/Insert mode):

EIB configuration steps:

  1. Open your EIB template in Excel
  2. On the first tab, change Import Mode from ‘Insert’ to ‘Update/Insert’
  3. Ensure Asset ID column is marked as the key field for matching
  4. Include all required fields: Asset ID, Asset Name, Asset Type, Location, Status, Acquisition Date
  5. Add optional fields important for maintenance: Manufacturer, Model, Serial Number, Criticality, Department

Validation before loading:

  • Test with a subset of 100 assets (50 updates + 50 new inserts)
  • Review the EIB validation report carefully - it shows which records will update vs insert
  • Verify updated assets retain their existing relationships (maintenance schedules, work orders)
  • Confirm new assets have all required fields populated

Maintenance Planning Integration: Once assets are successfully loaded, you need to establish maintenance planning data:

  1. Asset Criticality Classification:

    • Critical assets (24/7 operation required): Daily/weekly PM checks
    • Important assets (business hours operation): Monthly PM
    • Standard assets (non-critical): Quarterly PM Include ‘Criticality’ field in your EIB CSV: High/Medium/Low
  2. Preventive Maintenance Schedule Setup: After asset load, use a separate EIB template for PM schedules:

    • Link PM tasks to asset IDs
    • Define frequency (days/weeks/months)
    • Assign maintenance teams by location
    • Set first due dates based on asset acquisition date or last service date from legacy system
  3. Asset Hierarchy for Maintenance: If you have parent-child asset relationships (e.g., Building > HVAC System > Air Handler > Fan Motor), load in sequence:

    • First: Parent assets (buildings, systems)
    • Second: Child assets (components, parts)
    • Use ‘Parent Asset ID’ field in EIB to establish relationships This enables maintenance rollup reporting and cascade work orders
  4. Location-Based Maintenance Routing: Ensure your asset CSV includes accurate Location field (Workday location object)

    PM schedules often route to maintenance teams by location

    Validate locations exist in Workday before asset load

Timeline for your migration:

Week 1: Resolve duplicate ID issue using Update/Insert mode, test with 100 assets

Week 2: Load all 3,500 assets, validate in Workday UI, reconcile counts

Week 3: Load PM schedules for critical and important assets (prioritize high-criticality equipment)

Week 4: Load remaining PM schedules, train maintenance team on Workday work order process

This approach ensures your maintenance planning can begin as soon as asset data is loaded, with critical equipment prioritized for PM scheduling.

Another thing to check - are you certain your legacy system export doesn’t have duplicates? Sometimes CMMS systems can have the same asset registered in multiple locations or with different status codes, resulting in duplicate exports. Run a SQL query or Excel pivot on your source data to count Asset ID occurrences. Also, Workday Asset IDs are case-sensitive, so ‘ASSET-00001’ and ‘asset-00001’ would be treated as different IDs.

For the test assets, manually deleting 50 records is manageable through the Workday UI if they don’t have dependencies. However, if they already have maintenance schedules or work orders attached, deletion gets complicated. Using EIB in update/insert mode is cleaner - it’ll update the 50 existing assets with new data and insert the remaining 3,450 as new records. Just make sure your CSV includes all required fields for both updates and inserts.

I’d recommend a phased approach here. First, export your 50 test assets from Workday to see exactly what data they currently have. Then decide if you want to keep and update them, or delete and start fresh. If your test data is messy or incomplete, deletion might be cleaner. For 50 records without dependencies, you can use a mass delete business process if your security allows it, which is faster than manual deletion.