Beranda/Artikel /Tutorial
Tutorial

Cara Menghubungkan n8n dengan PostgreSQL

ClovertechnoClovertechno 15 September 2026 4 menit baca

Ada titik dalam pertumbuhan bisnis ketika spreadsheet mulai menyerah: puluhan ribu baris, beberapa orang menulis bersamaan, dan aplikasi kasir atau sistem internal yang butuh data yang sama. Di titik itu data pindah ke database sungguhan — biasanya PostgreSQL. Kabar baiknya, otomasi yang sudah Anda bangun tidak ikut pensiun: n8n bicara dengan PostgreSQL sefasih ia bicara dengan Google Sheets. Yang berubah adalah taruhannya — menulis langsung ke database produksi menuntut kehati-hatian yang spreadsheet tidak pernah minta. Tutorial ini mengajarkan koneksinya beserta kehati-hatiannya.

Diagram arsitektur AI automation untuk operasional bisnis: chat, email, form, dan dokumen masuk ke orkestrator n8n, diproses AI agent yang ditopang knowledge base, lalu menghasilkan aksi sistem, dashboard, dan notifikasi ke tim
Arsitektur AI automation untuk operasional bisnis yang dipakai Clovertechno.

Kapan otomasi perlu bicara langsung ke database

Tiga situasi yang paling umum: aplikasi internal Anda menyimpan data di PostgreSQL dan otomasi butuh membacanya (laporan, notifikasi ambang batas); sistem luar menyetor data yang harus mendarat di database aplikasi; atau dua sistem perlu disinkronkan berkala. Satu rambu sebelum mulai: kalau aplikasi Anda punya API, lewat API selalu lebih aman daripada menulis langsung ke tabelnya — API menjalankan validasi dan logika bisnis yang oleh tulisan langsung ke tabel akan dilompati. Akses database langsung adalah jalur yang tepat untuk membaca, dan untuk menulis hanya ketika tidak ada pintu resmi lain.

Langkah 1: Siapkan user database khusus n8n

Jangan pernah memberikan akun utama database ke alat otomasi. Buat user sendiri dengan hak sesempit tugasnya — contoh untuk kebutuhan baca-laporan plus tulis ke satu tabel penampung:

CREATE USER n8n_bot WITH PASSWORD 'password-panjang-dari-manager';
GRANT CONNECT ON DATABASE tokodb TO n8n_bot;
GRANT USAGE ON SCHEMA public TO n8n_bot;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO n8n_bot;
GRANT INSERT ON leads_masuk TO n8n_bot;

Logikanya sama dengan kunci gedung: petugas kebersihan tidak memegang kunci brankas. Kalau credential n8n suatu hari bocor, kerusakan maksimalnya sudah Anda tentukan hari ini lewat empat baris GRANT itu — bukan ditentukan penyerang.

Langkah 2: Pasang credential PostgreSQL di n8n

Di n8n: Credentials → Add credential → Postgres. Isi host, database, user n8n_bot, dan password-nya. Dua catatan jaringan yang sering jadi sandungan: kalau n8n jalan di Docker dan PostgreSQL di mesin induk yang sama, host-nya host.docker.internal, bukan localhost (localhost dari dalam container berarti container itu sendiri). Dan kalau database di server lain, pastikan sambungannya lewat jaringan privat atau SSL — pengaturan SSL tersedia langsung di form credential.

Langkah 3: Baca data dengan query SELECT

Pasang node Postgres, operasi Execute Query:

SELECT tanggal, SUM(total) AS omzet, COUNT(*) AS transaksi
FROM penjualan
WHERE tanggal = CURRENT_DATE - 1
GROUP BY tanggal;

Jalankan — hasilnya mengalir sebagai item n8n seperti biasa, siap dirangkai ke laporan harian Telegram atau ke mana pun. Semua pola yang Anda kenal dari tutorial Sheets bekerja identik; hanya sumbernya yang naik kelas. Satu kebiasaan baik: untuk query laporan yang berat, tanyakan dulu ke pemilik aplikasi apakah ada replica atau jam sepi — query analitik besar yang menghantam database produksi di jam sibuk memperlambat aplikasi yang dipakai pelanggan.

Langkah 4: Tulis data dengan aman lewat parameter

Saat menulis, ada satu aturan yang tidak boleh dilanggar: jangan pernah menempelkan nilai dari luar langsung ke dalam teks query. Query yang dirakit dari sambungan string terbuka untuk SQL injection — data masuk berisi tanda kutip saja sudah cukup untuk merusak query, dan yang berniat jahat bisa lebih jauh. Pakai parameter:

INSERT INTO leads_masuk (nama, email, sumber)
VALUES ($1, $2, $3);

dengan nilai-nilainya diisi lewat opsi Query Parameters di node, dipetakan dari data workflow. Database menerima nilai sebagai data murni, bukan sebagai bagian perintah. Lengkapi dengan dua pengaman dari keluarga tutorial ini: validasi bentuk data sebelum INSERT (pola karantina dari tutorial error handling), dan untuk operasi yang mungkin terulang, rancang supaya aman diulang — misalnya ON CONFLICT DO NOTHING pada kolom unik, supaya webhook yang mengirim dua kali tidak menciptakan baris ganda.

Risiko menulis langsung ke database produksi

Ditutup dengan daftar yang sebaiknya dibaca dua kali. UPDATE atau DELETE tanpa WHERE mengubah seluruh tabel — biasakan menulis klausa WHERE lebih dulu, baru bagian lainnya. Menulis melewati logika aplikasi bisa menghasilkan data yang oleh aplikasi dianggap mustahil; koordinasikan setiap tabel yang Anda tulisi dengan pemilik aplikasinya. Backup bukan opsional — sebelum otomasi tulis pertama Anda aktif, pastikan database punya backup rutin yang teruji. Dan untuk perubahan besar sekali jalan (migrasi, koreksi massal), jangan lakukan lewat workflow otomasi sama sekali; itu pekerjaan skrip yang diawasi manusia.

Kalau arsitektur data Anda sedang berada di persimpangan ini — spreadsheet yang kehabisan napas, database yang mulai dibutuhkan banyak sistem — percakapan desainnya layak dilakukan sebelum baris pertama ditulis. Tim software kami membangun sistem dengan database yang dirancang benar sejak awal, dan tim automation kami menyambungkan semuanya.

n8npostgresqldatabasetutorial

Butuh software atau AI automation untuk bisnis Anda?

Ceritakan prosesnya, kami bantu petakan solusinya. Konsultasi awal gratis, tanpa komitmen.

Chat WhatsApp