Membangun Alur Pemesanan Website UMKM Otomatis dengan n8n, Google Sheets, dan Telegram

4) Telegram: “can’t parse entities”

Mode Markdown bawaan menganggap tanda garis bawah sebagai huruf miring. Link saya berisi order_id dan approve_token, jadi pesannya gagal terkirim. Perbaikannya: pakai parse mode HTML, ganti & menjadi &amp; di link, dan bersihkan karakter < > & dari input pelanggan:

const clean = (v, n = 200) =>
  String(v == null ? '' : v).replace(/[\r\n\t<>&]/g, ' ').trim().slice(0, n);

5) CORS memunculkan halaman fallback

Webhook hanya mengizinkan satu origin. Jika halaman dibuka lewat www atau alamat lain, browser memblokir permintaan dan form beralih ke fallback WhatsApp. Curl tidak terkena masalah ini, sehingga backend terlihat sehat padahal form gagal.

Prinsip Keamanan yang Saya Terapkan

  • Origin CORS dibatasi ke domain produksi.
  • Honeypot untuk spam sederhana.
  • Input dibersihkan, dan sel Google Sheets ditulis sebagai teks mentah (RAW) agar tidak dieksekusi sebagai formula.
  • Token persetujuan acak dan sekali pakai.
  • Google Sheets dijaga privat karena berisi data pelanggan dan token.
  • Fallback WhatsApp supaya pesanan tidak hilang saat webhook tidak bisa dijangkau.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *