Kembali ke Blog

Tutorial n8n #9: Mengambil Data dari Form dan Menyimpannya ke Data Table

Pelajari cara membuat form intake sederhana di n8n, menerima nama, email, dan kebutuhan, lalu menyimpan submission ke Data Table internal n8n.

•
Frendi Triarista
Tutorial n8n #9: Mengambil Data dari Form dan Menyimpannya ke Data Table

Tutorial n8n #9: Mengambil Data dari Form dan Menyimpannya ke Data Table

Di tutorial n8n #9 ini, kita akan membuat workflow sederhana untuk menerima data dari form dan menyimpannya ke Data Table internal n8n.

Targetnya praktis: membuat form intake lead berisi name, email, dan kebutuhan, lalu setiap submission masuk sebagai row baru ke table bernama lead_intake.

Workflow yang akan kita buat:

n8n Form Trigger -> Data Table

Saya suka memakai pola ini sebagai langkah awal sebelum masuk ke database eksternal. Dengan Data Table, kita bisa memvalidasi proses bisnis lebih cepat: apakah field sudah cukup, apakah alur submission benar, dan apakah data yang masuk sudah sesuai. Setelah kebutuhan security, backup, audit, atau integrasi makin besar, barulah data dipindahkan ke database seperti Supabase, PostgreSQL, atau layanan lain.

Prasyarat

Sebelum mulai, pastikan:

  1. n8n sudah berjalan.
  2. Anda sudah memahami konsep node dan koneksi antar node dari tutorial sebelumnya.
  3. Tidak perlu API key atau credential eksternal.

Kapan memakai form bawaan n8n?

Form bawaan n8n cocok dipakai ketika:

  1. Anda butuh form internal yang cepat dibuat.
  2. Form digunakan untuk intake sederhana, misalnya lead, request support, feedback, atau pendaftaran event kecil.
  3. Anda belum ingin membuat frontend sendiri.
  4. Anda ingin langsung menghubungkan form ke workflow n8n.

Namun, frontend form khusus lebih tepat jika:

  1. Anda butuh desain yang mengikuti brand secara detail.
  2. Form harus memiliki autentikasi user, captcha, atau anti spam khusus.
  3. Form memiliki interaksi kompleks di sisi browser.
  4. Data bersifat sensitif dan membutuhkan kontrol keamanan lebih ketat.
  5. Volume submission sudah besar dan membutuhkan arsitektur production yang lebih matang.

Untuk tutorial ini, form bawaan n8n sudah cukup karena fokus kita adalah memahami pola dasar: input dari user, mapping data, lalu simpan ke storage.

Langkah 1: Buat workflow baru

Buat workflow baru di n8n, lalu tambahkan node berikut:

  1. n8n Form Trigger
  2. Data Table

Susun alurnya seperti ini:

n8n Form Trigger -> Data Table

Node n8n Form Trigger akan membuat halaman form dan menjalankan workflow ketika form dikirim. Node Data Table akan menyimpan data tersebut ke table internal n8n.

Langkah 2: Konfigurasi n8n Form Trigger

Tambahkan node n8n Form Trigger, lalu buat form intake sederhana.

Contoh konfigurasi field:

Field key Label Tipe Wajib
name Nama Text Ya
email Email Email atau Text Ya
kebutuhan Kebutuhan Textarea atau Long Text Ya

Catatan penting: usahakan nama field konsisten dan sederhana. Di tutorial ini saya memakai key name, email, dan kebutuhan agar mudah dipetakan ke Data Table.

Jika versi n8n Anda menyediakan tipe field email, gunakan tipe tersebut untuk membantu validasi dasar. Jika tidak tersedia, gunakan text biasa, lalu tambahkan validasi tambahan di workflow ketika masuk ke kebutuhan production.

Test URL dan Production URL

Saat memakai n8n Form, ada dua URL yang perlu dipahami:

Test URL

Gunakan Test URL saat membangun dan menguji workflow.

Biasanya Anda akan memakai salah satu cara berikut:

  1. Execute Step, n8n membuka form dan hanya menjalankan node Form Trigger.
  2. Execute Workflow, n8n membuka form dan menjalankan seluruh workflow setelah form dikirim.

Untuk tutorial ini, gunakan Execute Workflow agar data benar-benar diteruskan ke node Data Table.

Test URL berguna untuk debugging karena data submission bisa terlihat di editor n8n.

Production URL

Gunakan Production URL hanya setelah workflow sudah siap.

Sebelum membagikan Production URL, pastikan:

  1. Workflow sudah disimpan.
  2. Workflow sudah diaktifkan atau dipublish sesuai mode n8n yang Anda pakai.
  3. Anda tidak membagikan URL admin n8n.
  4. Anda memahami bahwa data dari Production URL tidak selalu tampil seperti data test di editor.

Saya sarankan jangan langsung membagikan Production URL ke publik sebelum validasi, retensi data, dan batasan akses dipikirkan dengan baik.

Langkah 3: Buat Data Table lead_intake

Sekarang buat Data Table untuk menyimpan submission.

Anda bisa membuatnya dari tab Data Tables di project n8n, atau melalui node Data Table jika versi n8n Anda mendukung pembuatan table dari workflow.

Buat table dengan nama:

lead_intake

Tambahkan kolom berikut:

Kolom Tipe yang disarankan Keterangan
name Text atau String Nama pengirim form
email Text atau String Email pengirim
kebutuhan Text atau String Kebutuhan atau pesan
submitted_at DateTime atau Text Waktu data masuk

Untuk submitted_at, kita akan mengisinya dari workflow menggunakan expression n8n:

{{$now.toISO()}}

Dengan cara ini, timestamp dibuat saat workflow berjalan. Jika Data Table Anda belum mendukung tipe DateTime sesuai ekspektasi, simpan dulu sebagai text ISO agar tetap mudah dibaca dan diproses.

Langkah 4: Konfigurasi node Data Table

Tambahkan node Data Table setelah n8n Form Trigger.

Konfigurasi utamanya:

Opsi Nilai
Resource Row
Operation Insert
Table lead_intake

Di beberapa versi UI, istilahnya bisa terlihat seperti Insert atau setara dengan menambahkan row baru. Intinya, kita ingin membuat satu row baru untuk setiap submission form.

Langkah 5: Mapping field form ke Data Table

Pada node Data Table, map nilai dari Form Trigger ke kolom table.

Gunakan expression berikut:

Kolom Data Table Expression
name {{$json.name}}
email {{$json.email}}
kebutuhan {{$json.kebutuhan}}
submitted_at {{$now.toISO()}}

Jika expression {{$json.name}} tidak menghasilkan data, buka output node n8n Form Trigger lalu cek nama key yang sebenarnya. Kadang nama field mengikuti konfigurasi field di form. Gunakan expression picker agar mapping lebih aman.

Langkah 6: Uji satu submission

Jalankan workflow dengan mode test.

  1. Klik Execute Workflow.
  2. Buka form yang muncul.
  3. Isi contoh data berikut:
Field Contoh nilai
Nama Budi Santoso
Email [email protected]
Kebutuhan Ingin konsultasi automasi form lead
  1. Submit form.
  2. Buka Data Table lead_intake.

Expected row:

name email kebutuhan submitted_at
Budi Santoso [email protected] Ingin konsultasi automasi form lead Timestamp ISO saat workflow berjalan

Jika row tersebut muncul, berarti workflow dasar sudah berhasil.

Catatan validasi dan keamanan data

Walaupun workflow ini sederhana, ada beberapa hal penting yang perlu diperhatikan.

Validasi email

Tipe field email bisa membantu validasi dasar, tetapi jangan anggap itu cukup untuk semua kasus production. Untuk kebutuhan yang lebih serius, tambahkan validasi tambahan, misalnya dengan node IF, Code, atau layanan validasi email eksternal.

Contoh validasi minimal yang bisa Anda tambahkan nanti:

  1. Email tidak boleh kosong.
  2. Email harus mengandung format yang masuk akal.
  3. Domain tertentu bisa diblokir atau diizinkan sesuai kebutuhan bisnis.

Data sensitif

Jangan gunakan form ini untuk meminta password, token, nomor kartu pembayaran, data kesehatan, atau data identitas sensitif tanpa desain keamanan yang matang.

Jika data sensitif memang dibutuhkan, pikirkan dulu:

  1. Siapa yang boleh mengakses data.
  2. Berapa lama data disimpan.
  3. Bagaimana backup dilakukan.
  4. Bagaimana data dihapus jika sudah tidak diperlukan.
  5. Apakah perlu database eksternal dengan kontrol akses yang lebih jelas.

Retensi data

Data yang masuk ke Data Table sebaiknya memiliki aturan retensi. Misalnya, lead yang sudah diproses lebih dari periode tertentu bisa dipindahkan, diarsipkan, atau dihapus.

Untuk tahap belajar, menyimpan data di Data Table sudah nyaman. Untuk production, saya biasanya menyarankan aturan retensi ditulis sejak awal agar data tidak menumpuk tanpa tujuan.

Batasan Data Table untuk production

Data Table bagus untuk menyimpan data terstruktur langsung di n8n dan digunakan lintas workflow. Namun, jangan otomatis menganggapnya sebagai pengganti database production untuk semua kebutuhan.

Pertimbangkan database eksternal jika Anda butuh:

  1. Volume data besar.
  2. Query kompleks.
  3. Backup dan restore yang lebih formal.
  4. Audit log dan governance.
  5. Akses dari aplikasi lain di luar n8n.
  6. Permission dan security model yang lebih detail.

Data Table cocok sebagai langkah awal. Setelah proses bisnis terbukti, pindahkan ke database yang lebih sesuai.

Troubleshooting

1. Kolom tidak cocok

Gejala: workflow error atau data tidak masuk ke kolom yang benar.

Cek hal berikut:

  1. Nama kolom di Data Table sama persis dengan mapping.
  2. Tidak ada typo seperti nama tetapi expression memakai name.
  3. Field output dari Form Trigger benar-benar bernama name, email, dan kebutuhan.
  4. Gunakan expression picker dari output node sebelumnya.

2. Form belum aktif

Gejala: Production URL tidak berjalan atau form tidak memicu workflow.

Cek hal berikut:

  1. Workflow sudah disimpan.
  2. Workflow sudah diaktifkan atau dipublish.
  3. Anda memakai Production URL untuk mode production.
  4. Untuk testing, gunakan Test URL dari editor.

3. Row tidak masuk ke Data Table

Gejala: form berhasil disubmit, tetapi table tetap kosong.

Cek hal berikut:

  1. Anda menjalankan Execute Workflow, bukan hanya Execute Step pada Form Trigger.
  2. Node Data Table benar-benar tersambung setelah Form Trigger.
  3. Operation di Data Table adalah Insert atau operasi setara untuk menambahkan row.
  4. Table yang dipilih adalah lead_intake.
  5. Tidak ada required field yang kosong.
  6. Lihat execution log untuk mengetahui node mana yang gagal.

Preview Tutorial n8n #10

Di tutorial berikutnya, kita akan melanjutkan pola yang sama, tetapi penyimpanannya dipindahkan ke Supabase.

Alurnya akan menjadi:

n8n Form Trigger -> Supabase

Ini penting karena Supabase memberi kita database PostgreSQL yang lebih cocok untuk kebutuhan production, terutama jika data perlu diakses oleh aplikasi lain, diamankan dengan policy, atau dikelola dengan backup yang lebih serius.

Referensi

  1. n8n Form, n8n Docs, https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/. Tanggal publish/update sumber: tidak terverifikasi.
  2. Data Table, n8n Docs, https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.datatable/. Tanggal publish/update sumber: tidak terverifikasi.