SHEETS_FILTER - Filtrar Dados do Google Sheets
O que é este Node?
O SHEETS_FILTER é o node responsável por aplicar filtros de visualização no Google Sheets, ocultando linhas que não atendem aos critérios definidos.
Por que este Node existe?
Filtros permitem focar em subconjuntos de dados. O SHEETS_FILTER existe para:
- Análise Focada: Visualizar apenas vendas acima de R$ 1000
- Segmentação: Filtrar clientes de região específica
- Status: Mostrar apenas pedidos pendentes
- Período: Filtrar dados de mês específico
Como funciona internamente?
Quando o SHEETS_FILTER é executado, o sistema:
- Autentica: Valida tokens OAuth2
- Define critérios: Especifica coluna, operador e valor
- Executa batchUpdate: Chama com requisição setBasicFilter
- Aplica filtro: Oculta linhas não correspondentes
- Retorna confirmação: Informa sucesso
Código interno (baseado na API Google Sheets):
case 'filter':
const filterResult = await sheets.spreadsheets.batchUpdate({
spreadsheetId: data.spreadsheetId,
requestBody: {
requests: [{
setBasicFilter: {
filter: {
range: {
sheetId: data.sheetId,
startRowIndex: data.startRow,
endRowIndex: data.endRow,
startColumnIndex: data.startColumn,
endColumnIndex: data.endColumn,
},
criteria: {
[data.filterColumn]: {
condition: {
type: data.conditionType, // 'TEXT_CONTAINS', 'NUMBER_GREATER', etc
values: [{ userEnteredValue: data.filterValue }],
},
},
},
},
},
}],
},
});
return {
success: true,
message: 'Filter applied successfully',
};
Quando você DEVE usar este Node?
Use SHEETS_FILTER quando precisar visualizar subconjunto de dados:
Casos de uso
- Vendas Altas: "Mostrar apenas vendas > R$ 5000"
- Região: "Filtrar clientes do estado SP"
- Status: "Exibir apenas pedidos 'Pendente'"
- Período: "Filtrar vendas de Janeiro/2025"
Quando NÃO usar SHEETS_FILTER
- Deletar linhas: Use NODE SHEETS_DELETE
- Extrair dados: Use NODE SHEETS_READ com lógica externa
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | string | Sim | Deve ser "filter" |
| spreadsheetId | string | Sim | ID da planilha |
| sheetId | number | Sim | ID da aba |
| startRow | number | Sim | Linha inicial |
| endRow | number | Sim | Linha final exclusiva |
| startColumn | number | Sim | Coluna inicial |
| endColumn | number | Sim | Coluna final exclusiva |
| filterColumn | number | Sim | Coluna a filtrar (base 0) |
| conditionType | string | Sim | Tipo: TEXT_CONTAINS, NUMBER_GREATER, etc |
| filterValue | string | Sim | Valor do filtro |
| accessToken | string | Sim | Token OAuth2 |
| refreshToken | string | Sim | Token OAuth2 refresh |
Exemplo 1: Filtrar Vendas Altas
Objetivo: Mostrar apenas vendas acima de R$ 5000
JSON para Importar
{
"name": "Filtrar Vendas > 5000",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "sheets_1",
"type": "google_sheets",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Aplicar Filtro",
"parameters": {
"operation": "filter",
"spreadsheetId": "1Vendas_XYZ",
"sheetId": 0,
"startRow": 0,
"endRow": 1000,
"startColumn": 0,
"endColumn": 5,
"filterColumn": 3,
"conditionType": "NUMBER_GREATER",
"filterValue": "5000",
"accessToken": "{{google_access_token}}",
"refreshToken": "{{google_refresh_token}}"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "🔍 Filtro aplicado: vendas > R$ 5000"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "sheets_1" },
{ "source": "sheets_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada:
Sistema: 🔍 Filtro aplicado: vendas > R$ 5000
Resposta do Node
{
"success": true,
"message": "Filter applied successfully"
}
Boas Práticas
✅ SIM: - Use filtros para análises temporárias - Combine com SHEETS_SORT para melhor visualização - Documente critérios de filtro aplicados
❌ NÃO: - Não confunda filtro (ocultar) com delete (remover) - Filtros são visuais, não alteram dados
Dicas
💡 Dica 1: Tipos de condição comuns: - TEXT_CONTAINS, TEXT_NOT_CONTAINS - NUMBER_GREATER, NUMBER_LESS, NUMBER_EQUAL - DATE_BEFORE, DATE_AFTER
💡 Dica 2: Filtros são visualizações. Os dados continuam na planilha, apenas ocultos.
Próximo Node
→ SHEETS_SORT - Ordenar dados filtrados → SHEETS_READ - Ler dados filtrados