
The CSV Identities connector directly attaches org-scoped ExternalIdentity values to entities in the Mapped Graph through a spreadsheet import. This way, you can unify entities in bulk via shared Identities. Read more about Identities and how unification works in the Mapped Graph.
Identify which entities need to be united, which entities already have an org-scoped External Identity, and which entities are lacking that org-scoped External Identity.
Tip for future validation: Take note of which of the entities to be united has the older dateCreated value in GraphQL. This entity has the Id that will persist after unification. See example queries below for how to check dateCreated.
Map the entities that do not yet have the External Identity in a CSV or spreadsheet with the following columns:
Example Import: Add External Identity to a Building
| Mapped Entity Id | External Identity | Entity Type |
|---|---|---|
| BLDGmY5Uk9R6cP2sDfXHqvE7Lb | urn:connector:value:123 | BUILDING |
For example, if all the identity values you want to add share the same prefix:
You have the option to add this prefix in the Identity Options:
1urn:connector:value
Then, you could import the values without the prefix:
| Mapped Entity Id | External Identity | Entity Type |
|---|---|---|
| BLDGmY5Uk9R6cP2sDfXHqvE7Lb | 123 | BUILDING |
| BLDGQ3nWp7LsJkVxE2mRZaC8Ty | 456 | BUILDING |
| BLDG8vTqLMr2XfYpZc9uHsA5Kd | 789 | BUILDING |
Import the CSV or XLSX file in the Mapping tab. The file requires:
Select File or drag and drop to import your file, then follow the prompts to Submit the file.
If you query both of the entities you selected to unify, filtering on the entityId, only one of the entityIds should still exist in the Graph.
The below query can be used to compare two different buildingIds by their dateCreated. This query syntax would be interchangeable with floors, spaces, zones, or things.
Request ResponseCopy1 2 3 4 5 6 7 8 9 10{ buildings( filter: {id: {in: ["BLDGmY5Uk9R6cP2sDfXHqvE7Lb", "BLDGF7xQpR2LmNeV8kYcTzH4Sa"]}} ) { id name exactType dateCreated } }
This query syntax would likewise be interchangeable with floors, spaces, zones, or things.
Request ResponseCopy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17{ buildings(filter: {id: {eq: "BLDGF7xQpR2LmNeV8kYcTzH4Sa"}}) { id name identities { ... on ExternalIdentity { __typename dateCreated dateUpdated id scope scopeId value } } } }