Categoria: n8n | Automação | Banco de Dados
Tempo de leitura: 5 min


Introdução

A maioria dos tutoriais de n8n mostra automações simples: enviar e-mail, postar no Slack, mover dados entre planilhas. Mas quando você precisa de algo mais robusto — persistir dados, consultar registros históricos, cruzar informações de sistemas diferentes — você precisa conectar sua automação a um banco de dados real.

Neste artigo (baseado no vídeo completo no YouTube), você vai aprender como integrar o n8n ao PostgreSQL para executar operações reais de leitura e gravação dentro dos seus workflows.


Por que usar PostgreSQL com n8n?

O n8n possui um node nativo para PostgreSQL. Isso significa que sem precisar escrever código ou montar integrações complexas, você consegue:

  • Buscar registros com SELECT para tomar decisões no workflow
  • Inserir dados com INSERT vindos de formulários, webhooks ou outras integrações
  • Atualizar registros com UPDATE em tempo real
  • Executar queries customizadas para casos avançados

Isso transforma o n8n de uma ferramenta de “colar APIs” em um orquestrador de sistemas de verdade.


Pré-requisitos

Antes de começar, você vai precisar de:

  • n8n rodando (cloud ou self-hosted em VPS/Docker)
  • Um banco de dados PostgreSQL acessível via rede
  • Usuário e senha com permissão de leitura/escrita no banco

Passo 1 — Configurando as Credenciais do PostgreSQL no n8n

  1. Acesse o n8n e vá em Credentials → New Credential
  2. Busque por Postgres
  3. Preencha os campos:
    • Host: endereço do seu banco (ex: localhost ou IP do servidor)
    • Port: 5432 (padrão)
    • Database: nome do banco
    • User / Password: suas credenciais
  4. Clique em Test Connection para validar
  5. Salve a credencial⚠️ Dica de segurança: nunca deixe credenciais de banco de produção expostas. Use variáveis de ambiente ou ferramentas como o Doppler para gerenciar segredos.

Passo 2 — Lendo Dados com SELECT

Adicione o node Postgres no seu workflow e configure:

  • Operation: Execute Query
  • Query:
sqlSELECT * FROM clientes WHERE ativo = true LIMIT 10;

O resultado volta como um array de objetos JSON, pronto para ser usado nos próximos nodes do workflow.


Passo 3 — Gravando Dados com INSERT

Para inserir dados (vindos de um webhook, formulário ou outra fonte):

  • Operation: Insert
  • Table: nome da tabela
  • Columns: mapeie os campos do item para as colunas do banco

O n8n monta o INSERT automaticamente com base nos dados do item atual — sem precisar escrever SQL manualmente.


Passo 4 — Atualizando Registros com UPDATE

  • Operation: Update
  • Table: sua tabela
  • Update Key: coluna usada como referência (ex: id)

Ideal para casos como: marcar um lead como “contatado”, atualizar status de um pedido, registrar a última execução de um processo.


Caso de Uso Real

Um exemplo prático mostrado no vídeo: um workflow que recebe dados via webhook, valida as informações, grava um novo registro no PostgreSQL e retorna uma resposta confirmando a operação — tudo em menos de 1 segundo, sem nenhuma linha de código.

Esse padrão pode ser aplicado em:

  • Sistemas de agendamento de clínicas
  • Captura e qualificação de leads
  • Logs de auditoria de sistemas
  • Integração entre sistemas legados
javascript
const { Client } = require('pg');

const connectionString = '[[URL DE CONEXÇÃO DO SEU BANCO DE DADOS]]';

const client = new Client({ connectionString });

async function main() {
  try {
    await client.connect();
    console.log('Conectado ao banco de dados PostgreSQL.');

    const createTableQuery = `
      CREATE TABLE IF NOT EXISTS clientes (
        id SERIAL PRIMARY KEY,
        nome TEXT NOT NULL,
        email TEXT NOT NULL UNIQUE,
        telefone TEXT,
        criado_em TIMESTAMP WITH TIME ZONE DEFAULT NOW()
      );
    `;

    await client.query(createTableQuery);
    console.log('Tabela "clientes" criada ou já existente.');

    const insertQuery = `
      INSERT INTO clientes (nome, email, telefone)
      VALUES
        ($1, $2, $3),
        ($4, $5, $6),
        ($7, $8, $9),
        ($10, $11, $12),
        ($13, $14, $15),
        ($16, $17, $18),
        ($19, $20, $21),
        ($22, $23, $24),
        ($25, $26, $27),
        ($28, $29, $30)
      ON CONFLICT (email) DO NOTHING;
    `;

    const values = [
      'Ana Silva', '[email protected]', '+55 11 99999-0001',
      'Bruno Costa', '[email protected]', '+55 11 99999-0002',
      'Carla Santos', '[email protected]', '+55 11 99999-0003',
      'Daniel Lima', '[email protected]', '+55 11 99999-0004',
      'Elena Rocha', '[email protected]', '+55 11 99999-0005',
      'Fabio Alves', '[email protected]', '+55 11 99999-0006',
      'Gabriela Reis', '[email protected]', '+55 11 99999-0007',
      'Hugo Martins', '[email protected]', '+55 11 99999-0008',
      'Isabela Fernandes', '[email protected]', '+55 11 99999-0009',
      'João Pereira', '[email protected]', '+55 11 99999-0010'
    ];

    const result = await client.query(insertQuery, values);
    console.log('Inserção concluída. Registros adicionados ou ignorados se já existirem.');

  } catch (error) {
    console.error('Erro:', error.message || error);
  } finally {
    await client.end();
    console.log('Conexão encerrada.');
  }
}

main();

plain
{
  "name": "node-db-clientes",
  "version": "1.0.0",
  "description": "Script Node.js para criar tabela clientes e inserir registros no PostgreSQL",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "pg": "^8.11.0"
  }
}

Conclusão

Conectar o n8n ao PostgreSQL é mais simples do que parece e abre um nível completamente novo de possibilidades para suas automações. Você deixa de depender apenas de planilhas e passa a trabalhar com dados estruturados, persistentes e escaláveis.

Assista ao tutorial completo no YouTube para ver tudo isso sendo feito na prática:

👉 Assistir no YouTube

Quer continuar aprendendo? Entre na comunidade gratuita e acesse workflows prontos, suporte direto e conteúdos exclusivos:

👉 Entrar na Comunidade Gratuita