Loading full navigation.

Mapping fields from external sources enables Edwin AI to transform incoming event data into a compatible format. Field mappings normalize values from external monitoring tools to enable you to process, relate, and use alerts and events across the platform.

Field mappings adjust incoming event payloads before they are validated and stored. This is helpful when an external source sends valid event data, but some values need to be translated, cleaned up, or associated with correct fields. Mapped fields enable you to do the following:

  • Normalize severity values (for example, critical or warning) or vendor-specific codes.
  • Convert timestamps into the expected event time format.
  • Turn tag arrays or label strings into enrichment fields.
  • Copy or rename fields when the source uses different naming conventions.
  • Set static values or default values for fields that are missing or blank.
  • Use conditional logic to derive values from one or more source fields.
  • Standardize strings by trimming, changing case, or replacing characters.

Field Mapping Logic and Use Cases

When Edwin AI receives an external event, it checks the event source and then applies any configured field mappings for that integration. The updated payload is then validated.

The field mapping workflow proceeds through the following steps:

  1. Edwin AI receives an event.
  2. Edwin reads the event source from the event payload.
  3. It looks for configured field mappings for that integration type.
  4. Edwin maps fields in sequence, applying the updated fields to the payload.
  5. Edwin validates the transformed payload.
  6. If valid, the event continues through ingestion and enrichment processing.

If multiple mappings write to the same target field, the last mapping in the list wins.

Use field mappings when event ingestion functions properly, but the resulting fields are incomplete, inconsistent, or not formatted correctly for Edwin AI. For example, if a tool sends severity as text, but Edwin AI expects a numeric severity value.

Field mappings can also adapt an incoming payload without changing the source integration or forwarder configuration. For example, if Edwin receives tags as arrays or delimited strings, but must be enrichment fields.

Other example uses cases include the following:

  • A timestamp is present, but not in the format Edwin AI uses.
  • A required or useful field requires a default value when omitted by the source.
  • A static enrichment, category, or domain value should be added to every matching event.
  • Values such as environment, region, or application names need cleanup before use.

Notes:

  • Field mappings are applied only for supported integration types and only when the incoming event source matches the configured integration type.
  • If a mapping is misconfigured, the event may ingest with unchanged values or fail validation later. For that reason, it is best to test mappings with a small sample payload first.

Field Mapping Types

External integrations often use the following mapping types:

Mapping typeWhat it doesUse case example
VALUEmaps one string value to another valueconverting severity text such as critical to a numeric severity
DATETIMEparses an incoming timestamp and rewrites it in the expected formatnormalizing vendor timestamps for event time
JSON_ARRAYreads an array of strings and turns it into enrichment dataconverting tags into enrichment fields
DELIMITED_KV_STRINGparses a delimited key-value string into enrichment fieldshandling labels (for example, env:prod;team:api;)
COPYcopies a value from one field to anothermoving or renaming a field
SETwrites a static value to a target fieldadding a fixed domain, tier, or categorization value to matching events
DEFAULTwrites a fallback value when the target field is missing, null, or emptypopulating required fields when a source does not always send them
CONDITIONALevaluates source values and applies the first matching actiongathering severity or enrichment values from status, message text, or other source fields
STRING_TRANSFORMcleans up string valuestrimming whitespace, changing case, or replacing characters
KEY_ALIASrenames keys in a group of enrichment fieldsstandardizing vendor-specific key names

Configuring Field Mappings

  1. In Edwin AI, navigate to Settings > Integrations.
  2. Open the event integration you want to configure.
  3. Locate the fieldMappings setting.
  4. Enter the mapping definition in JSON format.
    For example, see the following mapping definition:
[{"sourceField":"entity_tags","sourcePath":"cef.sourceRecord","targetPath":"enrichments","type":"JSON_ARRAY","keyValueSeparator":":"},{"field":"eventSeverity","sourceField":"event.status","sourcePath":"cef.sourceRecord","type":"VALUE","mappings":{"CLOSED":0}}]
  1. Save the integration.
  2. Send a test event and verify the resulting fields.

Field mappings are typically used with external monitoring sources such as Datadog, Dynatrace, SolarWinds, Splunk, Cribl, and Catchpoint.

integration field mapping

Field Mapping Properties

Each mapping is a JSON object. The following properties tell Edwin AI where to read from, where to write the result, and which transformation to apply:

PropertyRequiredDefaultDescription
fieldYesNoneThe target field to write to (for example, eventSeverity, eventTime, or an enrichment key.)
typeYesNoneThe transformer to use (for example, VALUE, DATETIME, JSON_ARRAY, or KEY_ALIAS.)
sourceFieldNoSame as fieldThe incoming field to read from. Use this when the source field name differs from the target field name.
sourcePathNocefThe part of the event payload that contains the source value (for example, cef, cef.sourceRecord, and enrichments.)
targetPathNocefWhere Edwin AI writes the result. Use cef for standard event fields or enrichments for additional metadata.

Note: If a payload does not provide a sourceField value, Edwin AI reads from and writes to the same field. If sourcePath does not provide a value, Edwin AI reads from the top-level cef object.

Field Mapping Transformers

The following transformers match the shape of of incoming values from the external payload:

TransformerUse caseKey settings
VALUEUse when translating one value into another, such as vendor severity text into Edwin AI severity numbers.mappings—A JSON object maps each source value to the value Edwin AI should use
DATETIMEUse when the source sends a timestamp, but not in the format Edwin AI expects.inputFormat—The incoming date/time format in Java DateTimeFormatter pattern syntax
JSON_ARRAYUse when the source sends a JSON array, commonly for tags or labels.keyValueSeparator for arrays like env:prod
keyNamePrefix to add a consistent prefix to enrichment keys
When joining a simple array, use the enrichment field name.
DELIMITED_KV_STRINGUse when the source sends several key-value pairs in one string.entrySeparator to split each pair
keyValueSeparator to split each key from its value
(Optional) keyNamePrefix
COPYUse to copy, move, or rename a value from one field or container to another.sourceField
sourcePath
field
targetPath
(Optional)removeSource
Set removeSource to true to remove the original source field after copying.
SETUse to assign a static value every time the mapping runs.field
(Optional)targetPath
value
The value can be a string, number, or boolean.
DEFAULTUse as a fallback value only when the target field is missing, null, or an empty string.field
(Optional)targetPath
value
Existing non-empty values are not overwritten.
CONDITIONALUse to set or copy values based on a source field, such as message text, status, priority, or whether a field is present.sourceField
(Optional)sourcePath
operator
cases
(Optional)default
Supported operators: EQUALS, CONTAINS, EMPTY, and PRESENT.
Actions can use SET, COPY, or another CONDITIONAL.
STRING_TRANSFORMUse to clean up a text value before Edwin AI stores or uses it.operations (for example, TRIM, LOWER, UPPER, or REPLACE.)
For REPLACE, also include replaceFrom and replaceTo.
Edwin replaces values literally. Regex is not supported.
KEY_ALIASUse to standardize multiple enrichment key names after tags or labels have been added.mappings—a JSON object where each current enrichment key maps to its preferred key name, plus optional removeSource.