Pular para conteúdo

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:

  1. Análise Focada: Visualizar apenas vendas acima de R$ 1000
  2. Segmentação: Filtrar clientes de região específica
  3. Status: Mostrar apenas pedidos pendentes
  4. Período: Filtrar dados de mês específico

Como funciona internamente?

Quando o SHEETS_FILTER é executado, o sistema:

  1. Autentica: Valida tokens OAuth2
  2. Define critérios: Especifica coluna, operador e valor
  3. Executa batchUpdate: Chama com requisição setBasicFilter
  4. Aplica filtro: Oculta linhas não correspondentes
  5. 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

  1. Vendas Altas: "Mostrar apenas vendas > R$ 5000"
  2. Região: "Filtrar clientes do estado SP"
  3. Status: "Exibir apenas pedidos 'Pendente'"
  4. 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