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
SELECTpara tomar decisões no workflow - Inserir dados com
INSERTvindos de formulários, webhooks ou outras integrações - Atualizar registros com
UPDATEem 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
- Acesse o n8n e vá em Credentials → New Credential
- Busque por Postgres
- Preencha os campos:
- Host: endereço do seu banco (ex:
localhostou IP do servidor) - Port:
5432(padrão) - Database: nome do banco
- User / Password: suas credenciais
- Host: endereço do seu banco (ex:
- Clique em Test Connection para validar
- 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
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();
{
"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:
Quer continuar aprendendo? Entre na comunidade gratuita e acesse workflows prontos, suporte direto e conteúdos exclusivos: