Ir para o conteúdo
Automação com IA no n8nTurma em andamento
Encontro 01: A primeira automação: gatilho, ação e dado

Exercício 02 · Encontro 01 · 35 minutos

A fila do dia: o fluxo que trabalha em lote

O que você vai aprender

Você vai transformar uma planilha de vinte pedidos numa tabela de dados, criar um fluxo com gatilho de horário que lê todos os pedidos novos de uma vez, separa as reclamações com uma condição e atualiza o status de cada linha. Você sai entendendo que um fluxo trabalha com muitos itens ao mesmo tempo.

Como começar

Onde
A conta do n8n. Um fluxo novo será criado no passo 2.
Conversa
O chat da reunião, para os sinais.
Pasta
O kit na Área de Trabalho: o arquivo 03-pedidos-vale-verde.csv.
Vem de
Exercício 1: tabela, formulário e expressões.
Leva para
Exercício 3: o e-mail automático. No Encontro 2, as condições ganham inteligência artificial.

Baixe antes de começar

Situação

Todo dia às 8h a Secretaria precisa olhar os pedidos que chegaram e separar o que é reclamação, que tem prazo curto, do resto, que entra na fila normal. Hoje alguém faz isso lendo um a um. O fluxo vai fazer isso para vinte pedidos de uma vez. O agendamento ficará configurado, mas não será publicado hoje.

Um nó trabalha em todos os itens de uma vez. A condição separa; a atualização registra.

Confira que 03-pedidos-vale-verde.csv está na pasta do kit. Ele tem vinte linhas fictícias com as mesmas sete colunas da tabela protocolos.

Passo a passo

6 passos · 35 min
  1. Importar os pedidos

    6 minutos. Vinte pedidos de uma vez, vindos da planilha do kit.

    Por que este passo: Um fluxo em lote precisa de lote: vinte pedidos que já chegaram, como se fosse a fila de ontem. Importar a planilha cria a tabela cheia num clique.

    Deve aparecer: A tabela pedidos com vinte linhas e sete colunas. Sinal no chat: 20 LINHAS.

    • Não achou Import CSV? Ele fica ao lado de From scratch, na caixa Create new data table. Se a conta não oferecer a importação, escreva TRAVEI 2.1 e use o plano B do fim da página.
    • As colunas saíram com nomes estranhos (column1, column2)? O My CSV file contains a header row ficou desmarcado. Apague a tabela e importe de novo, com a caixa marcada.

    O que acabou de acontecer: As sete colunas são as mesmas da tabela protocolos: um pedido é sempre o mesmo pacote, chegue pelo formulário ou pela planilha.

  2. O gatilho de horário

    Caixinha 1 de 4: Gatilho de horário

    5 minutos. Um fluxo novo, que vai rodar sozinho todo dia às 8h.

    Por que este passo: O gatilho de horário é o relógio: o fluxo acorda sozinho todo dia às 8h no fuso configurado neste fluxo. É o terceiro tipo de gatilho que você vê, depois do manual e do formulário.

    Deve aparecer: O gatilho com o relógio e o fuso America/Sao_Paulo nas configurações deste fluxo. Sinal no chat: AGENDA.

    • Ele não vai esperar até amanhã: o Execute workflow roda o fluxo na hora, para testar.

    O que acabou de acontecer: Para testar, você não espera até amanhã: Execute workflow roda na hora. Se fosse publicado, o fluxo rodaria às 8h de São Paulo, inclusive amanhã; por isso ele fica sem publicar neste exercício.

  3. Buscar os pedidos novos

    Caixinha 2 de 4: Data table: buscar os novos

    6 minutos. O nó que lê a tabela e devolve todos os pedidos com status novo.

    Por que este passo: Buscar com condição é perguntar à tabela só o que interessa: os pedidos com status novo. O fluxo trabalha em lote: o que sai daqui não é um item, são vinte.

    Deve aparecer: No OUTPUT, vinte itens, um por linha da tabela. Sinal no chat: 20 ITENS.

    • Saíram zero itens? O valor da condição está diferente de novo (minúsculo, sem espaço) ou a tabela escolhida é a protocolos.

    O que acabou de acontecer: Conte os itens no OUTPUT: vinte. Cada nó a partir daqui vai trabalhar nos vinte, um por um, sem você fazer nada.

  4. Separar as reclamações

    Caixinha 3 de 4: If: é reclamação?

    8 minutos. O nó If separa os itens em dois caminhos: true (verdadeiro) e false (falso).

    Por que este passo: O If é a primeira decisão do curso: uma condição, duas saídas. Reclamação vai para um lado, o resto para o outro. No próximo encontro, a inteligência artificial vai alimentar esta decisão lendo a descrição, em vez de uma lista.

    Deve aparecer: O If mostra duas saídas: true (verdadeiro) com as reclamações e false (falso) com o resto. Conte os itens em cada uma. Sinal no chat: SEPAROU e os dois números.

    • Tudo foi para false? Compare o valor digitado com o que está na tabela: precisa ser idêntico, inclusive o acento.

    O que acabou de acontecer: true e false não são bom e ruim: são os dois caminhos. Um item nunca vai pelos dois.

  5. Atualizar cada linha

    Caixinha 4 de 4: Data table: atualizar (true e false)

    7 minutos. Dois nós de atualização: um para as reclamações, outro para o resto.

    Por que este passo: Atualizar é fechar o ciclo: a tabela registra o que o fluxo decidiu. A condição Equals com o protocolo garante que cada item mexa só na própria linha.

    Deve aparecer: Todas as caixinhas verdes. Overview, aba Data tables, tabela pedidos: nenhum status novo, só prioridade e fila. Sinal no chat: FILA.

    • Sobrou linha com status novo? A condição do Update não achou o protocolo: confira que o valor é {{ $json.protocolo }} e não um texto fixo.
    • A tabela perdeu nome, email ou descricao? Ficaram colunas vazias em Values to Update. Deixe só status nos dois nós e reimporte o CSV numa tabela nova (ou use o plano B).

    O que acabou de acontecer: Se a condição fosse um protocolo fixo, os vinte itens atualizariam a mesma linha. A expressão é o que faz cada pacote encontrar a sua.

  6. Registre

    3 minutos. Complete as linhas do fim desta página. Não publique este fluxo hoje: amanhã às 8h ele rodaria de novo, sem pedido novo para tratar.

O que você deve ver

  • A tabela pedidos com vinte linhas importadas do CSV.
  • O fluxo Fila do dia com cinco caixinhas: gatilho, buscar, If, atualizar, atualizar.
  • As reclamações com status prioridade; o resto com status fila.

Checagem obrigatória

  • O Get devolveu vinte itens antes do If.
  • O If separou pelo campo tipo, com o valor exato Reclamação.
  • A tabela não tem mais nenhum status novo, e nome, email e descricao continuam preenchidos.
Se travarabrir
O Import CSV não aceita o arquivo.
Abra o CSV no Bloco de Notas e confira a primeira linha: protocolo,nome,email,tipo,descricao,status,criado_em. Se o Excel abriu e salvou, pode ter trocado as vírgulas por ponto e vírgula: use o arquivo original do kit.
O If não mostra as duas saídas.
Execute step com o nó aberto: as saídas só aparecem depois de rodar. Se uma saída mostra zero itens, os dados passaram todos pelo outro caminho; confira o valor Reclamação e o acento.
O Update atualizou uma linha só.
O Value da condição está fixo (um protocolo específico). Precisa ser a expressão {{ $json.protocolo }}, arrastada do INPUT.
A minha tela não tem Import CSV.
Plano B: botão Create data table, From scratch, nome pedidos, as mesmas sete colunas da tabela protocolos. Na própria tabela, use Add row (adicionar linha) e digite cinco pedidos fictícios, dois deles com tipo Reclamação e todos com status novo. O fluxo funciona igual, com cinco itens no lugar de vinte.
Cinco minutos travado.
Plano B: Create workflow; no menu de três pontos ao lado do nome do fluxo, Import e From file com 06-fila-do-dia.json do kit; escolha a tabela pedidos nos três nós Data Table; Execute workflow. O arquivo importado ganha o nome do fluxo que está dentro dele: para não ficar com dois de mesmo nome, arquive antes o seu fluxo travado (menu de três pontos, Archive).
Se você terminou antesabrir

Não avance para o próximo passo. Faça um destes testes na resposta que já tem:

  • Acrescente uma terceira regra: se a descrição contém a palavra urgente, status urgente. Dica: o If aceita mais de uma condição e o operador contains (contém).
  • Abra a aba Executions do fluxo e clique na execução: dá para ver o que cada nó recebeu e devolveu, item por item.

Leve para o seu trabalho

  • Import CSV cria a tabela pronta
  • Schedule Trigger é o relógio
  • Get com filtro busca em lote
  • If tem duas saídas: true e false
  • Update com expressão atualiza cada item

Registre o método

Complete na folha ou num bloco de notas. É o que fica quando a aula acaba.

  1. Quantos pedidos eram reclamação:
  2. O que o If faz com um item que não é reclamação:
  3. Por que não publiquei este fluxo hoje: