Transformations Guide
Transformations let you modify a source field value before it reaches the target field. They are applied inside the Mapping Studio — click the transform icon (⚡) on any mapping row to configure one.
Quick tip: A mapping can only have one transformation at a time. If you need to chain transforms (e.g. trim then uppercase), consider using a Formula or Conditional expression.
What is user-friendly today: Uppercase, Lowercase, Trim, Constant, Date Format, Lookup, and Concatenate are now guided in the UI.
What still feels technical today: Formula, Conditional, Filter, and Custom still require expressions.
Advanced fallback: Lookup still offers JSON mode for users who prefer pasting an existing lookup object.
Uppercase
When to use
Target system requires a field in ALL CAPS (e.g. status codes, country codes).
How to apply in Mapping Studio
- In Mapping Studio, select the source field and drag it to the target field.
- Click the transform icon (⚡) on the mapping row.
- Choose "Uppercase" from the transform dropdown.
- No further configuration required — save the mapping.
Example
Try It Yourself
Source field
invoice.status (e.g. "approved")
Target field
sap.header.status
Select Uppercase — no further input needed. "approved" becomes "APPROVED" automatically.
Lowercase
When to use
Target system expects values in lowercase (e.g. email addresses, slugs, enum keys).
How to apply in Mapping Studio
- Select the source field, drag to the target field.
- Click the transform icon (⚡) on the mapping row.
- Choose "Lowercase" from the dropdown.
- Save.
Example
Try It Yourself
Source field
customer.email (e.g. "JOHN@EXAMPLE.COM")
Target field
crm.contact.email
Select Lowercase — no further input needed. Useful for emails, usernames, and slugs.
Trim
When to use
Source data has leading or trailing whitespace that should not be forwarded to the target.
How to apply in Mapping Studio
- Map the source field to the target field.
- Click the transform icon (⚡).
- Select "Trim" — no config needed.
- Save.
Example
Try It Yourself
Source field
supplier.code (e.g. " SUP-001 ")
Target field
erp.vendor.code
Select Trim — no further input needed. Leading and trailing spaces are removed.
Constant
When to use
A target field must always receive the same fixed value regardless of source data (e.g. integration type, channel code).
How to apply in Mapping Studio
- In Mapping Studio, map any source field to the target field.
- Click the transform icon (⚡).
- Choose "Constant" and enter the fixed value in the "Constant value" input.
- Save.
Example
Try It Yourself
Source field
(any field — its value will be ignored)
Target field
sap.header.sourceSystem
Constant value
COUPA
← replace COUPA with the fixed value you always want the target field to receive
Every record will write COUPA to the target field regardless of the source.
Lookup
When to use
Source values must be translated to target-specific codes or labels (e.g. US → USA, EUR → Euro).
How to apply in Mapping Studio
- Map the source field (the key) to the target field.
- Click the transform icon (⚡) and choose "Lookup".
- In the lookup builder, add one row for each source value and target value pair.
- Save.
Example
Try It Yourself
Source field
invoice.currency (e.g. "USD")
Target field
sap.header.currencyCode
Lookup rows to add
USD → US_DOLLAR EUR → EURO GBP → POUND
← add one row per business value in the lookup builder. Advanced users can still switch to JSON mode if needed.
Most users should use the row builder instead of JSON.
Concat
When to use
Multiple source fields must be joined into a single target field (e.g. first name + last name → full name).
How to apply in Mapping Studio
- Create a mapping row from the first source field to the target field.
- Open the transform icon (⚡) and choose "Concatenate".
- Use "Add another source field" to select the extra fields you want to combine.
- Arrange the fields in the required order and set the separator (for example a single space for full names).
- Save and verify output in Preview.
Example
Try It Yourself
Source field
supplier.firstName, then supplier.lastName
Target field
erp.vendor.contactName
Current UI steps
- Map supplier.firstName to erp.vendor.contactName.
- Open the row and choose Concatenate.
- Use Add another source field to add supplier.lastName.
- Set Separator to a single space.
Separator
← a single space joins first and last name as "Jane Doe". Use comma-space for "Jane, Doe".
You can add, remove, and reorder source fields directly inside the Concatenate editor.
Custom
When to use
You need combined logic in one expression (for example normalize + map + condition in a single transform).
How to apply in Mapping Studio
- Map source field to target field as usual.
- Open transform editor and choose "Custom".
- Write a JS-style expression using value and record variables.
- Save and test with Preview to confirm expected output.
Example
Try It Yourself
Source field
invoice.status (e.g. " approved ")
Target field
sap.header.processingFlag
Expression
(value ?? "").toString().trim().toUpperCase() === "APPROVED" ? "READY" : "HOLD"
← this example trims whitespace, uppercases, then checks if the result is APPROVED. Replace field references and output values as needed. Use value for the source field value.
Use Custom when no single built-in transform covers your case — for example trim + uppercase + condition in one step.
Date Format
When to use
Source and target systems use different date formats (e.g. ISO date → SAP compact format).
How to apply in Mapping Studio
- Map the date source field to the target field.
- Click the transform icon (⚡) and choose "Date Format".
- Set "From format" to the format of the source date (e.g. YYYY-MM-DD).
- Set "To format" to the required target format (e.g. YYYYMMDD).
- Save.
Example
Try It Yourself
Source field
invoice.invoiceDate (e.g. "2026-04-22")
Target field
sap.header.documentDate
From format → To format
YYYY-MM-DD → YYYYMMDD
← left is the date format coming from the source, right is the format the target expects. Common tokens: YYYY = year, MM = month, DD = day.
If your source date looks like 22/04/2026 use DD/MM/YYYY as From format instead.
Filter
When to use
Source is an array and you only want values from matching elements (e.g. only invoice lines of type ITEM).
How to apply in Mapping Studio
- Map the array source path (e.g. lines.amount) to the target field.
- Click the transform icon (⚡) and choose "Filter".
- Enter the filter condition (e.g. type == 'ITEM').
- The target field receives an array of matched values.
- Save.
Example
Try It Yourself
Source field
invoice.lines.amount (array of line items)
Target field
sap.items.amount
Filter condition
lineType == 'ITEM'
← replace lineType with the field name inside each array item you want to check, and 'ITEM' with the value to match. Only matching rows flow to the target.
The source field must be an array path. The condition is checked against each element — only matching elements are passed through.
Formula
When to use
Target value is a calculated result from source data (e.g. total = amount * 2, tax = amount * rate).
How to apply in Mapping Studio
- Map the primary numeric source field to the target field.
- Click the transform icon (⚡) and choose "Formula".
- Enter the expression using value to refer to the source field value (e.g. value * 2).
- Save.
Example
Try It Yourself
Source field
invoice.netAmount (e.g. 1000)
Target field
sap.header.grossAmount
Expression
value * 1.18
← value refers to the source field above. Replace 1.18 with your own multiplier or formula. Supports +, -, *, /.
Use this for calculated fields like tax, totals, or unit conversions. For if/else logic use Conditional instead.
Conditional
When to use
The target value depends on whether the source meets a condition (if/else logic, e.g. status mapping, active/inactive toggle).
How to apply in Mapping Studio
- Map the source field to the target field.
- Click the transform icon (⚡) and choose "Conditional".
- Enter a ternary expression using value (e.g. value == 'approved' ? 'APPROVED' : 'OTHER').
- Save.
Example
Try It Yourself
Source field
invoice.status (e.g. "approved")
Target field
sap.header.status
Expression
value == 'approved' ? 'APPROVED' : 'PENDING_REVIEW'
← replace 'approved' with the value you're checking, 'APPROVED' with what to output when true, and 'PENDING_REVIEW' with what to output when false.
Format is always: condition ? output-if-true : output-if-false. Use == to compare text values.
