> This page is for version v2026-02-09 (default).
> For other versions, use one of these documentation indexes:
> - v2026-02-09 (default): https://docs.extend.ai/2026-02-09/llms.txt
> - v2025-04-21: https://docs.extend.ai/2025-04-21/llms.txt
> - v2024-12-23: https://docs.extend.ai/2024-12-23/llms.txt

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.extend.ai/llms.txt
> Use this file to discover all available pages before exploring further.
>
> ## API version
> The current API version is `2026-02-09`, served at the site root (no version prefix in URLs).
> If this page URL contains `/2025-04-21/` or `/2024-12-23/`, you are reading an older API version.
> Prefer the current docs at https://docs.extend.ai/llms.txt unless the user explicitly needs that older version.
> Do not treat older-version pages as the source of truth for new integrations.

# External Data Validation Step

> How to leverage the External Data Validation step in a workflow.

The External Data Validation step is a powerful tool that allows you to validate data within a workflow against your own system, provided
that your system exposes an API for Extend to interact with.

As of now, there are two primary use cases for this step:

1. **Confidence Validation**: Instead of relying purely on our AI based confidence scoring, you can match document data against your own system to determine if the data is realistic or not, and return a flag(s) accordingly.
   The flag(s) returned can then be used within a Conditional step to control workflow logic, for instance to route documents with low confidence to a human for review.
2. **Supplementary review data**: You can use the External Data Validation step to pull in additional data from your system to be used in the review process, available to the reviewer in the Review UI.

## Via the API

In a workflow definition the step is `type: "EXTERNAL_DATA_VALIDATION"`. `requestOptions` describes the HTTP call Extend makes with the run's extracted data; `failureBehavior` decides what happens when your endpoint errors. The step can be created without `config`, but `config` is required before the workflow can be deployed.

```json
{
  "name": "external_validate",
  "type": "EXTERNAL_DATA_VALIDATION",
  "config": {
    "requestOptions": {
      "url": "https://api.example.com/validate",
      "method": "POST",
      "headers": { "x-api-key": "secret" },
      "contentType": "application/json"
    },
    "failureBehavior": "EXIT"
  },
  "next": [{ "step": "review" }]
}
```

Downstream steps read the response at `{{external_validate.output.response.data}}` (the step `name` followed by `.output.response.data`). For the full field list and how to deploy the definition, see [External Data Validation in the step reference](/workflows/configuring-workflows#external-data-validation).

## Via Extend Studio

To configure the External Data Validation step, you can start by adding the "External Data Validation" step to your workflow.

![Workflow builder step drawer with the External Data Validation step](/_fern-img/ff0f360e4c6bfb6d6cd00e4e4e115c93003517cd2fdb6b923853cfc086711444.webp)

Once you drag the step into your workflow, you can configure it by clicking on the step and then clicking on the "Configure" button.

![External Data Validation step configuration panel with URL, method, and headers](/_fern-img/a8a089045c92e1f9bd0af74352e7a8de80ccb9e8b1e1c1b00fbe07250ab655d9.webp)

**Auth Note:** In addition to being able to set `Authentication` and other headers. We will automatically include the same `extend-signature` header on the request that is used in our webhook events.
You can use to match against the webhook secret available in your Extend dashboard settings. If the `extend-signature` header value does not match your secret, you should toss out the incoming event.

You can also customize the content type of our payload to match your API's requirements:

![Content type selector for the outgoing validation request](/_fern-img/15059b99a6a54c31c01c3699bd2436299518f14b4aa8f4ef187f88f5e826a675.webp)

### Testing the request

Once you have configured the step, you can test the request by clicking on the "Save and test endpoint" button.
The window will then display the results. As long as the `data` looks correct and the `status` is `200`, you can proceed to the next step.

![Test endpoint result showing the response status and data](/_fern-img/258d84417fd528aad769a8bf03e06a1313abf379f7dd83c5a36bb94056c12606.webp)

### Using the results

The results of the External Data Validation step can be used in a Conditional step to control workflow logic,
for instance to route documents that were flagged by your external system to a human for review after the workflow run is finished.

As shown in the image below you can reference the step's output in the Conditional step using the templated execution variables: `{{externalDataValidation1.output.response.data}}`.
Depending on the shape of your response data, you will need to variable path after `data.` to access the data you need.

![Conditional step referencing the External Data Validation output variable](/_fern-img/8e7656df99e4aadfbd69a1c6e84f9f4053a1b6ecd41dc6ff02fddb366d17bf07.webp)

Generally it's easier to configure the variable enabled input after zooming in the workflow view:

![Zoomed-in view of the Conditional step variable input](/_fern-img/0483ed153881f501e86230cd83b9799d6aafb05d8a262f76685da7ca9e4ace91.webp)

### Viewing in the Review UI

After a workflow run is completed, and if it was flagged for review (or not), humans can see the output of the external data validation step in the Review UI alongside extraction and other outputs:

![Review UI showing External Data Validation output beside extraction results](/_fern-img/a31221f7a878c3667eed4fbbb390615f0f5303704bc3e458c37a520e18ee2341.webp)