My Profile
Menjelaskan menu akun pengguna (avatar), pengaturan tampilan (Appearance), halaman My Profile, serta tab Out of Office (penanda ketidakhadiran dan delegasi task) pada AlurKerja On Premise.
Nama dan email pengguna yang sedang login ditampilkan pada pojok kanan atas halaman App. Klik avatar tersebut untuk membuka menu akun.
Menu Akun (Level App)
Menu akun di level App (halaman My Workspaces) berisi pengaturan yang berlaku untuk akun pengguna, tidak terikat pada workspace tertentu.
Menu ini berisi:
- My Profile: Membuka halaman pengaturan profil pengguna.
- My Workspaces: Menampilkan daftar workspace yang sudah diikuti.
- My Invitations: Menampilkan daftar undangan workspace yang diterima.
- MCP Connection: Membuka pengaturan koneksi MCP.
- Help & Support: Membuka bantuan dan dukungan.
- Log Out: Keluar dari akun yang sedang login.
Pengaturan tampilan (Appearance), Telegram, serta Test Mode dan Developer Mode kini berada pada menu akun level Workspace, karena bersifat per-workspace. Lihat Workspaces → My Profile & Telegram.
My Profile
Halaman My Profile berada di level App dan digunakan untuk mengelola data profil pengguna. Halaman ini terdiri dari 4 tab, yaitu Personal Information, Address, Password, dan Out of Office.
Tab Address
Tab Address digunakan untuk mengisi data alamat pengguna, meliputi Address Line 1, Address Line 2, City, State, Country, Zip, Phone Number, dan Tax Number. Klik tombol Save Address untuk menyimpan perubahan.
Tab Personal Information
Tab Personal Information digunakan untuk mengatur nama serta melihat email pengguna. Email tidak dapat diubah. Klik tombol Save Personal Information untuk menyimpan perubahan.
Tab Password
Tab Password digunakan untuk mengubah kata sandi akun. Jika akun pengguna menggunakan autentikasi LDAP, opsi ubah password pada tab ini akan dinonaktifkan.
Tab Out of Office
Tab Out of Office digunakan untuk menandai periode Anda tidak tersedia dan menunjuk kandidat delegasi (dengan urutan prioritas). Selama periode itu berjalan, task baru yang masuk ke Anda dialihkan ke kandidat pertama yang tersedia.
Out of Office bukan pengajuan cuti. Tidak ada langkah persetujuan: begitu disimpan, periode langsung berlaku. Fitur ini menandai bahwa Anda sedang tidak bisa menangani task seperti biasa — entah karena cuti, perjalanan dinas, pelatihan, atau bekerja dari lokasi lain. Cuti sebagai hak kepegawaian (dengan pengajuan dan persetujuan) adalah proses bisnis tersendiri dan dibuat sebagai BPMN, bukan lewat tab ini.
Label pada halaman ini tampil dalam bahasa Inggris (mis. Set Out of Office, Upcoming, Ongoing), karena itu panduan ini memakai label yang sama seperti yang Anda lihat di layar.
Mengatur Out of Office
- Klik Set Out of Office.
- Pilih Out of Office Period (tanggal mulai dan tanggal akhir). Tanggal mulai tidak boleh sebelum hari ini.
- Isi Notes bila perlu (opsional, maksimal 500 karakter). Kolom ini tidak memotong ketikan: catatan yang lebih panjang baru ditolak saat Save, dengan pesan note is too long (max 500 characters).
- Cari kandidat pada kolom Delegate Candidate (ketik nama atau email), lalu klik hasil pencarian untuk menambahkannya. Minimal satu kandidat harus dipilih agar tombol Save aktif.
- Atur urutan prioritas dengan tombol panah naik/turun pada kolom Action, atau hapus kandidat dengan ikon tempat sampah. Kandidat dengan Priority 1 dicoba lebih dulu. Satu periode menampung maksimal 50 kandidat.
- Klik Save.
Periode langsung berlaku begitu disimpan. Tidak ada langkah persetujuan dari atasan atau pihak lain. Periode yang tanggal mulainya hari ini langsung berstatus Ongoing.
Kandidat dicari dari anggota workspace yang sedang aktif. Jika hasil pencarian selalu kosong (No users found) padahal nama yang dicari benar, buka dulu salah satu workspace (pilih Choose app di daftar workspace), lalu masuk kembali ke My Profile lewat menu akun. Hasil pencarian juga bisa butuh beberapa detik untuk muncul.
Mencari Kandidat Delegasi
- Nama Anda sendiri tidak muncul pada hasil pencarian.
- Hanya anggota workspace tempat periode dibuat yang muncul.
- Kandidat yang sudah dipilih tidak muncul lagi pada hasil pencarian.
- Kandidat yang juga sedang out of office pada sebagian periode yang Anda pilih diberi label Out of office (tanda peringatan). Ini hanya informasi, kandidat tersebut tetap bisa dipilih, tetapi task tidak akan dialihkan kepadanya selama periodenya berjalan. Label mengikuti tanggal pada Out of Office Period, jadi pilih tanggal dulu sebelum mencari kandidat.
Membaca Riwayat dan Status
Tabel riwayat memuat kolom Period (beserta jumlah hari), Delegate Candidate (urutan prioritas), Notes, Status, Created On, dan Action. Baris diurutkan dari tanggal mulai terbaru.
| Status | Arti | Aksi yang tersedia |
|---|---|---|
| Upcoming | Tanggal mulai belum tiba | Edit (semua isian: periode, catatan, kandidat) dan Cancel |
| Ongoing | Hari ini berada di antara tanggal mulai dan tanggal akhir (termasuk periode yang mulai hari ini) | Edit terbatas: hanya End Date (tidak boleh sebelum hari ini) dan kandidat. Start Date dan Notes terkunci. Tidak bisa di-cancel |
| Completed | Tanggal akhir sudah lewat | Delete |
| Cancelled | Periode dibatalkan | Delete |
Cancel tidak menghapus baris. Status berubah menjadi Cancelled dan riwayatnya tetap tersimpan.
Delete (ikon tempat sampah, hanya pada baris Completed atau Cancelled) menghapus baris secara permanen dan tidak bisa dibatalkan.
Aturan Bentrok Periode
Satu pengguna tidak boleh punya dua periode aktif yang tumpang tindih. Tanggal akhir ikut dihitung, sehingga:
- 1 – 10 dan 10 – 15 bentrok (tanggal 10 masuk di kedua periode).
- 1 – 10 dan 11 – 15 tidak bentrok.
Periode berstatus Cancelled tidak ikut dihitung. Pengecekan berlaku lintas workspace: periode yang dibuat di workspace mana pun ikut dicek.
Saat Anda memilih periode yang bentrok, dialog langsung menampilkan peringatan This period conflicts with another out of office period beserta periode yang bentrok, dan tombol Save tidak aktif.
Jika permintaan tetap sampai ke server (misalnya dua periode dikirim hampir bersamaan), server menolaknya dengan status HTTP 409 dan isi berikut, tempat conflicts memuat periode yang bentrok:
{
"conflicts": [
{
"id": 5,
"start_date": "2026-09-21T00:00:00Z",
"end_date": "2026-09-23T00:00:00Z",
"status": "active"
}
],
"message": "overlaps an existing leave",
"status": "error"
}(Sebagian field pada conflicts dipangkas agar ringkas.)
Penggantian nama fitur ini hanya pada label di layar. Nama endpoint,
isi pesan galat server (overlaps an existing leave), dan catatan riwayat
task masih memakai istilah leave/cuti. Contoh yang dikutip pada
panduan ini sengaja ditulis apa adanya seperti yang benar-benar muncul.
Yang Terjadi pada Task Saat Anda Out of Office
Pengalihan terjadi pada saat task baru sampai ke Anda (task dibuat atau ditugaskan kepada Anda) selama hari itu berada dalam periode out of office Anda. Sistem memilih kandidat menurut urutan prioritas dan melewati kandidat yang sudah keluar dari workspace tersebut atau yang juga sedang out of office.
Ada kandidat yang tersedia
Task dialihkan ke kandidat pertama yang tersedia.
- Kandidat menerima notifikasi bahwa ia ditugaskan menggantikan Anda.
- Anda menerima notifikasi bahwa task tersebut dialihkan dari Anda.
- Riwayat task mencatat: Dialihkan dari (nama Anda) ke (nama kandidat) karena cuti (s.d. tanggal akhir).
Contoh: Anda out of office 21 – 23 September dengan kandidat 1 yang juga sedang out of office dan kandidat 2 yang tidak. Task baru untuk Anda langsung dialihkan ke kandidat 2.
Semua kandidat ikut out of office
Task tetap di Anda dan tidak dialihkan ke siapa pun, termasuk ke atasan. Yang terjadi:
- Anda (pemilik task) menerima notifikasi bahwa task tertahan.
- Bila Anda punya atasan di bagan organisasi (org chart), atasan juga diberi tahu supaya bisa mengambil tindakan. Bila Anda tidak punya atasan di bagan organisasi, tidak ada pihak lain yang diberi tahu.
- Riwayat task mencatat: Task tertahan: (nama Anda) dan semua kandidatnya sedang cuti. Atasan: ….
- Bila data atasan gagal diambil (konfigurasi Company Profile kosong, atau layanannya error/timeout), notifikasi ke atasan tidak terkirim. Riwayat task menyebutkannya apa adanya: Atasan GAGAL diambil (…) — notifikasi atasan TIDAK terkirim. Baris inilah yang membedakan "memang tidak punya atasan" dari "atasan tidak sempat diberi tahu".
Batasan Versi Ini
- Tanggal akhir ikut dihitung sebagai hari out of office. Periode 21 – 23 berarti tanggal 23 masih out of office.
- Task yang sudah dialihkan tidak kembali otomatis ketika periode selesai. Jika ingin task tersebut kembali, penugasannya harus diubah secara manual.
- Hanya task baru yang dialihkan. Task yang sudah menunggu di Anda sebelum periode dimulai tetap berada di Anda. Sistem belum menjalankan pengecekan harian yang memindahkan task lama.
- Periode berlaku di semua workspace, tetapi kandidat hanya dari workspace tempat periode dibuat. Task di workspace lain tetap dialihkan ke kandidat yang juga menjadi anggota workspace itu. Jika tidak ada kandidat yang menjadi anggotanya, task tertahan di Anda dan atasan diberi tahu.
- Pengalihan hanya satu tingkat. Jika kandidat yang terpilih ternyata juga sedang out of office, ia dilewati dan sistem mencoba kandidat berikutnya di daftar Anda — daftar kandidat milik kandidat itu tidak ikut dibaca.
Contoh batasan 4: Anda membuat periode dari workspace A dengan kandidat 1 dan kandidat 2. Kandidat 2 bukan anggota workspace B. Task baru di workspace B dialihkan ke kandidat 1 bila ia tersedia, dan bila ia juga out of office, task tertahan di Anda.
Untuk Operator On-Premise
Fitur ini membutuhkan dua tabel baru, user_leaves dan user_leave_delegates. Migration-nya ada di repo authentication-service, folder migrations/:
20260914153038_auth_create_user_leaves.*.sql20260914153039_auth_create_user_leave_delegates.*.sql
Migration pertama membuat ekstensi PostgreSQL btree_gist (untuk mencegah periode bentrok), sehingga pengguna database yang menjalankannya harus berhak membuat ekstensi.
Skrip deploy server tidak menjalankan migration otomatis (hanya menarik kode, membangun, dan me-restart service). Jalankan kedua migration secara manual sebelum fitur dipakai. Tanpa kedua tabel tersebut, tab Out of Office tidak dapat memuat data dan pengalihan task tidak berjalan.
