Skip to main content
Data mapping decides which of a send’s data fields reach the delivered push or inbox message.
You probably do not need this page. Data mapping applies only to legacy block-based templates, the ones built in the older designer. On anything else, your whole data object already reaches the device:
  • A template built in passes data through automatically. Its push and inbox settings still show a Data mapping editor, but Courier does not evaluate it. The mapping is skipped and the full data object is used.
  • A send with inline content and no template needs no mapping at all.
If your fields are not arriving and the template was built in Design Studio, data mapping is not the cause. See and check the payload in .
That leaves the legacy case. A block-based template’s push or inbox channel renders data into variables only unless mapping is on. The push data bag then carries just Courier’s tracking keys, and your own fields never leave the send.

Turn data mapping on

Open the template in the , then the channel’s settings, and go to the Data Mapping tab. It appears for push and inbox channels only. Enable it and write a mapping that builds the data object from the incoming request.
A push channel settings modal with Data Mapping selected, showing the Enabled toggle and a mapping editor that maps the incoming request to the push data payload

The push channel settings modal with the Data Mapping tab selected, showing the toggle and the mapping editor.

Pass the whole data object through:
Or name the fields, and mix in values from elsewhere on the request:
request() reads from the send request. The paths are data, profile, recipient, event, brand, and message. Courier evaluates the mapping at send time. Jsonnet is the default processing mode.

Limits & behavior

  • Legacy block-based templates only. Elemental content skips the mapping and passes the full data object through. That covers every Design Studio template and every inline content send.
  • Push and inbox only. No other channel carries a dataMappingSettings object, because no other channel has a data bag to fill.
  • An existing channel is never flipped for you. The default is seeded when a channel is created. Turning mapping off stays off.
  • A provider override always wins. A bypasses rendering, so it carries your fields whether or not the template maps anything.

FAQ

Check which designer built the template first. A Design Studio template, and a send with inline content, already pass data through. Look at the payload you sent and at your variable paths, not at mapping. Only a legacy block-based template needs Data Mapping turned on in its push or inbox channel settings.
Because the template’s content is Elemental, Courier skips the mapping and uses the full data object. The editor is a leftover surface on that channel’s settings, so there is nothing to configure. Your fields are already being passed through.
Only push and inbox have a data payload for it to fill. Email and SMS render data into content through variables.
Not on its own. Data mapping is a channel setting on the template, so it travels with the template. For a per-send payload, set the fields in a instead.