REKAPITULASI KONFIRMASI KEHADIRAN (RSVP) & BUKU TAMU
Bestari Wedding - Dicetak pada:
Manajemen Kehadiran Tamu Undangan
Rekapitulasi RSVP & Ucapan Doa
Kelola, pantau, dan olah seluruh data konfirmasi kehadiran tamu serta kumpulan ucapan doa restu secara otomatis dan terorganisir.
Status Penyimpanan: Mode Lokal (Browser ini)Belum Terhubung Cloud
Data RSVP saat ini baru tersimpan di browser ini. Hubungkan ke Google Sheets gratis agar setiap tamu yang mengisi lewat HP langsung masuk otomatis ke sini!
Total Respon Tamu
0
0 Porsi estimasi
Pasti Hadir
0
0% dari respon
Masih Ragu-ragu
0
0% dari respon
Tidak Hadir
0
0% dari respon
Total Porsi Hadir
0
Orang siap hadir
No
Waktu
Nama Tamu
Kehadiran
Porsi
Asal Template
Ucapan & Doa Restu
Aksi
Belum Ada Data RSVP
Data konfirmasi kehadiran dari tamu undangan belum masuk. Anda bisa mengisi form di undangan digital Anda atau menambah data uji coba.
Hubungkan undangan digital Anda ke Google Spreadsheet
Kabar gembira: Anda dapat langsung menempelkan link Google Spreadsheet (https://docs.google.com/spreadsheets/d/...) tanpa perlu pusing setelan Apps Script!
📖 Cara Membuat Google Spreadsheet & Apps Script (2 Menit)
1. Buat Spreadsheet: Buka sheets.new lalu beri nama spreadsheet Anda.
2. Buka Script Editor: Klik menu Ekstensi $\rightarrow$ Apps Script.
3. Salin Kode Script: Hapus kode bawaan dan tempel kode berikut:
function doPost(e) {
var lock = LockService.getScriptLock();
lock.tryLock(10000);
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = {};
if (e.postData && e.postData.contents) {
try { data = JSON.parse(e.postData.contents); } catch(err) { data = e.parameter; }
} else { data = e.parameter; }
if (sheet.getLastRow() === 0) {
sheet.appendRow(["Waktu Masuk", "Nama Tamu", "Kehadiran", "Jumlah Tamu", "Asal Template", "Ucapan & Doa"]);
sheet.getRange(1, 1, 1, 6).setFontWeight("bold").setBackground("#EFEFEF");
}
var waktu = Utilities.formatDate(new Date(), "Asia/Jakarta", "dd/MM/yyyy HH:mm:ss");
sheet.appendRow([waktu, data.nama || "-", data.kehadiran || "-", data.jumlah || "1", data.template || "Tema Modern", data.ucapan || "-"]);
return ContentService.createTextOutput(JSON.stringify({ status: "success" })).setMimeType(ContentService.MimeType.JSON);
} catch(err) {
return ContentService.createTextOutput(JSON.stringify({ status: "error", error: err.toString() })).setMimeType(ContentService.MimeType.JSON);
} finally { lock.releaseLock(); }
}
function doGet(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var rows = sheet.getDataRange().getValues();
if (rows.length <= 1) return ContentService.createTextOutput(JSON.stringify([])).setMimeType(ContentService.MimeType.JSON);
var result = [];
for (var i = 1; i < rows.length; i++) {
result.push({ waktu: rows[i][0], nama: rows[i][1], kehadiran: rows[i][2], jumlah: rows[i][3], template: rows[i][4], ucapan: rows[i][5] });
}
return ContentService.createTextOutput(JSON.stringify(result.reverse())).setMimeType(ContentService.MimeType.JSON);
}
4. Terapkan (Deploy): Klik Terapkan (Deploy) $\rightarrow$ Penerapan Baru $\rightarrow$ Jenis: Aplikasi Web $\rightarrow$ Siapa yang memiliki akses: Siapa Saja (Anyone) $\rightarrow$ Salin URL Web App dan tempelkan di kotak atas.