
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 target 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.
Note that it may take the connector some time to import your changes. You can validate success by querying on the entityId you entered, and confirm that the ExternalIdentity you added is available on the entity.
If the other entity you were trying to merge in with this identity still exists in the Graph, then those two entities were not unified. Double check the ExternalIdentity value on both entities to confirm they match exactly.
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 } } } }
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 } }