Sistem Manajemen Surat Keluar Digital
Aplikasi web berbasis Google Apps Script untuk otomatisasi pembuatan, penomoran, validasi digital, dan pengarsipan surat resmi – tanpa server, tanpa biaya hosting – terintegrasi penuh dengan Google Drive, Google Docs, dan Gmail.
Latar Belakang
Manajemen pengelolaan surat menyurat secara manual menjadi Digital — penomoran dilakukan secara ad-hoc, dokumen disimpan tanpa sistem yang konsisten, dan proses persetujuan Direktur dilakukan secara langsung tanpa jejak digital.
Tantangan utama yang dihadapi:
- Penomoran surat tidak konsisten dan rawan duplikasi
- Tidak ada mekanisme validasi digital dari Direktur
- Arsip surat tersebar dan sulit ditelusuri
- Penerima surat tidak dapat memverifikasi keaslian dokumen
- Tidak ada anggaran untuk software persuratan berbayar
Solusi yang Dibangun
Sebuah aplikasi web lengkap dibangun di atas Google Apps Script — memanfaatkan infrastruktur Google Workspace yang sudah tersedia — sehingga tidak memerlukan server eksternal maupun biaya hosting. Seluruh data tersimpan di Google Sheets, dokumen di Google Drive, dan notifikasi melalui Gmail.
Fitur Utama
📄
Penomoran Otomatis
Format S-001/AWN/III/2026 — nomor urut, kode lembaga, bulan romawi, dan tahun dihasilkan otomatis dari sistem. Counter reset per bulan.
✅
Validasi Digital Direktur
Link unik dikirim ke email Direktur. Direktur dapat preview isi surat dan memberikan persetujuan tanpa perlu login ke sistem.
🔲
QR Code Verifikasi
Setiap surat terbit memiliki QR Code unik. Penerima surat dapat memindai dan memverifikasi keaslian dokumen secara publik melalui browser.
📁
Arsip Drive Otomatis
Setelah divalidasi, surat otomatis tersimpan sebagai Google Doc sekaligus PDF di Google Drive dengan penamaan file yang konsisten.
📑
Multi-Template Google Doc
Admin dapat mendaftarkan beberapa template Google Doc. Setiap surat dibuat dengan memilih template yang sesuai — placeholder otomatis terisi dari data surat.
🔐
Autentikasi Session Token
Login berbasis email tanpa Google OAuth redirect. Session token disimpan di CacheService selama 8 jam dengan auto-logout saat expired.
Alur Kerja Sistem
- Admin membuat surat — mengisi form (tujuan, perihal, tanggal) dan memilih template Google Doc. Surat tersimpan dengan status Draft dan mendapat nomor urut otomatis.
- Pengajuan ke Direktur — Admin mengajukan surat. Sistem mengirim email berisi link unik ke Direktur. Status berubah menjadi Menunggu Validasi.
- Validasi Direktur — Direktur membuka link, melihat preview surat yang sudah terisi lengkap dari template Google Doc, lalu memberikan persetujuan dengan satu klik.
- Penerbitan otomatis — Sistem meng-generate QR Code, menyalin template Google Doc, mengisi semua placeholder, menyisipkan gambar QR Code, mengekspor PDF, dan menyimpan semuanya ke Google Drive. Status berubah menjadi Terbit.
- Pengiriman & verifikasi — Surat dicetak dan dikirim. Penerima dapat memindai QR Code untuk memverifikasi keaslian surat kapan saja melalui browser.
Teknologi yang Digunakan
Runtime
Google Apps Script V8
Frontend
HTML / CSS / Vanilla JS
Database
Google Sheets
Dokumen
Google Docs API
Penyimpanan
Google Drive
Notifikasi
Gmail API
QR Code
api.qrserver.com
Session
CacheService (8 jam)
Tantangan Teknis & Solusi
Google OAuth redirect loop
Saat webapp di-set “Execute as: User accessing the app”, setiap request memicu redirect login Google yang memutus session. Solusi: mengubah eksekusi ke “Execute as: Me” dan membangun sistem autentikasi sendiri berbasis email + session token menggunakan CacheService — tanpa bergantung pada Google OAuth.
Insert gambar QR Code ke dalam Google Doc
Menyisipkan gambar ke Google Doc tidak bisa dilakukan langsung dari URL eksternal. Solusi: mengunduh gambar QR Code, mengunggah sementara ke Drive, mendapatkan URI internal, lalu menyisipkannya ke posisi placeholder {{QR TTD}} menggunakan Docs API batchUpdate dengan operasi insertInlineImage.
Preview real-time dari template Google Doc
Preview sebelum validasi harus menampilkan konten surat yang sudah terisi dari template, bukan HTML statis. Solusi: menyalin template sementara, mengisi semua placeholder melalui Docs API, mengekspor hasilnya ke format HTML via Google Feeds API, menampilkan di iframe, lalu menghapus salinan sementara — semua dalam satu request.
Token verifikasi publik tidak terbaca
Di GAS webapp, parameter URL tidak dapat dibaca melalui window.location.search di sisi klien. Solusi: parameter token di-inject dari fungsi doGet(e) sebagai template variable <?= token ?> sehingga tersedia saat halaman dirender di server.
Arsitektur Sistem
Sistem dibangun dengan pendekatan modular — setiap modul memiliki tanggung jawab yang terdefinisi jelas dan dapat dikembangkan secara independen.
AuthService
Session token, validasi email, token surat per request
SuratService
CRUD surat, penomoran otomatis, manajemen status workflow
ValidationService
Proses persetujuan Direktur, generate preview dari template
DriveService
Salin template, isi placeholder, sisipkan QR, ekspor PDF
TemplateService
CRUD master template Google Doc, kelola daftar template aktif
EmailService
Kirim notifikasi dan link validasi ke Direktur via Gmail
QRService
Generate QR Code unik per surat via API eksternal
Utils / Code.gs
Router doGet, setup sheet, master instansi, helper functions
21
File GAS
10
Halaman UI
8
Backend modul
4
Status workflow
3
Role pengguna
Zero infrastructure cost. Dibangun tanpa framework eksternal dan tanpa server tambahan — murni Google Apps Script sebagai backend dan HTML/JS sebagai frontend. Seluruh sistem berjalan di atas Google Workspace yang sudah tersedia, menjadikannya solusi persuratan digital yang efisien dan berkelanjutan untuk institusi pendidikan.
Rencana Pengembangan
Sistem ini dirancang modular sehingga memudahkan pengembangan bertahap:
- Multi-jenis surat — tambah prefix per jenis (SK, ST, SPT) dengan counter terpisah
- Multi-user & role — admin per divisi dengan hak akses berbeda
- Integrasi data akademik — surat keterangan aktif langsung dari data master mahasiswa
- Surat masuk & disposisi — sistem persuratan dua arah
- Notifikasi WhatsApp — integrasi Fonnte/Wablas untuk notifikasi real-time
- Tanda tangan elektronik tersertifikasi — integrasi BSrE (BSSN) untuk keabsahan dokumen formal
Informasi Project
- Klien
- SASHINDO
- Periode
- 2026
- Kontak WA
- 6281235025700
Bagikan ke: