Skip to main content

Soleran Source

Soleran logo

The Soleran Source connector imports data from Soleran CMMS (eAppTrack) into the Mapped graph. It reads buildings, floors, assets (equipment), and Work Orders from your Soleran instance and creates the corresponding entities and relationships in Mapped. The connector polls for work order updates every 5 minutes and supports on-demand asset syncing.

Use Cases​

  • Facilities visibility: Bring your Soleran building and floor hierarchy into Mapped so all locations are represented in the graph and available for analytics, dashboards, and cross-system correlation.
  • Work Order tracking: Automatically sync corrective and preventative work orders into the Mapped graph, including status, priority, assignees, and location context, enabling unified maintenance dashboards across all connected systems.
  • Asset management: Import equipment and asset records from Soleran with type classification, manufacturer details, and location assignments so downstream applications can query assets across your portfolio.

Configuration​

Auth Requirements​

The connector uses Basic Auth credentials to access the Soleran REST API. The following is required:

  • API URL: Soleran eAppTrack API base URL, usually https://basic.eapptrack.com/api. Your Soleran administrator can confirm the correct URL for your instance.
  • Username: Soleran API username provided by your Soleran administrator. This is the same username used to log in to the eAppTrack web portal.
  • Password: Soleran API password, provided by your Soleran administrator.

Module Configuration​

FieldRequiredDescription
Building ModuleAt least one location module requiredThe Soleran module that contains your building/site records.
Floor ModuleAt least one location module requiredThe Soleran module that contains your floor/level records.
Asset ModuleNoThe Soleran module that contains your equipment/asset records. Required for asset syncing.
Work Order ModuleNoThe Soleran module that contains your work order records. Required for work order polling.

Field Configuration​

After selecting modules, you map Soleran fields to Mapped properties. The connector UI shows all available fields from each module and lets you assign them to standard Mapped properties.

For each entity type (building, floor, asset, work order), you configure which Soleran field contains each piece of data. For example, you might map:

  • The Soleran descriptionx field → the Mapped description property
  • The Soleran priorityx field → the Mapped priority property

Relationship fields and drilling down​

Some Soleran fields are Relationship fields. They don't hold a value; they hold the numeric ID of a record in another module. For example, a floor's Building field shows 103, not the building's name, and Soleran doesn't say which module that ID belongs to.

In the field mapping table, Relationship fields have a red Relationship badge, their sample value is shown in red italics, and they have a Drill button. You have two choices:

GoalWhat to doResult
Keep the IDPick a Ref property in Mapped Property (for example Building Ref on a floor)Mapped stores the record ID and uses it to match records, such as linking a floor to its building.
Read a value from the linked recordSelect Drill, then choose a field from the linked recordMapped follows the link for every record and uses that field's value, such as the building's name or address.

Choosing a Ref property is not drilling down. A Ref only identifies the linked record. Drill down when you need something from inside it.

To drill down:

  1. Select Drill next to the Relationship field.
  2. Choose the module the field points to (for example Building). Soleran IDs are only unique within a module, so the same number exists in many modules. If you pick the wrong module you will see a different record's values, or a "not found" message. Use Change module to try another.
  3. Mapped looks up the sample record (the dialog shows "resolving sample ID") and lists its fields with their types and sample values.
  4. Select Use this next to the field you want. The mapping now reads that field from the linked record.

Sample Data Preview. Each module's field configuration has a collapsible Sample Data Preview showing up to five real records, so you can see what a field contains before you map it. Relationship values are highlighted. Select one to open the linked record and see what the ID stands for, for example that manufacturer 42 is "Carrier".

Asset Type Mapping​

When the Asset Module is configured, the connector discovers the distinct asset types in your Soleran data and lets you map each one to a Mapped Exact Type (from the Brick Schema ontology). Unmapped types default to Thing.

For example:

Soleran TypeMapped exactType
HVAC UnitHVAC
Air HandlerAHU
BoilerBOILER
ElevatorELEVATOR
The connector auto-suggests matches where possible. You can review and adjust them before saving.

Place Mappings​

The place mapping table shows all buildings and floors discovered from your Soleran instance. Each row represents a location that will be created in the Mapped graph. You can review the names, addresses, and floor levels before confirming.

Place mappings determine the building → floor hierarchy in the Mapped graph, with an optional sub-building level between them. Work orders and assets are linked to these locations based on their Soleran building, sub-building and floor references.

FieldRequiredDescription
building.refIdYesSoleran record ID of the building (shown as module:record, for example 10001:39)
building.siteIdYesThe Site in your organization
building.nameYesBuilding name
building.addressYesBuilding address. Buildings are merged by address, so use the identical address on every row of a building to avoid duplicates.
subBuilding.refIdNoIdentifier of the sub-building in Soleran (for example SUB-NORTH-WING)
subBuilding.nameNoSub-building name (for example a wing or tower). Fill this in to treat the row as a sub-building.
subBuilding.codeNoSub-building code. Required for the row to be treated as a sub-building. Sub-buildings are merged by code, within a building and across connectors, so use the same code for the same sub-building to avoid duplicates.
floor.refIdYesSoleran record ID of the floor. Must be unique.
floor.nameYesFloor name
floor.levelYesNumeric floor level

Sub-buildings​

Some Soleran instances store the parts of a site, such as a hospital, a central utility plant or a tower expansion, as separate building records that share one street address. To keep them as sub-buildings of a single Mapped building, designate them in the place mapping table. There is no separate module to configure.

In each row for a Soleran building that is really a sub-building, fill in the subBuilding fields. Leave them empty for ordinary buildings.

When a row has a sub-building:

  • The parent building is identified by its address only and gets no Soleran identity.
  • The sub-building gets the Soleran building identity (urn:soleran:building:id:<systemid>) for that row, plus a sub-building code identity from subBuilding.code.
  • Floors are attached to the sub-building, not the parent.
  • Work orders and assets that reference that Soleran building resolve to the sub-building.

Advanced Options​

OptionDefaultDescription
Batch Size100Number of records processed per batch during asset sync. Increase for larger datasets; decrease if you encounter timeouts.
Max Retries3Maximum retry attempts for failed Soleran API requests.

Mapped Concepts​

Entities​

The Soleran Source connector creates the following entity types in the Mapped graph:

Soleran RecordMapped EntityexactTypeDescription
Building recordBuildingBUILDINGA physical building or site.
Building record designated as a sub-buildingSubBuildingSubBuildingA wing, tower or other subdivision of a building. Created from the place mapping.
Floor recordFloorFLOORA floor or level within a building or sub-building.
Asset/Equipment recordThingVarious (e.g. HVAC, AHU, BOILER)An equipment asset. Exact type depends on asset type mapping configuration.
Work Order recordWorkOrderWORK_ORDERA corrective or preventative maintenance work order.
Requestor (from Work Order)PersonPERSONThe person who reported/requested the work order. Created from requestor email.
Creator (from Work Order)PersonPERSONThe person who created the work order. Created from creator email.

Relationships

  • Building → Floor: Buildings contain floors via the hasPart relationship. This hierarchy is created from the place mapping configuration.
  • Building → SubBuilding → Floor: When a place mapping row has a sub-building, the building contains the sub-building and the sub-building contains its floors, both via hasPart.
  • Thing → Floor/SubBuilding/Building: Assets are placed at their floor (preferred), sub-building or building location via the hasLocation relationship.
  • WorkOrder → Floor/SubBuilding/Building: Work orders are linked to their location via relatesTo. Floor takes priority; the sub-building or building is used as fallback.
  • WorkOrder → Thing: When a work order references an asset, a relatesTo relationship is created to the corresponding Thing.
  • WorkOrder → Person: Requestor and creator are linked via isReportedBy and isCreatedBy respectively. People are deduplicated by email address.

External Identities

Each entity receives an external identity URN for cross-system traceability:

IdentityIdentity FormatExample
Buildingurn:soleran:building:id:<systemid>urn:soleran:building:id:1234
Sub-buildingurn:soleran:building:id:<systemid> (the Soleran building record it was designated from), plus a sub-building code identityurn:soleran:building:id:40
Floorurn:soleran:floor:id:<systemid>urn:soleran:floor:id:5678
Asseturn:soleran:asset:id:<systemid>urn:soleran:asset:id:9012
Work Orderurn:soleran:workorder:id:<systemid>urn:soleran:workorder:id:3456
Work Orderurn:soleran:workorder:number:<number>urn:soleran:workorder:number:WO-001

Polling & Sync Behavior​

FunctionFrequencyDescription
Work Order PollEvery 5 minutesFetches work orders updated since the last poll and merges them into the graph. On first run, looks back 24 hours.
Asset SyncOn-demandTriggered manually from the connector UI or via API. Fetches all assets (optionally filtered by building) and merges them into the graph.
Provision (Location Sync)On configuration saveCreates the building/floor hierarchy from place mappings and attaches Soleran external identities for location resolution.

Sample Code​

Note that you can find the connectorId in the Mapped Console grid view connectors tab.

List all work orders from this connector

To find work orders for a specific Building, Floor, or Thing, search the output of this query for the entity's Mapped Id.

{
workOrders(filter: { connectedDataSourceId: { eq: "your-connector-id" } }) {
id
name
jobStatus
jobPriority
jobType
description
dueDate
dateClosed
externalDateCreated
externalDateUpdated
relatesTo {
__typename
... on Building { id name }
... on Floor { id name }
... on Thing { id name exactType }
}
isReportedBy { name }
isCreatedBy { name }
}
}

Graph Diagrams​