ID linking
The ID linking component links IDs between different systems.
It lets you store and retrieve IDs associated with data objects in a reliable and efficient manner.
The bucket contains the bucket ID and an array of linked objects between the systems. Linked object IDs may be a string, number, or object.
Examples:
{
"bucketId": "some_sf_bucket_id",
"linkedIds": [
{
"systemAId": "00344000020qT3K",
"systemBId": 123
},
{
"systemAId": "0034400001uxwXZ",
"systemBId": 62
}
]
}
{
"bucketId": "some_sf_bucket_id",
"linkedIds": [
{
"systemAId": "00344000020qT3K",
"systemBId": {
"company": "mvise-eio",
"id": "7c7fec00-d313-40c7-890b-3bc857bbb7dd"
}
},
{
"systemAId": "0034400001uxwXZ",
"systemBId": {
"company": "mvise-salessphere",
"id": "fc64c4f0-06f7-47ef-b3b6-8441b4837305"
}
}
]
}
Triggers
This component has no trigger functions. This means it will not be accessible to select as a first component during the integration flow design.
Actions
Delete object
The Delete Object action deletes a linked object the list of linked object in the specified bucket.

Configuration fields
- System Type to delete by (a key to lookup)
-
Required.
A system to lookup the ID in. Either System A or System B.
- Do not throw error when no object found
-
Optional. This option defines the strategy to follow if no object is found by the provided key.
By default, an error — No object found by the provided ID in the bucket — is thrown if no object is found by the provided key.
If this checkbox is selected, an empty message is returned instead of the above error.
Lookup object
The Lookup Object action searches linked objects in the bucket specified by the source system ID.

Configuration fields
- Allow ID To Be Omitted
-
Optional. By default the ID of the source system to lookup in field is a required field.
However, if this checkbox is checked, that field becomes optional.
- Object Not Found Behavior
-
Required. This field has two possible values:
-
Allow zero results ; or
-
Wait for object to exist.
- Allow zero results
-
Optional. If this is not set, an error is thrown if zero results are returned..
When selected, the empty object,
{}
, is emitted if zero results are returned. - Wait for object to exist
-
Optional. If this is not set, [what, specifically is the consequence of not setting this?] if zero results are returned.
When selected, rebounds are applied and the action waits until the object exits if zero results are returned.
-
- System ID Type
-
Required. A system to lookup the ID in. Either System A or System B.
Upsert object
The Upsert Object action creates or updates a linked object in the bucket specified by the source system ID.

Buckets in Maester are currently created with infinite lifetime. |
Write entire bucket contents
The Write Entire Bucket Contents action writes linked objects as an object array in the bucket.
The Bucket ID needs to be specified in the credentials.

Buckets in Maester are currently created with infinite lifetime. |
Use case
The use case scenario involves a Webhook real-time flow where data is received and stored by the Maester component.
After a certain period, another real-time flow is triggered, and, based on a specific ID, the stored data needs to be retrieved.
The ID Linking component plays a crucial role in storing and managing these IDs.
First flow
In the first flow, data is received via the Webhook component, which contains information about an order for calculating product costs.
The Maester component stores this data and associates it with a dynamically generated Maester Object ID. The ID Linking component is then used to store this ID for future retrieval.

The flow consists of the following steps:
-
The Webhook component receives the order data.
{ "Order": "0406654608", "ProductID": 858383, "City": "Berlin", "Address": "Friedrichsruher Str. 37", "Price": 34.45, "Quantity": 30 }
-
The Maester component stores the received data using the dynamically generated Maester Object ID.
Sample example of Maester component data:
{ "data": { "body": { "Order": "0406654608", "ProductID": 858383, "City": "Berlin", "Address": "Friedrichsruher Str. 37", "Price": 34.45, "Quantity": 30 } }, "maesterObjectId": "bf485bcd-e0db-4f2d-a805-e5084a4cf26c", "metaHeaders": [], "searchHeaders": [] }
-
The ID Linking component stores the Maester Object ID, linking it to the order value from the Webhook data.
{ "result": { "systemAId": "0406654608", "systemBId": "bf485bcd-e0db-4f2d-a805-e5084a4cf26c" } }
-
The JSONata component calculates the sum of the order, which can be sent to a CRM or database.
JSONata expression:
{ "sum, €": $getPassthrough()."step_1".body.Price * $getPassthrough()."step_1".body.Quantity }
Use the previous credentials or create new ones with the same Bucket ID.
Second flow
In the second flow, data is received via the Webhook component, which contains information about the order description for calculating product dimensions.
The ID Linking component retrieves the Maester Object ID associated with the order value from the previous flow.
The Maester component then retrieves the stored data using the obtained ID.
Finally, the Transformation component calculates the dimensions of the order.
+ image::id-linking/second-flow-view.png[]
The flow consists of the following steps:
-
The Webhook component receives the order description data.
{ "Order": "0406654608", "Description": { "Width": 300, "Height": 200, "Depth": 210, "Weight": 0.75 } }
-
The ID Linking component retrieves the Maester Object ID associated with the order value from the Webhook data. It waits for the object to exist before triggering the Webhook.
Sample example of ID Linking component with the received Maester Object ID:
Use the previous credentials or create new ones with the same Bucket ID. -
The Maester component receives the stored data using the retrieved Maester Object ID.
-
The JSONata component calculates the dimensions of the order.
JSONata expression:
{ "Weight, kg": data.body.Quantity * $getPassthrough()."step_1".body.Description.Weight, "Volume, m³": 0.001 * $getPassthrough()."step_1".body.Description.Width * $getPassthrough()."step_1".body.Description.Height * $getPassthrough()."step_1".body.Description.Depth }
-
The Maester component deletes the stored object to optimize storage.
-
The ID Linking component deletes the linked object for the Maester Object ID associated with the order value.