Sistem Manajemen Surat Keluar Digital

Periode 2026
Klien SASHINDO
Teknologi
Google Apps Scripts Google Sheets

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

📝 Draft ⏳ Menunggu Validasi ✅ Terbit 📤 Terkirim
  1. Admin membuat surat — mengisi form (tujuan, perihal, tanggal) dan memilih template Google Doc. Surat tersimpan dengan status Draft dan mendapat nomor urut otomatis.
  2. Pengajuan ke Direktur — Admin mengajukan surat. Sistem mengirim email berisi link unik ke Direktur. Status berubah menjadi Menunggu Validasi.
  3. Validasi Direktur — Direktur membuka link, melihat preview surat yang sudah terisi lengkap dari template Google Doc, lalu memberikan persetujuan dengan satu klik.
  4. 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.
  5. 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

1

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.

2

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.

3

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.

4

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