---
title: Enrich processor
description: Append data from an enrich policy to incoming documents, such as geo coordinates from an IP or account details from a user ID, with the Streams enrich processor.
url: https://www.elastic.co/docs/solutions/observability/streams/management/extract/enrich
products:
  - Elastic Cloud Enterprise
  - Elastic Cloud Hosted
  - Elastic Cloud Serverless
  - Elastic Cloud on Kubernetes
  - Elastic Observability
  - Elastic Stack
  - Elasticsearch
  - Kibana
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Generally available since 9.4
---

# Enrich processor
The **Enrich** processor adds data from an existing [enrich policy](https://www.elastic.co/docs/reference/enrich-processor/enrich-processor) to incoming documents during processing. Use it to look up and append supplemental data, such as geographic coordinates from an IP address or account details from a user ID, without modifying the original source.
Before using the enrich processor, you must have at least one enrich policy configured in Elasticsearch. Refer to [Enrich your data](https://www.elastic.co/docs/manage-data/ingest/transform-enrich/data-enrichment) for setup instructions.
To enrich documents:
1. Select **Create** → **Create processor**.
2. Select **Enrich** from the **Processor** menu.
3. Select an **Enrich policy** from the list of available policies.
4. Set **Target field** to the field where the enriched data is stored.

This functionality uses the Elasticsearch [Enrich processor](https://www.elastic.co/docs/reference/enrich-processor/enrich-processor) internally, but you configure it in Streamlang. Streamlang doesn't always have 1:1 parity with the ingest processor options and behavior. Refer to [Processor limitations and inconsistencies](/docs/solutions/observability/streams/management/extract#streams-processor-inconsistencies).

## YAML reference

In [YAML mode](/docs/solutions/observability/streams/management/extract#streams-editing-yaml-mode), configure the enrich processor using the following parameters. For the complete Streamlang syntax, refer to the [Streamlang reference](https://www.elastic.co/docs/solutions/observability/streams/management/streamlang).

| Parameter        | Type    | Required | Description                                                                    |
|------------------|---------|----------|--------------------------------------------------------------------------------|
| `policy_name`    | string  | Yes      | The name of the enrich policy to use.                                          |
| `to`             | string  | Yes      | Target field for the enriched data.                                            |
| `override`       | boolean | No       | When `true`, overwrite pre-existing non-null field values. Defaults to `true`. |
| `ignore_missing` | boolean | No       | When `true`, skip this processor if the source field is missing.               |

```yaml
- action: enrich
  policy_name: ip_location
  to: attributes.geo
  override: true
```