Changing data with config modifiers

Last updated: Oct 2, 2025
DEVELOPER
IMPLEMENTATION
PRODUCT OWNER

When exchanging data between systems, you don’t always get data exactly the way you want it. A config modifier solves this by allowing you to create conditional rules that automatically change a data payload. Whether you need to add a missing value, move a field to a different location, or delete sensitive information, config modifiers provide the flexibility to reshape data to meet your unique needs.

Config operations

Several operations run during log processing, but config operations are the fundamental part of data exchange. Learn about operations.

First, we create base configs, which contain instructions for converting data to and from the appropriate format, based on a subscription’s settings.

You can create config modifiers, which are custom instructions for processing incoming or outgoing data. Usually, the input payload is output immediately after Redox applies a base config.

Config modifiers might be independent, but they’re typically applied on top of a Redox base config.

Config modifier parts

There are three significant parts to build when you’re setting up a config modifier:

  1. flavor
  2. selector
  3. schema

Flavors

A config modifier can either write new data to or delete existing data from a payload. Usually, the output of applying a Redox base config serves as the input payload for a config modifier.

Each config modifier has a specific flavor, or type. Currently, we support two flavors:

  • The Delete flavor allows you to remove specific parts of a payload.
  • The Put flavor allows you to write data—either replacing existing data or creating new data—to specific parts of a payload.

Selectors

Config modifiers specify a selector or JSON path that points to the part(s) of a payload that you want to create, replace, or delete. Learn how to choose or write selectors.

Schemas

For Put flavors, there’s also a schema with instructions for how to build or replace data at the specified selector. The schema is built with Redox keywords. .

One config modifier can create, replace, or delete values or fields at one selector or path at a time. However, the path value might be an array with multiple values. You must create a config modifier for every selector you want to alter in a payload. Learn how to set up a config modifier.

Linking to processing stages

For a config modifier to work its magic, you must link it to:

  1. a subscription
  2. all or a set of event types within that subscription
  3. the relevant stage of log processing

You can link config modifiers to incoming or outgoing data to most log stages (learn about log stages), and so can your connection. Review the tips below for linking.

Source-managed versus destination-managed

Processing stages have two different parts for link config modifiers: one that’s source-managed and one that’s destination-managed. You can only link config modifiers to the part of the stage that your organization manages.

For example, if your organization manages the source, you can’t link a config modifier to a destination-managed part of a processing stage.

Available stages

Available log stages are determined by the type of data exchange (i.e., async or sync) and whether your organization owns either the source, destination, or both. If you own both the source and destination, you can link to all of the listed stages.

If you own the source, you can link to these source-managed processing stages:

Async traffic
Sync traffic
SEND
RECEIVE
REQUEST
RECEIVE (1st half of exchange)
RESPOND
RECEIVE (2nd half of exchange)
Available stages for async, source-owned links
Available stages for async, source-owned links
Available stages for sync, source-owned links
Available stages for sync, source-owned links

If you own the destination, you can link to these destination-managed stages:

Async traffic
Sync traffic
SEND
RECEIVE
REQUEST
RECEIVE (first half of exchange)
RESPOND
Available stages for async, destination-owned links
Available stages for async, destination-owned links
Available stages for sync, destination-owned links
Available stages for sync, destination-owned links

Before or after Redox processing

The Redox Process stage(s) happen in the middle, both going to and back from a destination. This is when we convert data into a Redox data model or Redox FHIR® resource format.

You can’t link config modifiers to Redox Process stages. That means you have to decide whether to link before or after Redox processing. The location to link depends on your selector:

  • Link before processing if the selector exists in our standard data models or FHIR® resources (i.e., your config modifier alters values, like timestamp format, or fields within the Redox format). Changes to values or formats of values are retained during Redox processing since you’re not moving fields around.
  • Link after processing if the selector doesn’t exist in our standard data models or FHIR® resources (i.e., your config modifier alters the shape of data or selectors outside of Redox formats). This is a safety precaution so that changes made by your config modifier don’t get unintentionally erased or ignored during Redox processing. Other changes that don’t fit in our standard formats might also be ignored.

Changes based on conditions

Config modifiers are schemas with keywords that define how to alter data based on certain criteria. Think of them like IF / THEN statements. If the conditions of the schema aren’t met, the config modifier isn’t applied to a log. If a config modifier is applied, there may be changes either to the shape of data, individual values, or both.

Multiple input payloads

A config modifier can have two input payloads:

  1. JSON version of the original request or response
  2. Output from a previous operation in log processing

This means you can define a config modifier that reads a value from the original payload even if that value is removed during a previous operation. The config modifier can recreate it in the processed payload at the linked processing stage.

Input and output payloads
Input and output payloads

Promoting config modifiers

During implementation, you can build and test a config modifier in a staging environment. Once you’re confident it works, you can promote it to production.

Promoting an asset saves you time and avoids introducing errors by having to rebuild it in a different environment. Learn more about asset promotion, then promote a config modifier.

Restoring config modifiers

Every time you edit a config modifier, you create a new version of the asset. If you run into errors or unexpected outcomes after editing, you can restore to a different version to help troubleshoot and find where any errors were introduced. Learn how to restore a config modifier.

Common use cases for config modifiers

Config modifiers can help with many use cases. You’ll usually find opportunities to use config modifiers during implementation testing if you or your connection don’t receive data you expect. Review common use cases and examples.