> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clinia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Built-in Processors

> Catalog of processors available out of the box in Clinia ingestion pipelines

export const WorkInProgress = ({children}) => {
  const workInProgressSvg = <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 30" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="lucide lucide-construction-icon lucide-construction">
      <g transform="translate(-4,-2)">
        <rect x="2" y="6" width="20" height="8" rx="1" />
        <path d="M17 14v7" />
        <path d="M7 14v7" />
        <path d="M17 3v3" />
        <path d="M7 3v3" />
        <path d="M10 14 2.3 6.3" />
        <path d="m14 6 7.7 7.7" />
        <path d="m8 6 8 8" />
      </g>
    </svg>;
  return <Accordion title="Coming soon" icon={workInProgressSvg}>
      {children}
    </Accordion>;
};

Built-in processors let you enrich or validate data without maintaining custom code. Combine them to prepare content for semantic search or orchestrate human review.

## Vectorizer

Transforms text into numerical embeddings so you can run hybrid search.

Configuration:

* `inputProperty` — Path to the text field or the output of a previous processor.
* `propertyKey` — Destination sub-property that stores the resulting vector.
* `provider` — Embedding provider that hosts the model.
* `modelId` — Embedding model to use.
* `dimensions` — Number of dimensions in the output vector.

```json {collectForTests=vectorizerPipeline} theme={null}
{
  "steps": [
    {
      "type": "VECTORIZER",
      "vectorizer": {
        "inputProperty": "title",
        "modelId": "text-embedding-004",
        "propertyKey": "vector",
        "provider": "google",
        "dimensions": 768
      }
    }
  ]
}
```

Use a [Schema Validator](#schema-validator) ahead of the vectorizer when you want to avoid expensive work on malformed data.

## Actionable

Design actionable steps for scenarios where automated processors cannot make the final decision.

<WorkInProgress>
  Lets you pause the pipeline and route the payload to human reviewers. Additional documentation will follow.
</WorkInProgress>

## Schema Validator

Adds an explicit validation checkpoint mid-pipeline. This reuses the rules defined in your [profiles](/explanation/data-model/profiles-relationships) and complements the implicit validation that occurs at the end.

Use it to:

* Stop the pipeline before an expensive processor when data is incomplete.
* Re-validate after a mutation step to ensure enriched data stays compliant.

```json theme={null}
{
  "steps": [
    {
      "type": "SCHEMA_VALIDATOR",
      "schemaValidator": {}
    }
  ]
}
```

## Mutating vs. enriching processors

* **Mutating** processors (Clinia Function) replace the input property with enriched data. Update your schema first so the new shape passes validation.
* **Enriching** processors (Vectorizer) add derived properties under `enrichedProperties`. They keep the original field intact while making extra data available to partitions.

Plan processor order accordingly and consult [pipeline basics](/explanation/ingestion-pipeline/basics#dataflow-through-the-pipeline) for execution semantics.
