Panduan Lengkap Form di Task Management
Pengenalan Form: Konsep, Istilah, dan Perilaku Sistem
Artikel ini adalah titik awal Anda untuk memahami cara kerja Form di Task Management. Artikel ini menjelaskan apa itu fitur Form, siapa penggunanya, istilah-istilah yang akan Anda temui di seluruh produk, serta aturan perilaku yang mengatur bagaimana form dibuat, didistribusikan, diisi, dan dilaporkan. Bacalah artikel ini terlebih dahulu sebelum masuk ke artikel panduan langkah-demi-langkah — sebagian besar hal akan jauh lebih masuk akal setelahnya.
1. Apa Itu Form dan Siapa yang Menggunakannya
Form adalah kumpulan pertanyaan terstruktur yang diisi oleh karyawan lapangan selama melakukan kunjungan ke channel. Anda membuat form sekali di Client Portal, mengaturnya untuk channel tertentu (dan opsional untuk working group tertentu), dan form tersebut akan muncul di aplikasi mobile karyawan lapangan setiap kali mereka check-in ke channel yang relevan.
Ada dua audiens utama:
- Admin Client Portal — merancang dan mengelola form template, mengonfigurasi siapa yang menerima, dan meninjau data yang sudah dikirimkan melalui ekspor.
- Karyawan lapangan — menerima form yang ditugaskan selama kunjungan, mengisinya di mobile, menyimpan draft, dan mengirimkannya sebagai bagian dari proses check-out channel.
Contoh use case umum: sebuah distributor minuman ingin setiap sales representative mencatat stok dan penempatan rak di setiap outlet yang dikunjungi. Admin membuat form template "Pengecekan Stok Harian", mengaturnya ke channel-channel outlet yang relevan, dan sales rep akan melihat form tersebut di daftar tugas kunjungan setiap kali mereka check-in.
2. Istilah-Istilah Penting
Di seluruh produk (dan di artikel-artikel bantuan ini), Anda akan menemui istilah-istilah berikut. Inilah artinya:
- Form Template — definisi form yang Anda buat dan kelola di Client Portal. Memiliki nama, struktur (halaman dan pertanyaan), dan konfigurasi (training material, target, availability, assignment).
- Form Assignment — konfigurasi yang mengatur siapa yang melihat form: channel mana, dan dalam channel tersebut, karyawan mana (semua karyawan vs. working group tertentu).
- Daftar Tugas — bagian "Tasks" di mobile yang menampilkan daftar form yang dapat diisi karyawan selama kunjungan saat ini.
- Aktivitas — bagian "Activity" di mobile yang menampilkan form yang sudah disimpan karyawan sebagai draft selama kunjungan saat ini.
- Snapshot — konfigurasi yang dikunci pada saat karyawan berhasil melakukan check-in. Setelah di-snapshot, perubahan yang dilakukan admin di tengah kunjungan tidak akan memengaruhi kunjungan yang sedang berjalan.
- Draft — form yang sudah disimpan oleh karyawan di mobile tetapi belum di-submit. Draft dihitung ke target counter dan masih bisa diedit.
- Submission — record final. Draft berubah menjadi submission ketika karyawan menyelesaikan check-out dari kunjungan.
- Form ID — identifier unik dan permanen yang dibuat saat pertama kali Anda membuat form template. Tidak akan pernah berubah (format:
ClientID-MMYYYY-10character). - Version — angka inkremental yang hanya bertambah ketika Anda menyimpan perubahan yang memengaruhi struktur form (Step 2 Form Builder atau Step 3 Logic Jump).
- Compound Input Type — kelompok pertanyaan berbasis item yang dapat digunakan ulang, beroperasi di atas database (contoh: satu blok pertanyaan yang diulang per SKU). Dijelaskan singkat di Bagian 12.
3. Lima Tahap Pembuatan Form
Pembuatan form template berjalan melalui lima step secara berurutan. Anda dapat berpindah-pindah di antara step di dalam satu sesi, tetapi setiap step memiliki tujuan yang berbeda:
| Step | Tujuan |
|---|---|
| Step 1 — Basic Configuration | Nama, deskripsi, training material, target (Per Visit), periode availability (permanen atau temporer). |
| Step 2 — Form Builder | Struktur form sebenarnya: halaman, pertanyaan, input type, opsi, aturan validasi, dan logic jump per pertanyaan. |
| Step 3 — Logic Jump | Tinjauan terpusat dari semua aturan logic jump di seluruh form sehingga Anda dapat memeriksa alur navigasi di satu tempat. |
| Step 4 — Preview | Simulator gaya mobile yang read-only untuk memvalidasi tampilan dan perilaku form sebelum dipublikasikan. |
| Step 5 — Form Assignment | Aktivasi, pemilihan channel (semua atau spesifik), dan filter working group. Juga tempat Anda mempublikasikan form. |
Tombol Save di setiap step mengikuti aturan cakupan tertentu — lihat Bagian 8.
4. Kategori Input Type
Sebuah form dapat menggunakan 25+ input type yang dikelompokkan ke dalam beberapa kategori dengan perilaku berbeda di sisi pelaporan:
- General Input Type menangkap data kualitatif atau deskriptif: text, number, date, dropdown, checkbox, radio, photo, file upload, email, phone. Disimpan per-submission dan muncul di raw export.
- Attribute Input Type menangkap data terstruktur dan terukur yang dirancang untuk agregasi lintas submission: standard price, MSRP, consumer price, total sales, stock, shelf length, dan lainnya. Sudah siap untuk pelaporan dan akan tampil di dashboard dan analytics.
- Sub-field Packages adalah bundle dua input atau lebih yang berperilaku sebagai satu unit yang tidak dapat dipisah — misalnya Stock OPEN-ENDING (yang menangkap stok awal dan akhir sebagai satu input logis) atau Photo Before-After (yang menangkap dua set gambar dalam satu pertanyaan). Anda tidak dapat memisahkan atau menghapus sub-field secara individu.
- Compound Input Type adalah kelompok pertanyaan berbasis item yang dapat digunakan ulang (lihat Bagian 12).
- Shelf Share adalah tipe compound khusus dengan total panjang dan persentase per-item yang dihitung otomatis. Eksklusif untuk Compound dan tidak dapat digabung dengan input type lain dalam satu compound.
Saat memilih input type, pertimbangkan kebutuhan pelaporan Anda: jika Anda ingin mengagregasi atau membandingkan nilai antar submission di dashboard, gunakan tipe Attribute. Jika Anda hanya perlu menangkap nilai sebagai catatan, tipe General sudah cukup.
5. Visibilitas Form di Mobile
Form tidak akan muncul secara otomatis — visibilitas dibatasi oleh waktu dan kondisi tertentu:
- Check-in wajib dilakukan terlebih dahulu. Form disembunyikan sampai karyawan berhasil check-in ke channel. Hanya setelah check-in, form yang ditugaskan akan muncul di Daftar Tugas.
- Channel + (opsional) working group harus cocok. Form difilter berdasarkan konfigurasi form assignment. Jika form ditugaskan ke channel spesifik, karyawan harus mengunjungi salah satu dari channel tersebut. Jika filter working group diterapkan, karyawan juga harus termasuk dalam kombinasi WG → Level → Node yang dikonfigurasi.
- Form temporer memiliki periode tanggal. Jika Anda menandai form sebagai Temporary, form hanya muncul dalam Active Period yang ditentukan. Di luar periode tersebut, form tidak terlihat — bahkan untuk karyawan yang seharusnya eligible.
- Target memengaruhi interaktivitas. Ketika form memiliki target, kartu form menampilkan counter (0/2 abu-abu, 1/2 oranye, 2/2 hijau). Setelah target tercapai, form menjadi nonaktif di kunjungan tersebut dan tidak dapat dibuka untuk membuat draft baru.
6. Target dan Pencapaian
Target memberi tahu sistem berapa banyak submission yang harus diselesaikan karyawan untuk sebuah form. Ada tiga mode target di UI konfigurasi, tetapi hanya satu yang saat ini diberlakukan:
| Mode | Cakupan | Saat Ini Diberlakukan? |
|---|---|---|
| Per Visit | Per karyawan, per kunjungan, per form | ✅ Ya — memblokir penyelesaian kunjungan jika belum tercapai |
| Per Day | Per karyawan, per hari, lintas kunjungan | Dapat dikonfigurasi, tetapi belum diberlakukan di rilis ini |
| Per Form | Per karyawan, sepanjang waktu, lintas kunjungan | Dapat dikonfigurasi, tetapi belum diberlakukan di rilis ini |
Beberapa perilaku penting dari counter pencapaian:
- Draft menambah counter. Menyimpan draft (menekan Simpan) langsung menambah counter sebanyak 1.
- Mengedit draft tidak menambah counter. Jika Anda membuka kembali dan menyimpan ulang draft yang sudah ada, counter tetap sama.
- Submission final tidak menambah hitungan. Mengirimkan draft melalui Kirim + Check-out tidak menambah counter lagi — draft sudah dihitung sebelumnya.
- Mencapai target memblokir draft baru. Setelah counter menunjukkan Q/Q (hijau), form menjadi nonaktif dan tidak dapat dibuka di kunjungan tersebut.
- Per Visit mengontrol akses ke Ringkasan. Jika target Per Visit belum tercapai, karyawan tidak dapat melanjutkan dari Detail Kunjungan ke halaman Ringkasan sampai melengkapi submission yang masih kurang.
7. Versioning Form dan Form ID
Ini adalah salah satu perilaku terpenting yang harus Anda pahami jika nantinya Anda memodifikasi form setelah dipublikasikan.
Form ID bersifat permanen. Form ID dibuat sekali saat pembuatan form dengan format ClientID-MMYYYY-10character (contoh: 1234-022026-Uhd8adgr12) dan tidak akan pernah berubah — tidak ketika Anda mengganti nama, tidak ketika Anda mengedit struktur, tidak pernah. Form ID adalah referensi stabil yang digunakan dalam submission dan ekspor.
Version hanya bertambah karena perubahan struktural. Secara spesifik:
- Perubahan di Step 2 (Form Builder) — menambah/menghapus/mengedit halaman, pertanyaan, input type, opsi, training material — akan menaikkan version.
- Perubahan di Step 3 (Logic Jump) — mengatur ulang aturan jump — juga akan menaikkan version.
- Perubahan di Step 1, Step 4, atau Step 5 — nama, deskripsi, target, availability, assignment — tidak akan menaikkan version.
Membatalkan perubahan sebelum disimpan tidak membuat version baru. Jika Anda mengubah judul pertanyaan dari "X" menjadi "Y" lalu mengembalikannya menjadi "X" sebelum menyimpan, tidak ada version baru yang dibuat.
Satu kali Save = maksimal satu kenaikan version. Jika Anda melakukan sepuluh perubahan struktural lalu menyimpan satu kali, version naik satu kali saja.
Question ID dipertahankan saat diedit. Memodifikasi judul, opsi, mandatory flag, atau input type pertanyaan tetap mempertahankan Question ID yang sama. Hanya menambah pertanyaan baru (manual atau via duplicate) yang menghasilkan Question ID baru.
8. Cakupan Save saat Mengedit Form
Saat Anda mengedit form, tombol Save akan melakukan hal yang berbeda tergantung step yang sedang Anda buka. Hal ini tidak terlalu intuitif dan layak untuk diingat:
| Anda menekan Save di… | Yang akan disimpan |
|---|---|
| Step 1 | Hanya perubahan di Step 1. Apa pun yang Anda ubah di Step 2–5 akan dibuang. |
| Step 4 (Preview) | Perubahan di Step 1, 2, dan 3. Perubahan di Step 5 akan dibuang. |
| Step 5 | Semua perubahan dari Step 1 sampai Step 5. |
Mengapa hal ini penting. Jika Anda hanya melakukan perubahan nama cepat di Step 1, simpan di Step 1. Tetapi jika Anda juga sudah mengedit struktur form di Step 2, jangan menyimpan di Step 1 — pekerjaan Step 2 Anda akan hilang. Klik Next sampai Step 4 atau Step 5 dan simpan di sana untuk meng-commit semuanya.
Tidak ada tombol Save di Step 2 atau Step 3. Anda selalu maju via Next; commit sebenarnya terjadi di Step 4 atau Step 5.
Meninggalkan halaman tanpa menyimpan akan membuang semua perubahan. Menutup tab, refresh, atau berpindah halaman akan memunculkan konfirmasi. Jika Anda mengonfirmasi Leave (atau dialog browser), setiap perubahan yang belum disimpan di setiap step akan hilang. Form akan kembali ke kondisi terakhir yang disimpan.
9. Perilaku Snapshot dan Kunjungan yang Sedang Berlangsung
Ketika seorang karyawan berhasil check-in ke channel, sistem men-snapshot seluruh konfigurasi form pada saat itu — struktur, target, availability, assignment, training material, bahkan konfigurasi compound. Snapshot ini terikat ke kunjungan tersebut secara spesifik.
Konsekuensinya: perubahan di tengah kunjungan tidak memengaruhi kunjungan yang sedang berjalan. Jika Anda mengedit sebuah form sementara karyawan lapangan sedang dalam proses mengisinya, karyawan tersebut akan terus menggunakan versi yang mereka mulai. Perubahan Anda hanya berlaku untuk kunjungan baru selanjutnya.
Hal ini melindungi karyawan dari gangguan — tidak ada pertanyaan yang tiba-tiba hilang saat sedang diisi, tidak ada target yang berubah, tidak ada logic yang tiba-tiba berperilaku berbeda. Hal ini juga melindungi integritas data: record submission akan mencerminkan definisi form yang berlaku saat data ditangkap.
10. Cakupan Assignment
Distribusi sebuah form ditentukan oleh dua lapisan di Step 5:
Cakupan channel — pilih antara:
- All Channels — semua channel di sistem, termasuk channel baru yang ditambahkan kemudian (auto-synchronized).
- Specific Channels — channel yang dipilih manual, dengan opsi memfilter daftar pilihan berdasarkan attribute channel (Group, Type, Stage, Category, Sub-Channel, Classification).
Cakupan karyawan (di dalam channel tersebut) — pilih antara:
- All employees in channel — semua karyawan yang ditugaskan ke channel yang dipilih.
- Employees in specific working group — filter ke kombinasi Working Group → Level → Node tertentu.
Mengkombinasikan keduanya memberi Anda kontrol yang presisi. Contoh: "All Channels, tetapi hanya karyawan di Sales Working Group dengan level Senior Sales Rep di bawah Node Jakarta."
11. Aturan Integritas Data Historis
Submission yang sudah masuk bersifat permanen — sekali sebuah form sudah di-submit, data dan strukturnya akan dipertahankan tanpa batas waktu, terlepas dari apa yang terjadi pada form, karyawan, channel, atau assignment-nya setelahnya.
Secara spesifik, laporan yang sudah di-submit tetap dapat diakses dan diekspor ketika:
- Form diganti namanya, di-unassign, atau dihapus di Client Portal.
- Channel menjadi inactive atau dihapus.
- Karyawan menjadi inactive atau dihapus.
- Working group, level, atau node yang digunakan dalam assignment dihapus.
- Form template diperbarui ke versi baru.
Ketika melihat submission historis, sistem akan memuat struktur form berdasarkan snapshot version pada saat submission — bukan versi saat ini. Jika V1 memiliki sepuluh pertanyaan dan V3 hanya delapan, membuka submission V1 tetap menampilkan kesepuluh pertanyaan beserta jawaban aslinya.
Nama form template diperbarui ke versi terbaru di tampilan (sehingga daftar tetap up-to-date), tetapi struktur dan jawaban di bawahnya tetap terkunci ke versi asli.
12. Sekilas Tentang Compound Input Type
Compound Input Type adalah kelompok pertanyaan yang dapat digunakan ulang dan beroperasi di atas item dari sebuah database — contohnya, "Stock Check per SKU" di mana set pertanyaan yang sama (current stock, expiry date, photo) diulang untuk setiap produk yang dipilih.
Konsep utama:
- Sumber item. Item compound berasal dari salah satu dari lima sumber: Channel, Asset, Employee, Working Location, atau Custom Database. Anda dapat menggunakan All Data atau memfilter berdasarkan kriteria.
- Dapat digunakan ulang. Setelah Anda membuat sebuah compound, Anda bisa menggunakannya di berapa pun jumlah form dengan memilihnya sebagai input type sebuah pertanyaan.
- Halaman khusus di form. Ketika compound ditambahkan ke form, sistem akan membuat halaman khusus (Compound Page). Pertanyaan lain tidak dapat berbagi halaman tersebut.
- Nesting. Sebuah compound dapat menyertakan compound lain sebagai elemen nested, tetapi hanya satu tingkat — tidak ada compound nested di dalam compound nested, tidak ada self-reference, tidak ada rantai sirkular.
- Shelf Share adalah compound khusus untuk pelaporan penempatan rak. Bersifat eksklusif: compound Shelf Share tidak dapat berisi input type lain di dalamnya.
- Rendering di mobile. Di mobile, halaman compound menampilkan tombol aksi (contoh: + SKU). Karyawan menekannya untuk memilih item dari database; setiap item yang dipilih akan menghasilkan section jawaban tersendiri. Auto-kalkulasi berlaku untuk Shelf Share (total panjang dan persentase per item diperbarui secara real-time).
Compound memiliki list dan flow pembuatan tersendiri di bawah Settings → Task Operations → Form → Compound Input Type. Compound di-version secara terpisah, dan mengedit compound akan secara otomatis menyebarkan version baru ke setiap form yang menggunakannya.
Selanjutnya Baca Apa?
Setelah Anda memiliki dasar konseptual ini, Anda siap mulai bekerja dengan Form secara langsung. Pilih artikel berikutnya berdasarkan apa yang ingin Anda lakukan:
- Menelusuri dan menemukan form yang sudah ada → Cara Menavigasi Form Template List
- Membuat form baru dari awal → Cara Membuat Form Template
- Membangun kelompok pertanyaan berbasis item yang dapat digunakan ulang → Cara Membuat dan Menggunakan Compound Input Type
- Mengedit form yang sudah ada → Cara Mengedit Form Template
- Mengekspor data submission → Cara Menjalankan Task Report Export
- Mencari batasan, pesan error, atau aturan tertentu → Referensi Form: Validasi, Error, Limit, dan Perilaku Sistem