Rekap Absensi Karyawan Otomatis dengan Google Form dan n8n
Panduan membuat absensi karyawan sederhana dengan Google Form, lalu merekapnya otomatis per hari dan per bulan memakai n8n, lengkap dengan batasannya.
Jawaban singkat
Karyawan mengisi Google Form saat masuk dan pulang, jawabannya tersimpan di Google Sheets, lalu n8n membaca baris baru, menandai keterlambatan, dan menyusun rekap bulanan otomatis. Cocok untuk tim kecil, tetapi tidak bisa memverifikasi lokasi atau mencegah titip absen.
Daftar isi
- Apa yang perlu disiapkan?
- Langkah 1: Buat Google Form absensi
- Langkah 2: Hubungkan form ke Google Sheets
- Langkah 3: Workflow pertama, mencatat dan menandai keterlambatan
- Langkah 4: Workflow kedua, rekap bulanan otomatis
- Langkah 5: Uji, lalu jaga agar workflow tidak diam-diam berhenti
- Apa batasan absensi dengan Google Form?
- Pertanyaan yang sering diajukan
Masih merekap absensi dari foto buku tamu atau tangkapan layar chat setiap akhir bulan? Untuk tim kecil, ada cara yang lebih rapi tanpa membeli aplikasi absensi khusus: Google Form sebagai tempat absen, Google Sheets sebagai penyimpan data, dan n8n sebagai "petugas" yang merekap otomatis.
Hasil akhirnya: setiap kali karyawan mengisi form, datanya langsung tercatat, keterlambatan ditandai otomatis, dan di akhir bulan rekap per orang sudah jadi tanpa perlu dihitung manual. Kalau kamu belum mengenal n8n, baca dulu apa itu n8n agar istilah node dan workflow di bawah lebih mudah diikuti.
Apa yang perlu disiapkan?
- Akun Google untuk membuat form dan spreadsheet.
- n8n yang sudah berjalan, baik versi cloud resmi maupun self-hosted di server sendiri.
- Kredensial Google di n8n (OAuth) agar n8n bisa membaca dan menulis Google Sheets.
- Daftar nama karyawan dan jam kerja yang berlaku.
Langkah 1: Buat Google Form absensi
Buat form baru dengan pertanyaan yang sesedikit mungkin, karena form yang panjang membuat orang malas mengisi:
- Nama karyawan, pakai pilihan dropdown, bukan isian bebas. Isian bebas menghasilkan "Budi", "budi s", dan "Budi Santoso" yang dianggap tiga orang berbeda.
- Jenis absen, pilihan ganda: Masuk atau Pulang.
- Keterangan (opsional), isian singkat untuk catatan seperti "dinas luar".
Di pengaturan form, aktifkan pengumpulan alamat email. Bila kantormu memakai Google Workspace, kamu juga bisa membatasi agar hanya akun di organisasimu yang bisa mengisi. Ini membantu memastikan yang mengisi memang karyawan, meskipun tetap tidak mencegah titip absen.
Langkah 2: Hubungkan form ke Google Sheets
Buka tab Responses (Jawaban) di form, lalu pilih untuk menautkan jawaban ke spreadsheet baru. Google otomatis membuat sheet berisi kolom stempel waktu (Timestamp) diikuti kolom untuk setiap pertanyaan.
Di spreadsheet yang sama, tambahkan dua sheet lagi:
- Harian, berisi kolom Tanggal, Nama, Jenis, Jam, dan Status.
- Rekap Bulanan, berisi kolom Bulan, Nama, Jumlah Hadir, dan Jumlah Terlambat.
Jangan mengubah urutan atau nama kolom di sheet jawaban form, karena n8n akan membaca berdasarkan nama kolom.
Langkah 3: Workflow pertama, mencatat dan menandai keterlambatan
Di n8n, buat workflow baru dengan susunan node berikut:
- Google Sheets Trigger dengan event "Row added". Pilih spreadsheet dan sheet jawaban form. Node ini memeriksa baris baru secara berkala.
- Edit Fields (Set) untuk menyiapkan data. Buat field
jamdari kolom stempel waktu, misalnya dengan ekspresi{{ DateTime.fromFormat($json["Timestamp"], "d/M/yyyy H:mm:ss").toFormat("HH:mm") }}. Sesuaikan nama kolom dan format tanggalnya dengan yang benar-benar muncul di sheet kamu, karena formatnya mengikuti pengaturan lokal spreadsheet. - IF untuk memeriksa dua syarat: jenis absen adalah "Masuk" dan
jamlebih besar dari jam masuk yang berlaku, misalnya "08:00". Perbandingan teks seperti ini aman selama formatnya selalu dua digit jam dan dua digit menit. - Google Sheets dengan operasi "Append Row" ke sheet Harian, di kedua cabang IF. Isi kolom Status dengan "Terlambat" di cabang benar dan "Tepat waktu" di cabang salah.
Simpan dan aktifkan workflow, lalu coba isi form sendiri. Dalam beberapa saat, baris baru seharusnya muncul di sheet Harian. Kalau ingin atasan langsung tahu saat ada yang terlambat, tambahkan node Telegram atau email di cabang "Terlambat". Contoh pola notifikasi seperti ini ada di notifikasi pesanan baru ke Telegram dengan n8n.
Langkah 4: Workflow kedua, rekap bulanan otomatis
Buat workflow terpisah agar mudah dirawat:
- Schedule Trigger, jalankan sebulan sekali, misalnya tanggal 1 pagi.
- Google Sheets dengan operasi membaca baris dari sheet Harian.
- Filter untuk mengambil baris bulan sebelumnya saja dan jenis "Masuk".
- Summarize untuk mengelompokkan per Nama: hitung jumlah baris (hari hadir) dan jumlah baris berstatus "Terlambat".
- Google Sheets dengan operasi "Append Row" ke sheet Rekap Bulanan.
- (Opsional) Gmail atau node email lain untuk mengirim ringkasan ke bagian HR atau pemilik.
Kalau perhitungan jumlah terlambat di node Summarize terasa rumit, pisahkan dulu dengan dua cabang Filter, lalu hitung masing-masing. Hasilnya sama, hanya lebih mudah dibaca.
Langkah 5: Uji, lalu jaga agar workflow tidak diam-diam berhenti
Uji dengan beberapa skenario: absen masuk tepat waktu, terlambat, lupa absen pulang, dan nama yang baru ditambahkan. Pastikan nama baru juga ditambahkan ke dropdown form.
Workflow otomatis bisa berhenti karena token Google kedaluwarsa atau kolom spreadsheet diubah orang lain. Aktifkan error workflow agar kamu mendapat pemberitahuan saat ada eksekusi gagal. Caranya dibahas di error handling dan retry di n8n.
Apa batasan absensi dengan Google Form?
Cara ini cocok untuk tim kecil yang saling percaya, tetapi punya batasan yang perlu kamu pahami sebelum dipakai sebagai dasar potongan gaji atau keputusan kepegawaian.
| Hal | Google Form + n8n | Aplikasi absensi khusus |
|---|---|---|
| Biaya awal | Rendah, memakai alat yang sudah ada | Biasanya berlangganan per karyawan |
| Verifikasi lokasi | Tidak ada | Umumnya ada (GPS atau jaringan kantor) |
| Mencegah titip absen | Lemah | Lebih kuat (foto wajah, perangkat terdaftar) |
| Fleksibilitas rekap | Sangat fleksibel, bisa diubah sendiri | Mengikuti fitur aplikasi |
| Perawatan | Kamu yang merawat workflow | Ditangani penyedia |
Data absensi juga termasuk data pribadi karyawan. Batasi siapa yang bisa membuka spreadsheet, jangan bagikan tautannya ke semua orang, dan simpan hanya data yang memang diperlukan. Aturan jam kerja, keterlambatan, dan sanksinya ikuti perjanjian kerja, peraturan perusahaan, dan aturan ketenagakerjaan yang berlaku; bila ragu, konsultasikan dengan ahli hukum ketenagakerjaan.
Pertanyaan yang sering diajukan
Apakah harus memakai n8n berbayar?
Tidak harus. n8n bisa dipasang sendiri (self-hosted) di server, atau dipakai versi cloud resminya yang berbayar. Pilih sesuai kemampuan tim merawat server.
Bisakah absen memakai foto selfie?
Google Form punya pertanyaan unggah file, tetapi pengisi harus masuk ke akun Google dan file tersimpan di Google Drive pemilik form. Ini menambah beban penyimpanan dan data pribadi yang harus dijaga, jadi pertimbangkan baik-baik.
Bagaimana kalau karyawan lupa absen?
Tambahkan pengecekan di workflow kedua atau buat workflow harian yang mencari nama yang belum absen sampai jam tertentu, lalu kirim pengingat. Koreksi manual tetap dicatat dengan keterangan.
Apakah n8n bisa langsung membaca Google Form tanpa Sheets?
Cara paling umum adalah lewat Google Sheets seperti di panduan ini. Alternatifnya, n8n punya form bawaan (Form Trigger) yang bisa menggantikan Google Form sepenuhnya.
Checklist sebelum dipakai seluruh tim:
- Nama karyawan berupa dropdown dan sudah lengkap.
- Format stempel waktu sudah dicocokkan dengan ekspresi di n8n.
- Kedua workflow aktif dan sudah diuji dengan beberapa skenario.
- Notifikasi error workflow menyala.
- Akses spreadsheet dibatasi hanya untuk yang berwenang.


