Skip to content
Bitween AI is on the way

Platform · Visual mapping

Visual mapping that fails loudly, not silently.

The rules-based mapper turns JSON or XML into exactly what the destination expects. Rules are data you can review, previews run the pipeline’s own code, and a failing rule fails the exchange with its reason.

Subscriptions / Northwind → ERP / Transformation

Source · JSON sample

{
"order": {
"id": "SO-10482",
"customer": "Northwind Retail",
"status": "S",
"date": "12/09/2026",
"lines": [
{ "sku": "NW-2201", "qty": 12 },
{ "sku": "NW-3150", "qty": 0 }
]
}
}

Rules

Output · XML preview

<PurchaseOrder>
<Reference>SO-10482</Reference>
<Customer>NORTHWIND RETAIL</Customer>
<Account>NW-4471</Account>
<Status>Shipped</Status>
<OrderedOn>2026-09-12</OrderedOn>
<Item>
<Sku>NW-2201</Sku>
<Quantity>12</Quantity>
</Item>
</PurchaseOrder>

Field rules

Values from a path, the document root, a fixed literal, a partner property or a global value set.

Transforms

upper, lower, trim, substring, replace, concat, round, multiply, add, formatDate and defaultIfEmpty.

Lookups and types

Replace values from a table with a fallback, then convert to string, number or boolean.

List rules

Walk arrays with filters, nest lists, add fixed entries, or make the whole output an array.

XML both ways

Attributes, mixed text, repeated elements and namespace declarations, read and written.

Build from a sample

Paste a target sample and let the editor add rules for fields not yet mapped.

The editor

Source, output and preview, side by side.

Paste a sample, drag a path onto a rule, and watch the server-side preview update. Failing rows are marked with the reason before anything is saved.

  • Click or drag paths from the source
  • Preview as a specific partner
  • Save with Ctrl+S or Cmd+S
bitween.yourcompany.com/subscriptions/mapper
Rules-based mapping editor with a source sample, the output tree of rules and a live preview

Rules are data

Reviewable, diffable, versionable.

Mapping rules are stored as JSON on the subscription. What the editor draws is exactly what the pipeline runs.

  • Rules with a newer version are refused, never guessed
  • Missing paths give null, not errors
  • Decimals throughout, so no floating-point drift
MappingRules (excerpt)json
{
  "version": 1,
  "sourceFormat": "json",
  "targetFormat": "json",
  "sourceDateOrder": "dayFirst",
  "fields": [
    { "target": ["reference"], "from": { "kind": "path", "path": "order.id" } },
    { "target": ["account"], "from": { "kind": "partner", "key": "accountNumber" } },
    { "target": ["status"], "from": { "kind": "path", "path": "order.status" },
      "lookup": { "table": { "N": "New", "S": "Shipped" }, "fallback": "Unknown" } }
  ],
  "lists": [
    { "over": "order.lines", "target": ["items"],
      "where": { "field": "qty", "operator": "greaterThan", "value": 0 },
      "fields": [ { "target": ["sku"], "from": { "kind": "path", "path": "sku" } } ] }
  ]
}

Precision by default

The details that stop bad data at the edge.

Mapping mistakes are expensive once they reach an ERP or a partner. The mapper refuses to guess.

SituationWhat the mapper does
A rule cannot be appliedThe exchange fails, listing each failing target and the reason
An ambiguous date like 03/04/2026Refused unless the source date order is set to dayFirst or monthFirst
100 × 1.16Exactly 116, because numbers are decimals throughout, never scientific notation
A boolean like "maybe"The rule fails; only true/false, 1/0, yes/no, y/n are accepted
XML with a DTD or deeper than 64 levelsRefused

Documentation

Written from the source code.

Every claim on this page links to documentation that is synced from the Bitween repository.

Put every integration on one governed pipeline.

Talk to the architects who build Bitween about your partners, systems and message volumes, or start from the docs and run it yourself today.