Criação de cotações usando n8n para O2C

Sou novo no n8n e estou tentando criar um workflow de geração de cotações.

Meu objetivo é:

  1. Receber detalhes do cliente (nome, email, serviço, quantidade, preço)

  2. Calcular totais automaticamente

  3. Gerar um número de cotação

  4. Criar uma cotação em PDF

  5. 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?

Oi @Sifrabasayar_12

Você pode usar este tópico como seu ponto de partida

O fluxo de trabalho gerado deve atender à maioria de suas necessidades

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.

Bem-vindo @Sifrabasayar_12!

Aqui está uma estrutura de nó limpa para isso:

  1. Disparador de formulário n8n para coletar nome do cliente, email, serviço, quantidade, preço
  2. Nó de código para calcular totais e gerar um número de cotação: "Q-" + Date.now()
  3. 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)
  4. 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.