Conga Product Documentation

Welcome to the new doc site. Some of your old bookmarks will no longer work. Please use the search bar to find your desired topic.

Data Transformation

The Data Transformation Activity converts data from one JSON format or structure into the desired JSON structure. It enables you to reshape API responses (such as those from the HTTP Callout V2 Activity) into a desired structure for improved analysis, integration, and usability. You can extract specific data, select structured output fields directly using the resource picker, apply expressions, and generate a new JSON output for use in subsequent workflow activities.

  • Group: Data
  • Nature: Non-Blocking

Properties and activity information

Properties determines the initial behavior of the activity.

Field

Description

Details
Display NameEnter the name of the activity.
Reference Name

The unique technical name of the activity within the workflow. This name identifies the activity output in subsequent workflow steps.

The reference name appears under Activity Outputs in the IntelliSense resource picker. Expand the structured output to navigate nested objects, view the complete response hierarchy, and select the required fields.

DescriptionAn optional field where you can enter a custom description of the activity to explain its purpose.
Properties

Is Input Collection

Enable this option if the input is an array or contains multiple records.

Bulk Input Source

Select the source of input data (for example, the output of a previous HTTP Callout V2 Activity). This field is mandatory when Is Input Collection is enabled.

Is Output Collection

Enable this option if you want the activity to produce multiple records in the output.

Output DataType

Defines the type of the transformed output data. Supported types include String, Int, Decimal, Boolean, Object, Array.

Field Mapping Section: This section allows you to define the mapping between input data and the desired output structure. You can add multiple mappings as needed.

Name

The name of the output field that will appear in the transformed JSON.

Data Type

The type of the output field. Supported types include String, Int, Decimal, Boolean, Object, and Array.

Expression

Defines how to populate the output field.

Select activity outputs directly from the resource picker instead of manually typing the full expression path.

You can:

  • Write expressions to extract specific fields at any level of the hierarchy (for example, $ActivityOutput.SalesforceGetData.Record.Name).
  • Select primitive fields such as String, Int, Decimal, or Boolean.
  • Use workflow variables.
  • Apply arithmetic, concatenation, or built-in functions as needed.

Validate

Validates the expressions to ensure they are syntactically correct before saving.

Example 1: Transforming HTTP Callout Response from Salesforce

Suppose you fetch a list of Opportunities from Salesforce using an HTTP Callout V2 Activity. The response looks like this:
Note: Use this configuration when you want to normalize multiple records into a structured JSON format before sending it onward.
{
  "totalSize": 2,
  "done": true,
  "records": [
    {
      "Id": "006Dy00000CwqBOIAZ",
      "Name": "Opportunity 1",
      "Probability": 10.0,
      "CreatedDate": "2025-05-23T08:51:04.000+0000"
    },
    {
      "Id": "006Ey00000CwqBODAF",
      "Name": "Opportunity 2",
      "Probability": 20.0,
      "CreatedDate": "2025-05-20T08:51:04.000+0000"
    }
  ]
}
To configure the Data Transformation Activity:
  1. Extract the records array
    • Set Input to $ActivityOutput.GetSFDCOpportunities.records.

    • Set Is Input Collection to False.

    • Set Is Output Collection to True.

    • Set Activity Name to Opportunities.

  2. In the mapping section, configure the following fields:
    • Set Name to $ActivityOutput.Opportunities.Name.

    • Set ExternalId to $ActivityOutput.Opportunities.Id.

    • Set Description to $Variables.WorkflowVariableName.

  3. For the output:

    • Set Is Input Collection to True.

    • Set Is Output Collection to True.

    • Set Activity Name to OpportunityRecords.

  4. Pass the transformed output to the next HTTP Callout V2 activity by setting the Body field to:
    Body = $ActivityOutput.OpportunityRecords

Example 2: Expression Configuration with Mixed Sources

This example shows how to combine data from activity outputs and workflow variables to build a transformed JSON. Suppose the HTTP Callout V2 activity (GetCustomerDetails) returns:
Note: Use this configuration when you need to enrich external API data with workflow variables before sending it onward.
{
  "Id": "001ABC123",
  "Name": "Acme Corp",
  "IsPrivate": true
}
And you have workflow variables defined as:
DiscountPercent = 12.5
Quantity        = 3
OrderDate       = 2025-09-18
Country         = "USA"
To configure the Data Transformation Activity:
  • Set Input to $ActivityOutput.GetCustomerDetails.

  • Set Is Input Collection to False.

  • Set Is Output Collection to False.

  • Set Activity Name to CustomerOrder.

In the mapping section, configure the following fields:
Output FieldData TypeExpressionSample Output ValueExplanation
NameString$ActivityOutput.GetCustomerDetails.Name"Acme Corp"Gets the customer name from the API response.
ExternalIdString$ActivityOutput.GetCustomerDetails.Id"001ABC123"Gets the unique identifier from the API response.
TotalAmountDecimal$Variables.DiscountPercent + $Variables.Quantity15.5Adds workflow variables for a calculated field.
OrderDateStringString$Variables.OrderDate.ToString()"2025-09-18"Converts the workflow variable date into a string.
IsEligibleCustomerBoolean$ActivityOutput.GetSFDCOpportunity.IsPrivatetrueMaps the customer's active status as a Boolean value.
Pass the transformed output to the next HTTP Callout V2 activity by setting the Body field to:
Body = $ActivityOutput.CustomerOrder

Example 3: Using Index-Based Expressions in Collections

When working with arrays, you can access specific records using index-based expressions. Suppose the HTTP Callout V2 activity (GetOrderItems) returns
Note: Use this configuration when you only need to extract and send a specific record from an API response, such as the first item in an order list.
{
  "records": [
    {
      "Id": "ORD-001",
      "ItemName": "Laptop",
      "IsShipped": false
    },
    {
      "Id": "ORD-002",
      "ItemName": "Monitor",
      "IsShipped": true
    }
  ]
}

And you have a workflow variable:
Warehouse = "India"
To configure the Data Transformation Activity:
  • Set Input to $ActivityOutput.GetOrderItems.records.

  • Set Is Input Collection to False.

  • Set Is Output Collection to False.

  • Set Activity Name to FirstOrderItem.

In the mapping section, configure the following fields:
Output FieldData TypeExpressionSample Output ValueExplanation
NameString$ActivityOutput.GetOrderItems.records[0].ItemName"Laptop"Extracts the item name from the first record in the array.
DescriptionString$Variables.Warehouse"India"Maps the workflow variable value.
IsPartnerBoolean$ActivityOutput.GetOrderItems.records[0].IsShippedfalseGets the shipment status from the first record.
Pass the transformed output to the next HTTP Callout V2 activity by setting the Body field to:
Body = $ActivityOutput.FirstOrderItem
Note: Use this configuration when you only need to extract and send a specific record from an API response, such as the first item in an order list.