Transformation

Choose the right component

Use the flowchart below to assist in choosing the appropriate component for your use case:

Component decision tree

Dedicated data transformation component.

Authentication

This component does not require authentication.

How it works

This component takes the incoming message body and applies the configured JSONata transformation to it. It uses the fact that JSONata expression is a superset of JSON document. By default, any valid JSON document is a valid JSONata expression.

For example, consider this sample incoming message body:

{
  "Account": {
    "Account Name": "Firefly",
    "Order": [
      {
        "OrderID": "order103",
        "Product": [
          {
            "Product Name": "Bowler Hat",
            "ProductID": 858383,
            "SKU": "0406654608",
            "Description": {
              "Colour": "Purple",
              "Width": 300,
              "Height": 200,
              "Depth": 210,
              "Weight": 0.75
            },
            "Price": 34.45,
            "Quantity": 2
          },
          {
            "Product Name": "Trilby hat",
            "ProductID": 858236,
            "SKU": "0406634348",
            "Description": {
              "Colour": "Orange",
              "Width": 300,
              "Height": 200,
              "Depth": 210,
              "Weight": 0.6
            },
            "Price": 21.67,
            "Quantity": 1
          }
        ]
      }
    ]
  }
}

You can use the following JSONata expressions to transform it:

{
	"account": Account."Account Name",
	"orderCount" : $count(Account.Order)
}

The result of that transformation will be the following JSON document:

{
  "account": "Firefly",
  "orderCount": 1
}

More complicated transformations are possible. For example, consider this array-to-array transformation:

{
    "account": Account."Account Name",
    "products": Account.Order.Product.({
    	"name": $."Product Name",
        "revenue": (Price * Quantity)
    }),
    "orderIDs": Account.Order[].(OrderID)
}

The output after transformation would be:

{
  "account": "Firefly",
  "products": [
    {
      "name": "Bowler Hat",
      "revenue": 68.9
    },
    {
      "name": "Trilby hat",
      "revenue": 21.67
    }
  ],
  "orderIDs": [
    "order103"
  ]
}

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

Transform JSON data.