Automasi Cuti Harian ke Slack Menggunakan n8n

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.

Abdul Haris Dwi Utomo
Abdul Haris Dwi Utomo

https://www.logique.co.id/blog/author/haris/

Melalui tulisan saya di blog ini, saya berbagi wawasan tentang praktik terbaik khususnya teknologi backend, mungkin beberapa studi kasus dan hal teknis pada project di Logique bisa saya share juga disini. Menurut saya hal - hal yang baik perlu dishare juga ke publik untuk membantu developer / programmer Indonesia menjadi lebih maju kedepannya.

Related Posts