Automasi Pembersihan & Normalisasi Nama Pelanggan Indonesia dengan n8n + AI: Panduan Lengkap
· 4 menit baca
Automasi Pembersihan & Normalisasi Nama Pelanggan Indonesia dengan n8n + AI
Ringkasan: Panduan praktis untuk membangun workflow di n8n yang membersihkan, menormalisasi, dan menggabungkan nama pelanggan Indonesia menggunakan AI, fuzzy matching, dan human-in-the-loop.
Kenapa Normalisasi Nama itu Penting?
Data nama pelanggan sering kali tidak konsisten: ada gelar (Bpk./Ibu), singkatan (Hj., S.T.), variasi penulisan (Muhamad vs Muhammad), inisial, atau entri ganda. Ketidakrataan ini menyebabkan masalah seperti:
- Duplikasi data dan multiple akun untuk satu pelanggan
- Kesulitan personalisasi komunikasi
- Kesalahan saat penggabungan data atau laporan
Dengan n8n + AI, proses pembersihan dan normalisasi bisa diotomasi: parsing nama, standardisasi format, pencocokan fuzzy, dan human verification untuk kasus ambigu.
Arsitektur High-Level
- Trigger: upload CSV / webhook / koneksi DB
- Preprocessing: remove whitespace, lowercase, transliteration
- AI Parse: gunakan LLM atau NER untuk memecah nama menjadi prefix, given_name, middle_name, family_name, suffix
- Rule-based Normalization: standar kapitalisasi, remove honorifics, expand abbreviations
- Duplicate Detection: fuzzy matching (Levenshtein, Cosine on embeddings) + phonetic comparison
- Human-in-the-loop: verifikasi untuk confidence rendah
- Upsert ke DB: simpan canonical_name, aliases, confidence, audit trail
- Monitoring & Metrics
Langkah Implementasi di n8n
1. Trigger & Preprocessing
Gunakan node HTTP Request / Cron / Google Drive / FTP untuk mendapatkan file. Jalankan node Function untuk trimming, removing duplicate whitespace, dan transliteration (contoh: replace 'é' → 'e').
// contoh pseudo-JS untuk node Function di n8n
const normalizeWhitespace = (s) => s.replace(/\s+/g, ' ').trim();
items[0].json.cleaned = normalizeWhitespace(items[0].json.name || '');
return items;
2. AI Parsing: Memecah Komponen Nama
Gunakan API LLM (OpenAI, Anthropic, atau model lokal) untuk mem-parsing nama menjadi komponen. AI berguna menangani variasi Indonesia (gelar agama, gelar akademik, nama ganda Madura/Jawa).
Contoh prompt:
Parse this Indonesian full name into JSON with fields: prefix, given_name, middle_name, family_name, suffix. Return only JSON.
Name: "Hj. Siti Nurhayati, S.T., M.Eng"
Contoh output yang diharapkan:
{
"prefix": "Hj.",
"given_name": "Siti",
"middle_name": "Nurhayati",
"family_name": null,
"suffix": "S.T., M.Eng"
}
Tambahkan instruksi untuk menghapus gelar dari nama canonical, tapi simpan gelar ke field terpisah.
3. Rule-Based Normalization
Setelah parsing, terapkan aturan:
- Kapitalisasi: Title Case untuk setiap token kecuali prepositions (jika ada)
- Ekspansi singkatan umum: "Hj." → "Hajah" (opsional, tergantung kebijakan)
- Standardisasi varian: "Muhamad" → "Muhammad" (gunakan kamus alias)
// contoh kamus alias sederhana
const alias = {"muhamad":"muhammad","mohamad":"muhammad","siti":"siti"};
4. Duplicate Detection & Matching
Gabungkan beberapa teknik:
- Fuzzy string matching (Levenshtein / Jaro-Winkler)
- Embeddings + cosine similarity: representasikan canonical_name sebagai embedding dan cari nearest neighbors di vector DB (Milvus, Pinecone, Weaviate)
- Phonetic matching: gunakan algorithm seperti Metaphone/Double Metaphone yang lebih cocok untuk ejaan internasional; untuk Bahasa Indonesia, adaptasi sederhana soundex dapat membantu
Set threshold confidence, misal:
- > 0.9 → otomatis merge
- 0.7 - 0.9 → flag untuk review manusia
- < 0.7 → treat as distinct
5. Human-in-the-loop (HITL)
Buat workflow review: kirim kasus ambigu ke Slack / Airtable / Google Sheets untuk diverifikasi. Setelah diverifikasi, catat keputusan (merge, keep separate) dan gunakan hasil tersebut untuk retraining rules/alias list.
6. Upsert & Audit Trail
Saat menyimpan ke database, simpan struktur data seperti:
- canonical_name
- parsed_fields
- aliases (array)
- confidence_score
- source_id (file, row)
- history (timestamped events untuk audit)
Contoh Prompt Lengkap untuk LLM
Gunakan prompt yang eksplisit dan minta output JSON. Berikut contoh prompt untuk bahasa Indonesia:
Anda adalah parser nama Bahasa Indonesia.
Input: "Drs. H. Agus Saputra, M.M."
Tugas: Kembalikan JSON {prefix, given_name, middle_name, family_name, suffix, canonical_name}
Rules:
- Hapus gelar dari canonical_name, tapi simpan di prefix/suffix.
- Jika tidak ada family_name yang jelas, gunakan null.
- Canonical name harus Title Case dan menggabungkan given_name + middle_name + family_name (jika ada).
Output only JSON.
Strategi Evaluasi & Metric
Ukur keberhasilan sistem dengan metrik:
- Precision/Recall pada deteksi duplicate
- Accuracy parsing fields (manual sample gold set)
- Reduction in duplicate accounts (%)
- Human review rate dan MTTR (mean time to resolve ambiguous cases)
Best Practices & Pertimbangan Khusus Indonesia
- Gelar & Honorific: Banyak gelar agama/akademik, jangan hilangkan tanpa menyimpannya.
- Suku & Nama Tunggal: Beberapa orang hanya memiliki satu nama — jangan paksa family_name null jadi sesuatu yang salah.
- Partikel: Nama Jawa seperti "Ng" atau "Sri" dan nama patronimik di daerah lain butuh perlakuan khusus.
- Privacy & PII: Terapkan enkripsi di transit & rest, dan pastikan retention policy sesuai peraturan (UU PDP jika relevan).
- Audit & Reversibility: Simpan raw input dan perubahan agar bisa rollback jika merge salah.
Contoh Workflow n8n (Ringkas)
- Trigger: Google Drive node (new CSV)
- CSV File > SplitInBatches
- Function: basic cleanup
- HTTP Request: call LLM parsing API
- Function: apply alias dictionary + title case
- HTTP Request: check vector DB for duplicates
- IF node: confidence > 0.9 ? Upsert : Send to Airtable for review
Scaling, Performance & Biaya
Untuk dataset besar, gunakan batching, caching embeddings, dan model lokal untuk parsing offline. Simpan embeddings hot/cold tier dan gunakan approximate nearest neighbor (ANN) untuk efisiensi. Logic fallback: jika LLM rate-limit, gunakan rule-based parser sederhana sebagai cadangan.
Penutup
Normalisasi nama pelanggan Indonesia adalah kombinasi seni dan ilmu: memerlukan aturan linguistik lokal, teknik fuzzy matching, dan kecerdasan AI untuk menangani kasus edge. Dengan n8n, Anda dapat mengorkestrasi seluruh pipeline—dari ingestion hingga human verification—dengan cepat dan terukur.
Mulai sekarang: buat prototype dengan dataset kecil (1k-5k baris), ukur metric duplicate reduction, lalu skala sambil mempertahankan audit trail dan privasi data.
Butuh contoh workflow n8n atau template prompt untuk team Anda? Hubungi JIPRAKS Classroom untuk materi step-by-step dan template yang bisa langsung di-import ke instance n8n Anda.