1. Buka Spreadsheet Google milik Anda, klik menu Extensions > Apps Script.
2. Hapus semua kode default di dalam editor Apps Script, lalu Copy-Paste seluruh blok script di bawah ini (sudah diperbarui presisi untuk menyusun baris keterangan header secara otomatis dimulai dari Kode Iklan di Kolom A):
function doPost(e) {
try {
var params = JSON.parse(e.postData.contents);
var action = params.action; // 'insert', 'update', 'delete'
var data = params.data;
var sheetName = data.cs_assigned || "Umum";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
if (!sheet) {
sheet = ss.insertSheet(sheetName);
}
// Otomatis buat baris judul/keterangan header jika sheet baru atau kosong (Tanpa ID Pasien)
if (sheet.getLastRow() === 0) {
sheet.appendRow([
"Kode Iklan", "Waktu", "Nama CS", "No Whatsapp", "Nama Pasien", "Jenis Kelamin", "Keluhan",
"Lama Keluhan", "Usia", "Domisili (Provinsi)", "Pernah Terapi",
"Tanya Biaya", "Tanya Lokasi", "Tanya Jadwal", "Mau Datang",
"Minta Booking", "Aktif Membalas", "Booking", "Datang",
"Alasan Tidak Booking", "Skor", "Status Lead", "Kategori Final", "Sumber", "Notes"
]);
// Mempercantik baris header di spreadsheet
sheet.getRange(1, 1, 1, 25).setFontWeight("bold").setBackground("#f1f5f9").setHorizontalAlignment("center");
sheet.setFrozenRows(1);
}
// Cari baris data pasien jika aksi adalah update atau delete (Gunakan Waktu Kolom B & Nama Pasien Kolom E untuk kecocokan)
var values = sheet.getDataRange().getValues();
var rowIdx = -1;
for (var i = 1; i < values.length; i++) {
if (values[i][1] == data.waktu && values[i][4] == data.nama_pasien) {
rowIdx = i + 1;
break;
}
}
var rowData = [
data.kode_iklan, data.waktu, data.cs_assigned, "'" + data.no_wa, data.nama_pasien, data.jenis_kelamin, data.keluhan,
data.lama_keluhan, data.usia, data.domisili, data.pernah_terapi,
data.tanya_biaya, data.tanya_lokasi, data.tanya_jadwal, data.mau_datang,
data.minta_booking, data.aktif_membalas, data.booking, data.datang,
data.alasan_tidak_booking, data.score, data.statusLead, data.kategoriFinal,
data.sumber_platform, data.notes
];
if (action === 'insert') {
sheet.appendRow(rowData);
} else if (action === 'update' && rowIdx !== -1) {
sheet.getRange(rowIdx, 1, 1, rowData.length).setValues([rowData]);
} else if (action === 'delete' && rowIdx !== -1) {
sheet.deleteRow(rowIdx);
}
return ContentService.createTextOutput(JSON.stringify({status: "success"}))
.setMimeType(ContentService.MimeType.JSON);
} catch (err) {
return ContentService.createTextOutput(JSON.stringify({status: "error", message: err.toString()}))
.setMimeType(ContentService.MimeType.JSON);
}
}
3. Klik tombol Deploy > New Deployment di pojok kanan atas Apps Script.
4. Pilih tipe deployment Web app. Pada opsi Execute as, pilih Me (email Anda), dan pada opsi Who has access pilih Anyone.
5. Klik Deploy, izinkan akses akun google jika diminta, lalu **Copy URL Web App** yang dihasilkan.
6. Tempel (Paste) URL tersebut di kotak input atas halaman ini lalu klik Simpan Pengaturan Sync. Selesai!