Web Connect Incoming Data Mapping controls how incoming messages and values are transformed into Business Central fields. For each object in the incoming message structure you are able to define how data should be mapped, validated, transformed and applied to Business Central records.
Mappings are always linked to a specific object in the Incoming Data Object Tree.
Updating a mapping affects:
- The current incoming message
- All not yet validated messages
- All future incoming messages
This ensures consistency across integrations.
Where Incoming Data Mapping is used #
Incoming Data Mapping is opened directly from: Web Connect Incoming Data Web → select object → Incoming Data Mapping
Here you see:
- The incoming JSON key
- Which BC table and field it maps to
- Transformation and logic settings
- Validation behaviour
- Trigger and lookup rules
This is the primary tool for controlling how incoming data becomes actual Business Central documents.
How Incoming Data Mapping Works #
Each mapping row describes:
- Which value to read (JSON / JPath key)
- Where to write it (Table and field in Microsoft Business Central)
- How to transform it
- In which order it must run
- What happens if the record already exists
- Whether triggers or lookups should run
You can map data for any document type created by the integration. Read more about that in Web Connect Incoming Data
Mapping Basics #
These fields define fundamental mapping logic.
Basic Mapping Fields #
| Field | Description | Example |
|---|---|---|
| JSON Key Name | The incoming field or JPath | invoiceAddress.city |
| Table No. | BC table to update | 36 (Sales Header) |
| Field No. | BC field to update | 10 (Sell-to City) |
| Set Value to Record | If empty → value is not applied | Set "Stock-order" on Sales Header |
| Validation Order | Execution order; ensures dependencies | Set Item No. before Quantity |
| Execute After Underlying Objects | Runs after child objects are created | Useful for totals or record-level fields |
| On Insert Only | Only applied on new records | Use for Primary Key fields |
| Primary Key Auto Increment | Auto assigns incremental number | e.g. 10000 for Sales Line Line No. |
Value Transformations #
Used to adjust, clean, convert or calculate values.
Transformation Fields #
| Field | Description | Example |
|---|---|---|
| Numeric Sum | Sum multiple JSON values | Price Excl. VAT + VAT Amount → Unit Price Incl. VAT |
| Absolute | Converts negative to positive | -10 → 10 |
| Minus | Switches sign | 10 → -10 |
| Round Value | Rounds decimals | 12.567 → 12.57 |
| Clear Chars | Removes special characters | "ABC-123" → "ABC123" |
| Cut Out From Position | Substring starting at pos. | "SE12345" with pos 3 → "12345" |
| Max Length | Restricts string length | "This is long" → "This is" (max length 7) |
| Decode from Base64 | Converts Base64 to Blob | Incoming "aGVsbG8=" → Blob "hello" |
Lookup & Advanced Logic #
These fields retrieve or apply values from related records or templates.
Lookup and Logic Fields #
| Field | Description | Example |
|---|---|---|
| Lookup from Other Record | Fetch value from another BC table | Look up Customer Posting Group from Customer No. |
| Get Value from Dynamic Flow Field | Read FlowField dynamically | Get Item Inventory from Item table |
| Set Value from Template | Apply Object Template rules | Apply customer template based on incoming country "SE" |
| Set to External ID | Save value as External ID | Store external SKU in WC External Reference table |
| Get Value from Parent Record ID | Reads RecordID from parent | Link Sales Lines to Sales Header automatically |
| Set Value From Related Field No. | Read value from related BC field | Read Posting Group from related customer |
| Related Web Object | Link mapping to another object | Use payment object to populate payment lines |
| Related JSON Key Name | Incoming key identifying related object | "payment.capture.amount" |
| Value From Content Field No. | Read value from WCM Content table | Get timestamp from content metadata |
Triggers #
These fields is regarding triggering other messages or actions.
Trigger Fields #
| Field | Description | Example |
|---|---|---|
| Trigger Outgoing Data | Push outbound update | Trigger a stock update when inventory changes |
| Trigger Download with Ext. ID | Create download job | Download order lines for order ID "12345" |
| Activate Poll for Download | Start interval polling | Automatically poll WMS for shipment updates |
| Deactivate Poll for Download | Stop interval polling | Stop polling when order completes |
Uniqueness & Filtering #
Uniqueness and Filtering Fields #
| Field | Description | Example |
|---|---|---|
| Unique Identifier | Used to detect duplicates | SKU used to check if Item exists |
| Unique Identity Action | What to do when duplicate found | Update record / Ignore / Raise Error |
| Case Sensitive Filter | Use case-sensitive matching | "SKU123a" ≠ "SKU123A" |
| As Is Filter | Exact value filtering | "A*B" treated literally, not as filter |
| No. Series Identifier | Select number series | Choose number series for Customer No. |
Additional Record Logic #
Additional Fields #
| Field | Description | Example |
|---|---|---|
| Integration Variable | Reads or writes variables | Store Order ID for later use |
| Update Integration Value | Update variable after processing | Update last processed timestamp |
| Ignore if Blank | Prevent overwriting with blank | Skip blank address field updates |
| No Validation | Skip BC field validation | Set item attributes without validation |
| Source Identifier | Identifies message source | "CENTRA", "SHOPIFY" or "Sitoo POS" |
| Document Totals Function | Controls totals validation | Run totals when all lines are imported |
| Document Release Condition | Release doc only if condition true | Release order only if "readyToShip" = true |
| Is Object | Treat value as object | Parse nested JSON as structured object |
| Is Array | Treat value as array | Expected list of lines, vouchers, etc. |
Examples #
Mapping incoming city to Sell-to City #
JSON Key: invoiceAddress.city
Table No.: 36 (Sales Header)
Field No.: 10 (Sell-to City)
Validation Order: 10
Mapping SKU to Item No. on Sales Line #
JSON Key: products[*].sku
Table No.: 37 (Sales Line)
Field No.: 6 (No.)
Set Value to Record: Enabled
Using Numeric Sum to combine price + VAT #
JSON Keys:price.exVat, price.vatAmount
Result: BC unit price including VAT
Best Practices #
- Always adjust mapping from the Incoming Data view, not from Web Objects
- Start with fields required for Business Central table validation
- Use Validation Order to control dependency chains
- Use Condition List for branching logic (e.g., store type → customer mapping)
- Use Text Mapping for translating codes and identifiers
- Avoid overwriting fields by enabling Ignore if Blank
- For lines: always set Primary Key Auto Increment for Line No.
- Keep mapping minimal and only map fields actually needed
11. Related Documentation #
📄 Web Connect Condition List LÄNK
📄 Web Connect Text Mapping LÄNK
📄 Web Connect Object Templates LÄNK
📄 Web Connect Incoming Data Web