e>
Di Google Sheet: blok seluruh tabel (Ctrl/Cmd + A) → Copy → tempel di bawah → Proses. Ikut memperbarui angka aktual & Target Bulanan/rasio bila kolom itu ikut tersalin. Privat & pasti jalan.
Di Google Sheet Anda: Buka Ekstensi -> Apps Script. Hapus semua kode, paste kode di bawah ini:
function doGet(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dashboard Capaian vs target") || SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var data = sheet.getDataRange().getValues();
var csvContent = "";
for (var i = 0; i < data.length; i++) {
var row = data[i];
for (var j = 0; j < row.length; j++) {
var valStr = String(row[j]);
if (valStr.indexOf(",") !== -1 || valStr.indexOf("\"") !== -1 || valStr.indexOf("\n") !== -1) {
valStr = '"' + valStr.replace(/"/g, '""') + '"';
}
csvContent += valStr + (j < row.length - 1 ? "," : "");
}
csvContent += "\n";
}
return ContentService.createTextOutput(csvContent).setMimeType(ContentService.MimeType.TEXT);
}
function kirimNotifikasiSync() {
var sheetId = SpreadsheetApp.getActiveSpreadsheet().getId();
UrlFetchApp.fetch("https://ntfy.sh/arsslabs_kpi_marketing_sync_" + sheetId, {"method": "post", "payload": "sync"});
try {
var webAppUrl = ScriptApp.getService().getUrl();
var match = webAppUrl.match(/\/macros\/s\/([a-zA-Z0-9-_]+)/);
if (match) UrlFetchApp.fetch("https://ntfy.sh/arsslabs_kpi_marketing_sync_" + match[1], {"method": "post", "payload": "sync"});
} catch(err){}
}
function buatTriggerOnEdit() {
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) ScriptApp.deleteTrigger(triggers[i]);
ScriptApp.newTrigger('kirimNotifikasiSync').forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet()).onEdit().create();
}
1. Klik **Simpan**.
2. Klik **Deploy -> New deployment** (Pilih tipe **Web App**, set "Who has access" ke **Anyone**, klik Deploy dan salin URL Web App-nya).
3. Tempelkan URL Web App tersebut di kolom URL input di atas.
4. Pilih fungsi buatTriggerOnEdit di menu atas editor Apps Script, lalu klik **Run** (Izinkan akses Google). Selesai!
Jadikan sheet publik (File -> Bagikan -> Publikasikan ke web / Pelihat). Dan buat trigger buatTriggerOnEdit menggunakan script di atas.
Ubah target bulanan tiap cabang di sini bila ada penambahan/pengurangan target. Target Mingguan, Harian, Ideal, Gap%, dan Dikejar/hari akan otomatis menyesuaikan di seluruh dashboard.
| Cabang | Omset/bln | AOV | Closing/bln | Visitor/bln | Lead/bln | FU/bln | Lead→FU | Lead→Visit | Visit→Close |
|---|
Klik cabang untuk buka detail & input angka harian. Hijau (ON TRACK) di atas pace ideal · Kuning (MENDEKATI) mendekati · Merah (TERTINGGAL) tertinggal.