Table of Contents
Pembuka
Salah satu tantangan kecil tapi rutin yang dihadapi tim HR adalah mengecek siapa saja yang sedang cuti hari ini, lalu menginformasikannya ke seluruh tim lewat Slack.
Biasanya proses ini dilakukan manual:
- Buka sistem cuti,
- Lihat daftar karyawan yang cuti hari itu,
- Tulis ulang secara rapi,
- Kirim ke grup Slack.
Saya ingin membantu meringankan pekerjaan ini dengan cara membuat workflow otomatis yang bisa menjalankan semua langkah tersebut tanpa harus dilakukan manual setiap hari. Harapannya, HR bisa lebih fokus ke hal lain yang lebih strategis, dan tim tetap mendapatkan informasi yang mereka butuhkan.
Solusi yang dibuat
Saya membangun sebuah workflow otomatis menggunakan n8n, open-source automation tool, yang:
- Mengecek hari setiap pagi (Senin–Jumat),
- Melakukan pengecekan secara otomatis ke database internal siapa saja yang cuti di hari tersebut
- Memformat datanya,
- Dan mengirimkan pesan langsung ke channel Slack #dayoff
Diagram atau Gambar

Penjelasan Step-by-Step
- Schedule
Trigger yang mengeksekusi workflow ini setiap hari pada pukul 09.00.
Ini dijalankan otomatis sesuai waktu yang ditentukan.
- Check Hari Apa
Ini adalah node IF untuk memeriksa apakah hari ini adalah hari kerja (Senin–Jumat).
Jika true, lanjutkan ke proses pengambilan data cuti.
Jika false (Sabtu/Minggu), workflow dihentikan lebih awal (tidak lanjut).
- Get Dayoff Staff
Query ke database atau API untuk mengambil data siapa saja yang cuti hari ini menggunakan sql statement.
- If
Mengecek apakah data cuti hari ini ada atau tidak.
Jika ada (true), lanjut ke query Slack ID.
Jika tidak ada (false), buat pesan default bahwa tidak ada yang cuti.
- Set No Dayoff Message
Manual message builder untuk kondisi tidak ada yang cuti.
isinya kurang lebih seperti : “Hari ini tidak ada yang sedang cuti.”
- Get Slack IDs
Jika ada data cuti, kemungkinan ini mencari Slack ID dari orang-orang yang cuti.
Berguna agar bisa mention orang di Slack pakai <@USERID>.
- Format Message Lines
Menyusun setiap informasi cuti menjadi baris-baris text.
Misalnya beberapa orang cuti kita format menggunakan javascript.
- Build Dayoff Message
Menggabungkan semua baris message menjadi satu blok pesan akhir.
Format akhir yang akan dikirim ke Slack.
- Merge Paths
Menyatukan dua jalur logika:
Pesan cuti (jika ada),
Pesan default (jika tidak ada).
Jadi hanya satu jalur masuk ke node pengiriman akhir.
- Dayoff Push
Mengirim pesan akhir ke channel Slack via Webhook.
Ini adalah endpoint terakhir dari workflow.
Hasil Akhir

Penutup
Workflow ini membantu tim lebih sadar ketersediaan rekan kerja tanpa perlu ada proses manual dari HR setiap hari.
Saya percaya banyak proses operasional bisa di-automate seperti ini. Workflow seperti ini scalable, reusable, dan bisa dikembangkan lebih lanjut.