# Filter Data

**Filter Data** mantiene le righe che corrispondono a una condizione (stesso builder di [If/then](https://docs.voicelogica.ai/it/workflow-nodes/if-then-decision/)). **Passed filter** vs **Did not pass**.

  <ShotPlaceholder
    src="/assets/workflow-nodes/filter.png"
    name="wn-filter"
    alt="Builder condizione Filter Data"
    capture="Nodo Filter Data. 1600×900. Builder condizione. Nessun PII."
  />

## Perché questo nodo

Un'API o [Data Table](https://docs.voicelogica.ai/it/workflow-nodes/data-table/) ha restituito molte righe. Vuole solo gli ordini aperti, poi [Repeat Actions](https://docs.voicelogica.ai/it/workflow-nodes/loop/) o un [AI Response](https://docs.voicelogica.ai/it/workflow-nodes/ai-response/).

**Needs setup** fino a quando il builder non ha un campo e un operatore.

## Prima configurazione — mantenere le righe corrispondenti

1. API o Data Table che emette un elenco.

2. **Filter Data**. Condizione su un campo stato / flag da quel nodo.

     <ShotPlaceholder
       src="/assets/workflow-nodes/filter-filled.png"
       name="filter-filled"
       alt="Filter Data compilato"
       capture="Builder workflow → Filter Data selezionato. Builder condizione con campo e operatore. 1600×900. Oscuri numeri/email/PIN."
     />

3. **Passed filter** → Loop o AI Response. **Did not pass** → una linea diversa ("nessun ordine aperto").

4. **Save & go live**. **Run test** con un payload che ha entrambi i tipi di riga.

## Come appare "rotto"

- **Needs setup** — builder vuoto.
- Tutto fallisce il filtro — il nome del campo non corrisponde al payload.

## Risoluzione dei problemi

**Filter vs If/then?**

If/then ramifica il *grafico* su un valore. Filter riduce un *elenco*, poi il grafico continua con ciò che rimane.

## Prossimi passi

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