# Filter Data

**Filter Data** mantiene filas que coinciden con una condición (mismo constructor que [If/then](https://docs.voicelogica.ai/es/workflow-nodes/if-then-decision/)). **Passed filter** vs **Did not pass**.

  <ShotPlaceholder
    src="/assets/workflow-nodes/filter.png"
    name="wn-filter"
    alt="Constructor de condiciones de Filter Data"
    capture="Filter Data node. 1600×900. Condition builder. No PII."
  />

## Por qué este nodo

Una API o [Data Table](https://docs.voicelogica.ai/es/workflow-nodes/data-table/) devolvió muchas filas. Usted quiere solo pedidos abiertos, luego [Repeat Actions](https://docs.voicelogica.ai/es/workflow-nodes/loop/) o una [AI Response](https://docs.voicelogica.ai/es/workflow-nodes/ai-response/).

**Needs setup** hasta que el constructor tenga un campo y un operador.

## Primera configuración — mantener filas coincidentes

1. API o Data Table que emite una lista.

2. **Filter Data**. Condición en un campo de estado / bandera de ese nodo.

     <ShotPlaceholder
       src="/assets/workflow-nodes/filter-filled.png"
       name="filter-filled"
       alt="Filter Data completado"
       capture="Workflow builder → Filter Data selected. Condition builder with field and operator. 1600×900. Redact numbers/emails/PINs."
     />

3. **Passed filter** → Loop o AI Response. **Did not pass** → una línea diferente ("sin pedidos abiertos").

4. **Save & go live**. **Run test** con una carga útil que tenga ambos tipos de fila.

## Cómo se ve cuando está "roto"

- **Needs setup** — constructor vacío.
- Todo falla el filtro — el nombre del campo no coincide con la carga útil.

## Solución de problemas

**¿Filter vs If/then?**

If/then ramifica el *grafo* en un valor. Filter reduce una *lista*, luego el grafo continúa con lo que queda.

## Próximos pasos

[Repeat Actions](https://docs.voicelogica.ai/es/workflow-nodes/loop/).  
[Data Table](https://docs.voicelogica.ai/es/workflow-nodes/data-table/).  
[If/then Decision](https://docs.voicelogica.ai/es/workflow-nodes/if-then-decision/).
