Cover Image




Apps Script Automation Daily Report Bot — Panduan Langkah demi Langkah

Apps Script Automation Daily Report Bot — Panduan Langkah demi Langkah

Ringkasan Cepat

Target Pembaca & Intent

Panduan ini ditujukan untuk pengambil keputusan pemasaran/operasi, developer internal, dan analis data di perusahaan B2B/UKM. Fokusnya adalah how‑to teknis praktis untuk membangun workflow Apps Script lengkap dengan contoh kode, template pesan, dan checklist implementasi.

Mengapa Perlu Daily Report Bot (Masalah & Solusi)

Manual reporting memakan waktu dan rawan inkonsistensi. Solusi yang disarankan: gunakan Google Apps Script untuk ekstraksi dari Sheets/DB, transformasi menjadi summary, lalu kirim otomatis ke channel tim—mengurangi delay dan menjaga keputusan berbasis data.

Use‑Case Utama & Varian

Skenario utama — Laporan Penjualan Harian

Varian

Inventori harian, ringkasan leads/CRM, monitoring sistem/alert. Contoh integrasi form‑to‑CRM dan appointment/reminder lewat Sheets→WA: contoh appointment→WA. Untuk OCR→sheet sebelum pemrosesan ringkasan lihat: contoh OCR invoice.

Arsitektur & Workflow (cara apps script workflow)

Diagram teks: Google Sheet / DB → Apps Script (extract → transform → build summary) → Notifier (send to slack/wa) → Scheduled trigger (daily).

Komponen penting: time‑driven trigger (installable triggers), PropertiesService untuk secrets, dan UrlFetchApp untuk panggil webhook/API. Panduan desain pipeline automasi: workflow automasi.

Persiapan & Requirement

Struktur Project & Best Practice Kode

File direkomendasikan: config.js, utils.js, reportGenerator.js, notifier.js, triggers.js. Simpan token di PropertiesService, hindari hardcoding. Referensi struktur project dan orkestrasi: workflow automasi.

Langkah‑langkah Implementasi (ringkasan langkah utama)

1) Setup Google Sheet & contoh QUERY

Gunakan fungsi QUERY untuk pra-filter data di Sheet sebelum diproses di Apps Script.

2) Buat Apps Script project dan struktur file

Buat file sesuai struktur praktis dan simpan secrets di PropertiesService.

3) Implement querySheet() — baca range & filter

function querySheet() {
  const ss = SpreadsheetApp.openById(PropertiesService.getScriptProperties().getProperty('SHEET_ID'));
  const sheet = ss.getSheetByName('data');
  const values = sheet.getDataRange().getValues();
  // process rows -> return array of records
  return values.slice(1);
}

4) Implement queryDB() — JDBC/REST

Jika menggunakan DB, ikuti panduan JDBC atau gunakan REST API dengan UrlFetchApp (amankan kredensial di PropertiesService).

5) Implement buildSummary(data)

Hitung total, top items, growth; kembalikan object summary yang siap diformat untuk delivery.

6) Format pesan untuk Slack (Block Kit) dan WhatsApp (plain text)

Untuk Slack gunakan Block Kit, untuk WhatsApp gunakan plain text template.

7) Implement sendToSlack() & sendToWA()

function sendToSlack(payload) {
  const url = PropertiesService.getScriptProperties().getProperty('SLACK_WEBHOOK');
  UrlFetchApp.fetch(url, {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify(payload)
  });
}

Untuk WhatsApp via Twilio, panggil endpoint Twilio sesuai panduan Twilio WhatsApp. Contoh integrasi lead routing: WhatsApp CRM Automotive, WhatsApp CRM Jewelry.

8) Setup scheduled trigger (daily)

ScriptApp.newTrigger('mainDailyReport').timeBased().everyDays(1).atHour(7).create();

Lihat dokumentasi triggers: Installable Triggers.

9) Test end‑to‑end & tambahkan logging/monitoring

Tambahkan logging dan integrasi ke Cloud Logging untuk observability: Cloud Logging.

Contoh Kode & Snippets (highlight)

Template Pesan & Formatting — Slack vs WhatsApp

Contoh singkat:

Error Handling, Retries & Observability

Gunakan try/catch dengan pola retry (exponential backoff) dan Logger.log(). Untuk skala, gunakan Cloud Logging. Kirim notifikasi on‑failure ke admin Slack channel untuk tindakan cepat.

Security & Permissions

Simpan secrets di PropertiesService, gunakan minimal OAuth scopes, rencanakan rotasi token dan batasi akses project script sesuai prinsip least privilege.

Checklist Sebelum Live

Keberatan Umum & FAQ (singkat)

FAQ

Apakah aman menyimpan token di Script?

Simpan di PropertiesService dan rencanakan rotasi token. Hindari hardcode serta batasi akses project.

Data terlalu besar untuk Sheet?

Gunakan database dan hubungkan via JDBC/REST. Panduan JDBC: JDBC guide.

Bisa kirim WA tanpa Twilio?

Ya — ada provider WhatsApp Business API lokal/alternatif. Pilih provider yang sesuai anggaran, SLA, dan compliance.

Bagaimana dengan timezone dan jadwal?

Atur trigger menggunakan waktu lokal yang sesuai akun Google/Drive dan uji di lingkungan staging. Gunakan logging timestamp untuk verifikasi.

Bagaimana menguji end‑to‑end sebelum live?

Gunakan test sheet/data sandbox, webhook test channel Slack, dan nomor WhatsApp sandbox (mis. Twilio sandbox). Tambahkan verbose logging dan jalankan trigger manual untuk verifikasi.

Mengapa InReality Solutions Cocok untuk Proyek Otomasi Anda

Lihat layanan kami: /layanan/otomasi-ai dan portofolio: /portofolio.

Konsultasi & Demo Otomasi

Butuh implementasi end‑to‑end atau demo teknis? Ajukan konsultasi singkat untuk menilai workflow dan estimasi solusi. Kontak: /kontak-konsultasi

Ringkasan manfaat

Dengan apps script automation daily report bot Anda mendapatkan laporan konsisten, lebih cepat, dan terintegrasi ke channel tim (Slack/WA) sehingga keputusan operasional lebih tepat waktu dan terukur.


en_USEnglish