In Dataverse import, lookup matching works only against the target table unless you provide an alternate key or a unique identifier strategy.
Your issue is common:
- Site table
- Location table
- Location Name
- Site lookup
Problem:Location Name is not unique globally.“Office 101” exists under multiple Sites.
During Asset import, Dataverse tries to resolve Location lookup using only Location Name. That becomes ambiguous.
Best approach:
Create a composite alternate key on Location.
Example:
Then import using both values.
Structure your CSV like this:
| Asset Name |
Site |
Location |
| Laptop A |
New York HQ |
Office 101 |
| Laptop B |
Dallas HQ |
Office 101 |
But this alone is often not enough for standard import wizard lookup resolution.
Better pattern:
Create a calculated/import helper column in Location table.
Example column:LocationKey
Formula or populated value:SiteName & "-" & LocationName
Examples:
- NewYorkHQ-Office101
- DallasHQ-Office101
Then:
- Populate this field for all Location records
- Make it an Alternate Key
- In Asset CSV use:
| Asset Name |
LocationKey |
| Laptop A |
NewYorkHQ-Office101 |
Then map Asset.Location lookup to LocationKey during import.
This is the cleanest import strategy in Dataverse.
Why this works:
- Import engine resolves against one unique field
- No ambiguity
- Faster matching
- Easier future integrations
- Works well with Power Automate and Dataflows too
If volume is large or recurring:
- Use Dataflow Gen2
- Use Power Query merge on Site + Location
- Resolve Location GUID before insert/upsert into Asset
For enterprise-scale imports, pre-resolving GUIDs is usually the most reliable pattern.
Thank you!
Proud to be a Super User!