Field mappings
A field mapping defines how one target field gets its value. Each field uses one of three modes, and can optionally clean, cast, or require the value.
The three modes
| Mode | What it does | Example |
|---|---|---|
| Dynamic | Copy a value from the source, by path. | billing.email → customerEmail |
| Static | Use a fixed value you type. | "web" → channel |
| Compute | Build a value by combining source fields. | first + last name → fullName |
Transforms
A transform cleans the value before it's written:
| Transform | Effect |
|---|---|
trim | Remove leading/trailing whitespace. |
upper | Convert to UPPERCASE. |
lower | Convert to lowercase. |
number | Parse the value as a number. |
Type casting
Independently of transforms, you can cast the final value to a type: string, number, or boolean. This matters when the target system is strict — for example, NetSuite expecting a numeric quantity rather than the string "2".
Required fields
Mark a field required when the target system won't accept the record without it. This helps you catch missing data during testing instead of at runtime.
Example
| Target field | Mode | Source / value | Transform | Type |
|---|---|---|---|---|
customerEmail | Dynamic | billing.email | lower | string |
channel | Static | "web" | — | string |
total | Dynamic | order_total | number | number |
Given a source of:
{ "billing": { "email": "Sam@Example.com" }, "order_total": "19.99" }
this produces:
{ "customerEmail": "sam@example.com", "channel": "web", "total": 19.99 }
Next: handling lists of items → Loops.