Sou novo no n8n e estou tentando criar um workflow de geração de cotações.
Meu objetivo é:
Receber detalhes do cliente (nome, email, serviço, quantidade, preço)
Calcular totais automaticamente
Gerar um número de cotação
Criar uma cotação em PDF
Enviar a cotação ao cliente por email
Atualmente, estou confuso sobre como configurar o nó Set e passar dados entre nós. Não tenho certeza de onde devo adicionar as informações do cliente e como mapear os campos corretamente.
Alguém poderia me orientar sobre:
Quais nós devo usar para cada etapa?
Como devo estruturar o workflow?
Como posso gerar um PDF a partir dos dados da cotação?
Comece com a forma dos dados, não com o nó PDF. Crie um item de teste com os campos de cotação exatos que você precisa: customer_name, customer_email, service, quantity, unit_price, total, e quote_number.
Depois que esse item existir, o próximo nó só precisa mapear esses nomes de campo para a etapa de PDF/email. Onde os primeiros detalhes do cliente vão entrar no n8n: formulário, webhook, planilha ou item de teste manual?
Bem-vindo @Sifrabasayar_12! Para complementar o que @oimrqs_ops disse - especificamente no passo do PDF, a abordagem mais fácil no n8n é usar um nó HTML Template para construir o layout da cotação com seus campos mapeados, depois enviar esse HTML para um nó HTTP Request chamando uma API PDF gratuita como html2pdf.it ou uma instância Gotenberg auto-hospedada. A abordagem com HTML template te dá controle total sobre o design da cotação sem nenhum custo de licença extra. Para o número da cotação, gere-o em um nó Code usando algo como 'Q-' + Date.now() ou um contador sequencial armazenado em uma variável estática do workflow. Uma vez que você tenha o PDF como dados binários, anexe-o diretamente no campo de anexo do nó Gmail usando {{ $binary.data }}.
Hey @Sifrabasayar_12, para amarrar tudo junto com uma estrutura clara:
Disparo → Form Trigger ou Webhook (captura nome do cliente, email, serviço, quantidade, preço)
Calcular totais → Nó Set: adicione um campo total = {{ $json.quantity * $json.unit_price }}
Gerar número da cotação → Nó Code: retorne [{ json: { …$input.first().json, quote_number: ‘Q-’ + Date.now() } }]
Construir PDF → Nó HTML para projetar o layout da cotação usando {{ $json.customer_name }} etc., depois nó HTTP Request → html2pdf.it (gratuito, sem cadastro) para convertê-lo para PDF binário
Enviar email → Nó Gmail com To: {{ $json.customer_email }}, anexe o PDF binário do nó anterior
O ponto chave para passar dados entre nós: cada nó recebe $json do nó anterior. Use o nó Set para adicionar ou renomear campos, e eles estarão disponíveis em cada nó a seguir. Uma vez que seu item de teste tenha todos os campos definidos corretamente na etapa 1, o resto apenas mapeia esses mesmos nomes de campo.
Disparador de formulário n8n para coletar nome do cliente, email, serviço, quantidade, preço
Nó de código para calcular totais e gerar um número de cotação: "Q-" + Date.now()
Para o PDF - o caminho mais fácil e amigável para iniciantes é Google Docs: crie um documento de modelo com placeholders como {{customer_name}}, {{total}}, use o nó Google Docs (operação Replace Text) para preenchê-los, depois exporte para PDF via nó Google Drive (operação Download, defina o formato de saída como PDF)
Nó Gmail para enviar o email com o PDF exportado como anexo
Comece testando apenas os passos 1 e 2 primeiro para garantir que seus campos estejam estruturados corretamente antes de adicionar a etapa de PDF.