Tandem to Robin - Initialize Robin
The integration allows users to setup Robin instance by reading Tandem Assets. This solution begins by reading Tandem to retrieve building, level, and room information. If locations and spaces do not already exist, it creates them in Robin and updates the IDs back to Tandem.
Pre-Requisites
Tandem
A Tandem facility has to already be setup before starting this workflow. For more information on setting up Tandem Facility please see the Tandem Help Docs here. The User-defined parameters section lists all properties that should exist in the Tandem facility's facility template or should be created and added there.
Robin
An API access token is generated for the plugin to use. For more information on creating access keys in Robin, please refer to the getting started guide here.
User-Defined Properties
The Tandem facility for this workflow will need to have a template with the following user-defined parameters setup in Tandem. These should all be created under the category Robin
.
Property Name | Description | Data Type |
---|---|---|
SpaceId | The Robin space id associated with this element in Tandem. | Number |
LocationId | The Robin location id associated with this element in Tandem. | Number |
Availability | The availability of the space. Either available , booked or in_use or disabled |
String |
Presence | The amount of users or devices present within the space. | Number |
Next | An ISO-8601 timestamp that represents the next time the room will switch from available to booked or in_use or vice versa. |
DateTime |
Solution Features
Feature | Description |
---|---|
Read all Spaces from Tandem Facility | The solution reads all spaces and levels from the given Tandem Facility. |
Create Locations in Robin | The Tandem facility details are used to create them as locations in Robin. So, a facility representing a building in Tandem will be the location for which the Robin instance is being setup. |
Create Rooms and Levels in Robin | The rooms and levels from Tandem are created as Spaces in Robin. These spaces are linked back to the Tandem rooms and levels for further data synchronization. |
Basic Setup
This section explains the minimum configuration needed to deploy the solution and get it up and running. The solution is one way reading Tandem for space management data and setting up Robin with the same details. Below are the list of plugins that need to be configured.
Autodesk Tandem Service & Autodesk Tandem Connector
Parameter | Description | Expected Value |
---|---|---|
Facility ID | The facility which will be used to read space management data that needs to be created in Robin. The facility will be used to create location in Robin. | Facility URN from Tandem |
Client ID | The APS account client id. | |
Client Secret | The APS account client secret. |
Autodesk Tandem Service
To retrieve only the rooms from the Tandem facility, change the Data Processing
parameter to the Retrieve Space Assets
value.
Robin Service:
- An Robin API key for the account.
- The Organization ID for which the Robin instance is setup.
Advanced Setup
This section details about all the components involved in the solution including the configuration needed and their purpose on the pipeline.
Solution Overview

Components Involved
This section provides a detailed description of the components (plugins) that are part of the solution.
Scheduled Data Stream:
The scheduled data stream is the start of the pipeline where we can set how frequently the solution should run and update the properties. The scheduled data stream holds the properties that can be changed to customize the user defined properties that are defined in Tandem. Please refer to the Appendix for the JSON data that can be copied.
Autodesk Tandem Service
This plugin connects to the given Tandem facility and model to retrieve room / space information. The plugin is configured to retrieve only rooms with "Robin.SpaceId" property set as empty. This is achieved by passing the Attribute Filter
from the scheduled data stream. The value suggests the plugin to only retrieve assets from Tandem that has the listed properties. The Robin.SpaceId
at the end of the string can be changed to the actual user defined property defined in Tandem.
Converter (PrepRobin)
This converter maps Tandem asset data to the Robin Bulk Create payload format as below. For more information on the Bulk Create action please refer to the HELP section of the Robin Service plugin. It also prepares a map of Tandem Asset IDs used by the PrepTandem Converter to match spaces with Tandem assets for updates.
Robin Service (Bulk Create)
This service is configured to run in "Bulk Create" mode, creating necessary entities in Robin along with their dependencies if provided in the incoming data. It checks if the facility and rooms already exist in Robin, creating them if necessary. It sends JSON data along with created entity IDs to the next filter. If no entities are created, it indicates that objects already exist in Robin and no update is needed for Tandem.
Converter (Prep Tandem)
This converter receives data from the Robin Service Bulk Create action, which includes the newly created locations and space IDs. It maps space IDs with Tandem asset IDs so that the Tandem Connector can update assets. This is where we specify the custom Tandem asset properties to be updated.
Autodesk Tandem Connector
This plugin connects to the same Tandem facility as the earlier service plugin. It receives asset IDs from tcMetadata
and updates properties (e.g., Robin Space ID) in the payload as below.
{
"data": {
"Robin": {
"SpaceId": xxxxx,
"LocationId": xxxx
}
},
"tcMetadata": {
"tandem": {
"asset": xxxxxxxxxxxx
}
}
}
Troubleshooting
This section provides pointers for debugging if something does not function as expected:
- Check the configuration of the "ReadTandem" plugin, including facility and model settings, to ensure the Tandem service reads rooms correctly. Also, verify that the Asset Filter configuration matches the HELP section of the plugin.
- Debug converters by adding
logger.debug('debug statement')
in code, observing the Logs section after redeployment. - If Tandem services do not read/update properties as expected, verify that the property names in Tandem match those in the scheduled data stream.
Appendix
Scheduled Data Stream
{
"mapping": {
"RobinCategory": "Robin",
"SpaceId": "SpaceId",
"LocationId": "LocationId",
"Availability": "Availability",
"Status": "Status",
"Next": "Next"
},
"tcMetadata": {
"tandem": {
"attributesFilter": ["Common.Name", "Common.Level", "Common.Assembly Code", "Common.System Class", "Common.Classification", "Robin.SpaceId"]
}
}
}