3) Pesanan disimpan di Google Sheets
Setiap pesanan menjadi satu baris dengan status pending_payment. Pelanggan langsung menerima nomor order di layar.
4) Saya diberi tahu lewat Telegram
Pesan berisi ringkasan pesanan dan satu link persetujuan yang memuat nomor order dan token.

5) Persetujuan setelah pembayaran terverifikasi
Saya membuka link persetujuan. Webhook kedua memeriksa tiga hal: order ada, token cocok, dan status masih pending_payment. Jika semua benar, status berubah menjadi diproses dan Telegram mengirim daftar pekerjaan. Jika link dibuka lagi, hasilnya 404, jadi tautan hanya bisa dipakai sekali.
6) Daftar pekerjaan di Plesk
Tambah domain, pasang WordPress lewat WP Toolkit, aktifkan SSL Let’s Encrypt, buat email bisnis sesuai paket, lalu kirim akses ke pelanggan lewat WhatsApp.

Jebakan yang Saya Temui
Bagian ini yang paling berguna kalau Anda membangun hal serupa.
1) 404 “webhook not registered”
URL produksi n8n hanya hidup jika workflow dipublish. Setiap kali saya mengedit node, perubahan tidak berlaku sampai saya menekan Publish lagi. Status kuning di editor berarti ada perubahan yang belum dipublish.
2) Respons kosong padahal HTTP 200
Webhook membalas 200 tapi tanpa isi. Penyebab di kasus saya adalah isi respons berupa objek yang tidak terserialisasi. Perbaikannya membungkusnya dengan JSON.stringify:
{{ JSON.stringify({ status: 'received', order_id: $json.order_id }) }}
3) Node Google Sheets error “At least one value has to be added under Values to Send”
Pemetaan kolom node Append ter-reset saat saya mengganti Sheet. Solusinya memetakan ulang kolom, atau memakai Map Automatically jika nama field sama dengan header.
