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 Scenarios and Rules

This topic explains various data transformation scenarios used during migration or synchronization between Salesforce and the Advantage Platform. Each scenario describes how data values, object names, or field names are transformed to meet platform requirements. The Object Name mentioned in each scenario refers to the Advantage Platform object name where the transformation applies. These transformations ensure data consistency, proper mapping, and compliance with platform standards.

Summary Table: Scenario vs Rule Name

Rule NameScenario
Handled automatically by SystemOne-To-One Value Transformation
ComplexCpqFilterValue Transformation For JSON keys and values
FormulaExpressionFilterValue Transformation Part Of the String
ProductAttributeRuleActionFilterValue Transformation Part Of the String And Replace by Lookup Id
SalesforceIdFilterValue Transformation From Salesforce Id to Platform Id and adding missing values to PickListEntry
SalesforceIdPatternBasedFilterValue Transformation From Salesforce Id to Platform Id using a Pattern
SimpleMetadataFilterTransforming Value from Salesforce object/fields to Platform Objectfields
DefaultRoleTransformationFilterMapping roles in platform based upon object permission set in Salesforce
RemoveEmptyNodeTransformationFilterRemoves the empty Node during upload
DecimalToIntegerTransformationFilterConverts decimal to integer by ignoring the value after dot
AddDefaultValueTransformationFilterAdds Field Name attribute if missing and assigns default value
AddressTransformationFilterTransforms all address fields into single Address Field
ApprovalMemberTypeTransformationFilterTransform and update field expression to User/Queue/null
DefaultCLMRoleTransformationFilterMapping CLM roles in platform based upon object permission set in Salesforce
DefaultUserTransformationFilterAssigns User Role based upon lookup object matching with list of default users
LocaleTransformationFilterTransformations of Locale values
ReplaceValueTransformationFilterTransforms field value by removing leading/trailing backslash and single quotes
SalesForceCustomAPIFilterTransforms Salesforce-specific field names to RLP field names and XML values
SalesforceIdFilterArrayAsStringTransforms List of Salesforce Ids into Platform Ids
TemplateLocaleFilterTransforms and update Local Id based upon template locale string values
TimezoneTransformationFilterConverts GMT time zones to UTC time zones
StringToMultiPickListFilterConverts Salesforce string to multipicklist array
MultiPickListFieldExpressionFilterConverts Salesforce array string to multipicklist array
MultiFieldExpressionFilterTransforms Salesforce expression to platform-supported expression
ExternalIdToLookupFilterTransforms Salesforce Id to platform lookup object

1: One-To-One Value Transformation

Object Name: category, optiongroup (IsLeaf)

Purpose: Map source field values directly to target values without modification.

Rule NameSource ValueTarget ValueTransformations
Value TransformationYestrueDirect one-to-one value mapping
NofalseDirect one-to-one value mapping

2: Value Transformation For JSON keys and values

Purpose: Convert Salesforce object names and JSON keys to platform equivalents.

Rule NameSource ValueTarget ValueTransformations
ComplexCpqFilterObject Name: pricematrixentry (Condition)
  • Change key value "sObjectName" to "ObjectName"
  • Change value "Apttus_Config2__LineItem__c" to "LineItem" for "ObjectName" attribute. Similar changes for "relationFieldName", "childObjectName", "childObjectLabel",
  • Change value for fields array from "Apttus_Config2__AttributeValueId__r.Apttus_Config2__Color__c" to "Color"
{"sObjectName" : "Apttus_Config2__LineItem__c","sObjectLabel" : "Line Item","filter" : {"predicates" : [ ],"condExpr" : null,"childFilter" : {"relationFieldName" : "Apttus_Config2__LineItemId__c","predicates" : [ {"RowNum" : 1,"FieldValue" : "Black","FieldType" : "PICKLIST","FieldName" : "Apttus_Config2__Color__c","FieldLabel" : "Color","CompOper" : "equal to","BoolOper" : "AND"}, {"RowNum" : 2,"FieldValue" : "Vendor 1","FieldType" : "PICKLIST","FieldName" : "Apttus_Config2__Vendor__c","FieldLabel" : "Vendor","CompOper" : "equal to","BoolOper" : "AND"} ],"condExpr" : "1 OR 2","childSObjectName" : "Apttus_Config2__ProductAttributeValue__c","childSObjectLabel" : "Product Attribute Value"}},"fields" : [ "Apttus_Config2__AttributeValueId__r.Apttus_Config2__Color__c", "Apttus_Config2__AttributeValueId__r.Apttus_Config2__Vendor__c" ],"exprStr" : "(Color = Black) OR (Vendor = Vendor 1)"}{ "ObjectName": "LineItem", "ObjectLabel": "Line Item", "filter": { "predicates": [], "condExpr": null, "childFilter": { "relationFieldName": "LineItemId", "predicates": [ { "RowNum": 1, "FieldValue": "Black", "FieldType": "PICKLIST", "FieldName": "Color", "FieldLabel": "Color", "CompOper": "equal to", "BoolOper": "AND" }, { "RowNum": 2, "FieldValue": "Vendor 1", "FieldType": "PICKLIST", "FieldName": "Vendo", "FieldLabel": "Vendor", "CompOper": "equal to", "BoolOper": "AND" } ], "condExpr": "1 OR 2", "childObjectName": "Attribute", "childObjectLabel": "Attribute" } }, "fields": [ "Color", "Vendor" ], "exprStr": "(Color = Black) OR (Vendor = Vendor 1)" }
Object Name: ConstraintActionRule (ActionCriteria)
{ "sObjectName" : null, "sObjectLabel" : null, "searchText" : null, "filter" : { "predicates" : [ { "RowNum" : 1, "FieldValue" : "10Series", "FieldType" : "STRING", "FieldName" : "ProductCode", "FieldLabel" : "Product Code", "CompOper" : "equal to", "BoolOper" : "AND" } ], "condExpr" : "1" }, "fields" : [ "ProductCode" ], "exprStr" : "(Product Code = 10Series)" }{ "ObjectName": "Product", "ObjectLabel": "Product", "searchText": null, "filter": { "predicates": [ { "RowNum": 1, "FieldValue": "10Series", "FieldType": "STRING", "FieldName": "ProductCode", "FieldLabel": "Product Code", "CompOper": "equal to", "BoolOper": "AND" } ], "condExpr": "1" }, "fields": [ "ProductCode" ], "exprStr": "(Product Code = 10Series)" }
Object Name: priceruleset (RulesetCriteria)
{ ""sObjectName"" : ""Apttus_Config2__LineItem__c"", ""sObjectLabel"" : ""Line Item"", ""searchText"" : null, ""filter"" : { ""predicates"" : [ { ""RowNum"" : 1, ""RHSSObjectName"" : null, ""RHSFieldType"" : null, ""RHSFieldName"" : null, ""RHSFieldLabel"" : null, ""RHSChildFilterName"" : null, ""RefFieldName"" : null, ""OffsetValue"" : null, ""LHSSObjectName"" : null, ""LHSChildFilterName"" : null, ""FieldValue"" : ""Price Rule Set UOM different than Line Item UOM"", ""FieldType"" : ""STRING"", ""FieldName"" : ""Apttus_Config2__ProductId__r.Name"", ""FieldLabel"" : ""Product Name"", ""CompOper"" : ""equal to"", ""BoolOper"" : null } ], ""hasRHSFields"" : false, ""condExpr"" : ""1"", ""childFilter"" : null }, ""fields"" : [ ""Apttus_Config2__ProductId__r.Name"" ], ""extFields"" : [ ], ""exprStr"" : ""(Product Name = Price Rule Set UOM different than Line Item UOM)"" }{ "ObjectName": "LineItem", "ObjectLabel": "Line Item", "searchText": null, "filter": { "predicates": [ { "RowNum": 1, "RHSSObjectName": null, "RHSFieldType": null, "RHSFieldName": null, "RHSFieldLabel": null, "RHSChildFilterName": null, "RefFieldName": null, "OffsetValue": null, "LHSSObjectName": null, "LHSChildFilterName": null, "FieldValue": "Price Rule Set UOM different than Line Item UOM", "FieldType": "STRING", "FieldName": "Product.Name", "FieldLabel": "Product Name", "CompOper": "equal to", "BoolOper": null } ], "hasRHSFields": false, "condExpr": "1", "childFilter": null }, "fields": [ "Product.Name" ], "extFields": [], "exprStr": "(Product.Name = Price Rule Set UOM different than Line Item UOM)"}
Object Name: pricelistitem (ChargeTypeCriteria)
{ "sObjectName" : "Apttus_Config2__LineItem__c", "sObjectLabel" : "Line Item", "searchText" : null, "filter" : { "predicates" : [ ], "hasRHSFields" : false, "condExpr" : "", "childFilter" : { "relationFieldName" : "Apttus_Config2__LineItemId__c", "predicates" : [ { "RowNum" : 1, "RHSSObjectName" : null, "RHSFieldType" : null, "RHSFieldName" : null, "RHSFieldLabel" : null, "RHSChildFilterName" : null, "RefFieldName" : null, "OffsetValue" : null, "LHSSObjectName" : null, "LHSChildFilterName" : null, "FieldValue" : "Pink", "FieldType" : "PICKLIST", "FieldName" : "Apttus_Config2__Color__c", "FieldLabel" : "Color", "CompOper" : "equal to", "BoolOper" : "AND" } ], "condExpr" : "1", "childSObjectName" : "Apttus_Config2__ProductAttributeValue__c", "childSObjectLabel" : "Product Attribute Value" } }, "fields" : [ "Apttus_Config2__AttributeValueId__r.Apttus_Config2__Color__c" ], "extFields" : [ ], "exprStr" : "(Color = Pink)" }{ "ObjectName" : "LineItem", "ObjectLabel" : "Line Item", "searchText" : null, "filter" : { "predicates" : [ ], "hasRHSFields" : false, "condExpr" : "", "childFilter" : { "relationFieldName" : "LineItemId", "predicates" : [ { "RowNum" : 1, "RHSSObjectName" : null, "RHSFieldType" : null, "RHSFieldName" : null, "RHSFieldLabel" : null, "RHSChildFilterName" : null, "RefFieldName" : null, "OffsetValue" : null, "LHSSObjectName" : null, "LHSChildFilterName" : null, "FieldValue" : "Pink", "FieldType" : "PICKLIST", "FieldName" : "Color", "FieldLabel" : "Color", "CompOper" : "equal to", "BoolOper" : "AND" } ], "condExpr" : "1", "childObjectName" : "Attribute", "childObjectLabel" : "Attribute Attribute Value" } }, "fields" : [ "Color" ], "extFields" : [ ], "exprStr" : "(Color = Pink)" }
Object Name: ConstraintRuleCondition (ConditionCriteria)
{"sObjectName" : "Apttus_Config2__LineItem__c","sObjectLabel" : "Line Item","searchText" : null,"filter" : {"predicates" : [ {"RowNum" : 1,"FieldValue" : "true","FieldType" : "BOOLEAN","FieldName" : "Apttus_Config2__AttributeValueId__r.Checkbox__c","FieldLabel" : "Checkbox","CompOper" : "equal to","BoolOper" : "AND"} ],"condExpr" : "1"},"fields" : [ "Apttus_Config2__AttributeValueId__r.Checkbox__c" ],"exprStr" : "(Checkbox = true)"}{ "ObjectName": "LineItem", "ObjectLabel": "Line Item", "searchText": null, "filter": { "predicates": [ { "RowNum": 1, "FieldValue": "true", "FieldType": "BOOLEAN", "FieldName": "Checkbox_c", "FieldLabel": "Checkbox", "CompOper": "equal to", "BoolOper": "AND" } ], "condExpr": "1" }, "fields": [ "Checkbox_c" ], "exprStr": "(Checkbox_c = true)"}

3: Value Transformation Part Of the String

Object Name: ProductAttributeRule (ConditionCriteriaExpression)

Purpose: Update specific parts of a string that reference Salesforce fields.

Rule NameSource ValueTarget ValueTransformations
FormulaExpressionFilterOR($.Config.Apttus_Config2__AccountId__r.Name == 'Account_1', $.Config.Apttus_Config2__AccountId__r.Name =='Asset Account')OR($.Config.Account.Name == 'Account_1', $.Config.Account.Name =='Asset Account')Replace Salesforce object and field references with platform names

4: Value Transformation Part Of the String And Replace by Lookup ID

Object Name: productattributeruleaction (TargetAttribute)

Purpose: Replace string references with lookup IDs from related objects.

Source ValueTarget ValueTransformationsRule Name
Apttus_Config2__ProductAttributeValue__c.Product_Extension_Attribute_Id__r.Auto_Config_Ext_Number__cLookup ObjectReplace string with lookup Object if matching attribute existsProductAttributeRuleActionFilter

5: Value Transformation From Salesforce Id to Platform Id

Object Name: productattributerule (ProductGroupScope, ProductScope)

Purpose: Convert Salesforce IDs to platform IDs and add missing picklist values.

Rule NameSource ValueTarget ValueTransformations
SalesforceIdFilterSalesforceIdPlatformIdConvert Salesforce ID to platform ID

6: Value Transformation From Salesforce Id to Platform Id using a Pattern

Object Name: ApprovalGroupMember (AssigneeId)

Purpose: Sync field data without changes, but transform specific data when the string contains a Salesforce ID. Convert the Salesforce ID to a Platform ID based on a defined pattern:
  • If the ID starts with 005 (indicating a User lookup), generate the Platform ID by applying an MD5 hash on the combination of the External ID and the Org ID.
  • For all other cases, generate the Platform ID by applying an MD5 hash on the external ID alone.
Rule NameSource ValueTarget ValueTransformations
SalesforceIdPatternBasedFilterSalesforceIdPlatformIdConverted to Platform Id (Guid)

7: Transforming Value from Salesforce object/fields to Platform Objectfields

Object Name: PriceDimension, productattributegroup

Purpose: Convert Salesforce object and field names to platform equivalents and add missing picklist values.

Rule NameSource ValueTarget ValueTransformations
SimpleMetadataFilterApttus_Config2__LineItem__cLineItemReplace Salesforce object and field names with platform equivalent names

8: Mapping roles in platform based upon object permission set in Salesforce

Object Name: User (Role)

Purpose: Assign platform roles based on Salesforce object permissions.

Rule NameSource ValueTarget ValueTransformations
DefaultRoleTransformationFilter[ { "ObjectPermissions": [ { "ObjectName": "Apttus_Config2__PriceList__c", "Permissions": [ "CREATE", "UPDATE" ] }, { "ObjectName": "Apttus_Config2__ProductConfiguration__c", "Permissions": [ "CREATE", "UPDATE" ] }, { "ObjectName": "Apttus__APTS_Agreement__c", "Permissions": [ "CREATE", "UPDATE" ] }, { "ObjectName": "Apttus__APTS_Template__c", "Permissions": [ "CREATE", "UPDATE" ] } ], "Alias": "atest", "Currency": "USD", "Email": "james@conga.com.invalid", "ExternalId": "0053h000005gBLUAA2", "FirstName": "Authentication", "Id": "13bcaf4b-3f74-64af-c358-dbdb7a7888e4", "Language": "en_US", "LastName": "Test", "Locale": "en_US", "Name": "Authentication Test", "SmallPhotoUrl": "/profilephoto/005/D", "Timezone": "America/Los_Angeles" } ][ { "Role": { "Id": "c2154b0f-3c90-44df-81bf-ccb55e43a221", "Name": "CongaRLCAdministrator" }, "Alias": "atest", "Currency": "USD", "Email": "james@conga.com.invalid", "ExternalId": "0053h000005gBLUAA2", "FirstName": "Authentication", "Id": "13bcaf4b-3f74-64af-c358-dbdb7a7888e4", "Language": "en_US", "LastName": "Test", "Locale": "en_US", "Name": "Authentication Test", "SmallPhotoUrl": "/profilephoto/005/D", "Timezone": "America/Los_Angeles" } ]Map permissions to platform roles

9: Removes the empty Node during upload

Object Name: User Object

Purpose: Remove empty nodes from data during upload.

Rule NameSource ValueTarget ValueTransformations
RemoveEmptyNodeTransformationFilter{ "Id": "13bcaf4b-3f74-64af-c358-dbdb7a7888e4", "Locale": "" }{"Id": "13bcaf4b-3f74-64af-c358-dbdb7a7888e4" }Remove empty node

10: Converts decimal to integer by ignoring the value after dot

Object Name: Numeric Fields

Purpose: Convert decimal values to integers by truncating fractional part.

Rule NameSource ValueTarget ValueTransformations
DecimalToIntegerTransformationFilter123.45123Remove fractional part

11: Adds Field Name attribute if missing and assigns default value

Object Name: Generic Object

Purpose: Add default value if field name is missing or null.

Rule NameSource ValueTarget ValueTransformations
AddDefaultValueTransformationFilter{ "Name": "", "Id": "13bcaf4b-3f74-64af-c358-dbdb7a7888e4" }{ "Name": "Test-13bcaf4b-3f74-64af-c358-dbdb7a7888e4", "Id": "13bcaf4b-3f74-64af-c358-dbdb7a7888e4" }Add default value in {objectName}-{Id} format

12: Transforms all address fields into single Address Field

Object Name: Account Object

Purpose: Merge sub-address fields into one comma-separated address.

Rule NameSource ValueTarget ValueTransformations
AddressTransformationFilter{ "Id": "7ca838db-3e2b-4299-939b-f09d878f5166", "Name": "Test Name", "BillingStreet": "Test Street Value", "BillingCity": "Test City Value", "BillingState": "Test State Value", "BillingCountry": "Test Country Value", "BillingPostalCode": "Test PostalCode Value", "ExternalId": "0b36b92f-f83a-480c-a8b0-6cdaabba342e" }{ "Id": "7ca838db-3e2b-4299-939b-f09d878f5166", "Name": "Test Name", "BillingAddress": "Test Street Value, Test City Value, Test State Value, Test Country Value - Test PostalCode Value", "ExternalId": "0b36b92f-f83a-480c-a8b0-6cdaabba342e" }Merge all sub-address fields into one

13: Transform and update field expression to User/Queue/Null

Object Name: ApprovalMemberType

Purpose: Update field expression based on ID prefix.

Rule NameSource ValueTarget ValueTransformations
ApprovalMemberTypeTransformationFilter{ "ExternalId": "0053h000005gBLUAA2", "Name": "Authentication", "Id": "13bcaf4b-3f74-64af-c358-dbdb7a7888e4", "ValueExpression": "00GABCDUIYIKHJ" }{ "ExternalId": "0053h000005gBLUAA2", "FirstName": "Authentication", "Id": "13bcaf4b-3f74-64af-c358-dbdb7a7888e4", "ValueExpression": "Queue" }If starts with "005" → User, "00G" → Queue

14: Mapping CLM roles in platform based upon object permission set in Salesforce

Object Name: CLM Profile

Purpose: Assign default CLM roles based on profile name.

Rule NameSource ValueTarget ValueTransformations
DefaultCLMRoleTransformationFilterApttus__Profile_Name__c: "System Administrator"{ "Apttus__Profile_Name__c": "System Administrator", "Role": { "Id": "c2154b0f-3c90-44df-81bf-ccb55e43a221", "Name": "CongaCLMUser" }Assign default CLM role

15: Assigns User Role based upon lookup object matching with list of default users

Object Name: Agreement Object

Purpose: Match the ID with the user list and assign the matching user name. If no match is found, assign the default user.

Rule NameSource ValueTarget ValueTransformations
DefaultUserTransformationFilter{ "Owner": { "Id": "a13153f3-1dd0-4984-8e32-8c6c09a238f2", "Name": null } }{ "Owner": { "Id": "a13153f3-1dd0-4984-8e32-8c6c09a238f2", "Name": "adminFirst" } }Match the ID to the user list and assign the user name. If no match is found, assign the default user.

16: Transformations of Locale values

Object Name: User Object

Purpose: Replace hyphen with underscore and remove invalid locales.

Rule NameSource ValueTarget ValueTransformations
LocaleTransformationFilteruz_Latn_UZuz-Latn-UZReplace underscores with hyphens

17: Transforms field value by removing leading/trailing backslash and single quotes

Object Name: Generic Object

Purpose: Remove any leading and trailing backslashes (\) and single quotation marks (') from the field value.

Rule NameSource ValueTarget ValueTransformations
ReplaceValueTransformationFilter'Self-Service Support'Self-Service SupportRemoved quotation marks from Self-Service Support.

18: Transforms Salesforce-specific field names to RLP field names and XML values

Object Name: RetentionPolicy

Purpose: Update XML field names to platform equivalents.

Rule NameSource ValueTarget ValueTransformations
SalesForceCustomAPIFilter <FieldName>Apttus__Agreement_Category__c</FieldName> <FieldName>AgreementCategory</FieldName> Replace Salesforce field names in XML

19: Transforms List of Salesforce IDs into Platform IDs

Object Name: ApprovalRule (BusinessObject)

Purpose: Convert list of Salesforce ID list to platform GUIDs.

Rule NameSource ValueTarget ValueTransformations
SalesforceIdFilterArrayAsString["a0o8B000000Q06CQAS","a0o8B000000Q06CQAS"]["4ac4e82c-fef9-9b87-69cc-4840d9964802","29c9e82c-fef9-9b87-69cc-4840d9964802"]Convert list of Salesforce IDs to platform GUIDs

20: Transforms and update Local Id based upon template locale string values

Object Name: Template Locale

Purpose: Replace locale string with platform GUID.

Rule NameSource ValueTarget ValueTransformations
TemplateLocaleFilterLocale: "Russian"Locale: "f1b2dd6d-afbb-40f0-b24b-a6fa6e11afa6"Replace locale with GUID

21: Converts GMT time zones to UTC time zones

Object Name: User Object

Purpose: Convert GMT to UTC.

Rule NameSource ValueTarget ValueTransformations
TimezoneTransformationFilterTimezone: "GMT"Timezone: "UTC"Replace GMT with UTC

22: Converts Salesforce string to multipicklist array

Object Name: BackupDelegateApprover (DelegateUserIds)

Purpose: Convert comma-separated string to array and map IDs.

Rule NameSource ValueTarget ValueTransformations
StringToMultiPickListFilter"0053Z00000KBNzbQAH,0051U000002zBhiQAE"["f3df3680-5ba8-c287-9f5f-3e1f4daf8719","68ea43a2-32d1-dcdb-4a2a-b869f901e1bb"]Convert to array and map IDs

23: Converts Salesforce array string to multipicklist array

Object Name: Any object that contains a multi-select picklist field.

Purpose: Converts Salesforce array strings into multi-picklist values. Salesforce ID values are converted to Platform GUIDs, and text values are converted to Platform standard values. The converted values are then added to the multi-picklist field in the schema.

Rule NameSource ValueTarget ValueTransformations
MultiPickListFieldExpressionFilter[ "Control_type__c", "Rated_Current_rms__c"][ "Control_type_c", "Rated_Current_rms_c"]Convert IDs to GUIDs

24: Transforms Salesforce expression to platform-supported expression

Object Name: ProcessStep (DisplayFieldNames)

Purpose: Remove namespace and update field names.

Rule NameSource ValueTarget ValueTransformations
MultiFieldExpressionFilterAND($.Apttus_Config2__BaseCost__c > 10, TEXT($.Apttus_Config2__AttributeValueId__r.Apttus_Config2__Color__c) == 'Red')AND($.BaseCost > 10, TEXT($.AttributeValue.Color) == 'Red')Remove namespace and update field names

25: Transforms Salesforce Id to platform lookup object

Object Name: Any Object

Purpose: Convert Salesforce ID to platform lookup object.

Rule NameSource ValueTarget ValueTransformations
ExternalIdToLookupFilter{"BusinessObject": "a0o8B000000Q06CQAS"}{"BusinessObject": {"Name": "", "Id": "29c9e82c-fef9-9b87-69cc-4840d9964802"}}Convert ID to lookup object