Files
whatsapp-inbox-platform/screen-flow-whatsapp-inbox.md
Wira Basalamah adde003fba
Some checks failed
CI - Production Readiness / Verify (push) Has been cancelled
chore: initial project import
2026-04-21 09:29:29 +07:00

503 lines
14 KiB
Markdown

# Screen Flow WhatsApp Inbox MVP
Dokumen ini menjabarkan `screen flow` utama untuk WhatsApp Inbox MVP berdasarkan role dan use case paling penting.
Tujuan dokumen:
- membantu desain prototype dan wireflow
- menjelaskan urutan perpindahan layar
- menandai action, keputusan, dan state penting
- memudahkan mapping route dan prioritas build
## 1. Cara Membaca Dokumen
Format flow:
`Screen A -> action -> Screen B -> action -> Screen C`
Catatan:
- jika sebuah langkah lebih cocok sebagai modal, drawer, atau side panel, itu disebutkan di bawah flow
- jika ada kondisi berhasil/gagal, dicatat sebagai state
- fokus dokumen ini adalah MVP, bukan flow lanjutan post-MVP
## 2. Public / Auth Flow
### 2.1 Login Flow
Tujuan:
- user masuk ke sistem sesuai role dan tenant
Flow:
`Login -> submit credentials -> Role-based Dashboard`
Kemungkinan hasil:
- valid -> masuk dashboard sesuai role
- invalid -> tetap di `Login` dengan error alert
- account disabled -> tetap di `Login` dengan status message
Screen terlibat:
- Login
- Dashboard Super Admin atau Dashboard Admin Client atau Dashboard Agent
### 2.2 Forgot Password Flow
Flow:
`Login -> klik Forgot Password -> Forgot Password -> submit email -> Reset Request Sent`
State:
- email valid -> tampil success info
- email tidak ditemukan -> bisa tetap tampil generic success agar aman
### 2.3 Reset Password Flow
Flow:
`Email Reset Link -> Reset Password -> submit new password -> Login`
State:
- token valid -> reset berhasil
- token expired/invalid -> `Reset Password` menampilkan expired state
### 2.4 Invitation Acceptance Flow
Flow:
`Invitation Link -> Invitation Acceptance -> set full name & password -> submit -> Login atau langsung Dashboard`
Catatan:
- keputusan final apakah setelah invite masuk ke login atau langsung dashboard bisa ditentukan saat desain sistem auth
## 3. Shared Global Flow
### 3.1 Open Profile Flow
Flow:
`Any App Screen -> klik Profile Menu -> Profile Menu -> pilih My Profile -> My Profile`
Lanjutan:
`My Profile -> klik Edit Profile -> Edit Profile -> save -> My Profile`
### 3.2 Change Password Flow
Flow:
`Profile Menu -> Change Password -> submit -> success -> kembali ke screen sebelumnya atau tetap di Change Password`
### 3.3 Unauthorized Flow
Flow:
`Restricted Route -> authorization check failed -> Unauthorized / Forbidden`
## 4. Super Admin Flow
## 4.1 Onboard Tenant Baru
Tujuan:
- membuat tenant baru agar siap dipakai client
Flow utama:
`Super Admin Dashboard -> Tenants List -> klik Create Tenant -> Create Tenant -> submit -> Tenant Detail`
Lanjutan:
`Tenant Detail -> lihat invitation/admin setup status`
State penting:
- sukses buat tenant
- slug sudah dipakai
- field wajib belum lengkap
UI notes:
- `Create Tenant` bisa halaman penuh atau modal besar
- setelah sukses, paling masuk akal diarahkan ke `Tenant Detail`
## 4.2 Edit Tenant
Flow:
`Tenants List -> Tenant Detail -> klik Edit Tenant -> Edit Tenant -> save -> Tenant Detail`
## 4.3 Suspend / Reactivate Tenant
Flow:
`Tenant Detail -> klik Suspend/Reactivate -> Confirmation Modal -> confirm -> Tenant Detail`
State:
- status tenant berubah
- audit log tercatat
## 4.4 Hubungkan Channel WhatsApp Tenant
Tujuan:
- mengaktifkan channel WhatsApp tenant
Flow utama:
`Tenant Detail -> tab/section Channel Status -> klik Connect Channel -> Connect Channel -> submit config -> Connection Validation Result -> Channel Detail`
Kemungkinan hasil:
- valid -> `Channel Detail` status connected
- invalid -> tetap di `Connect Channel` dengan error detail
UI notes:
- `Connection Validation Result` bisa berupa inline result state atau dedicated result screen
## 4.5 Monitor Kesehatan Platform
Flow:
`Super Admin Dashboard -> klik alert/widget -> Channel List atau Platform Reports atau Audit Log`
Contoh cabang flow:
- `Dashboard -> disconnected channels widget -> Channel List -> Channel Detail`
- `Dashboard -> subscription health widget -> Tenant Subscription List -> Tenant Detail`
- `Dashboard -> delivery failures widget -> Platform Reports`
## 4.6 Kelola Subscription Tenant
Flow:
`Super Admin Dashboard atau Subscription List -> Tenant Subscription List -> pilih tenant -> Tenant Detail atau Invoice Detail`
Lanjutan:
`Tenant Detail -> ubah plan -> plan update form/modal -> save -> Tenant Detail`
## 4.7 Audit dan Investigasi Event
Flow:
`Super Admin Dashboard -> Audit Log -> filter event -> Log Detail`
Lanjutan lain:
`Super Admin Dashboard -> API / Webhook Logs -> pilih event -> Webhook Log Detail`
## 5. Admin Client Flow
## 5.1 Login dan Masuk Dashboard Harian
Tujuan:
- admin melihat kondisi operasional tenant
Flow:
`Login -> Admin Dashboard`
Cabang cepat dari dashboard:
- `Dashboard -> klik Open Conversations -> Shared Inbox`
- `Dashboard -> klik Agent Workload -> Team Performance Snapshot`
- `Dashboard -> klik Broadcast Performance -> Campaign List atau Campaign Detail`
- `Dashboard -> klik Contact Growth -> Contact List atau Contact Growth Report`
## 5.2 Review Shared Inbox dan Distribusi Conversation
Ini flow operasional paling penting.
Flow utama:
`Admin Dashboard atau Sidebar -> Shared Inbox -> pilih conversation -> Conversation Detail`
Cabang aksi dari `Conversation Detail`:
- `Conversation Detail -> assign/reassign -> Assignment Panel/Modal -> save -> Conversation Detail`
- `Conversation Detail -> change status -> status action -> Conversation Detail`
- `Conversation Detail -> add tag -> tag selector -> save -> Conversation Detail`
- `Conversation Detail -> add internal note -> note input -> save -> Conversation Detail`
- `Conversation Detail -> reply -> send -> Conversation Detail`
State penting:
- belum ada conversation dipilih
- inbox kosong
- channel disconnected
- outbound failed
## 5.3 Assign Conversation ke Agent
Flow:
`Shared Inbox -> Conversation Detail -> klik Assign -> Assignment Panel -> pilih agent -> confirm -> Conversation Detail`
Hasil:
- assigned user tampil di header/panel
- activity log bertambah
## 5.4 Ubah Status Conversation
Flow:
`Conversation Detail -> Status Selector -> pilih open/pending/resolved/spam -> save -> Conversation Detail`
Lanjutan:
- jika `resolved`, conversation pindah ke tab/list resolved
- jika `spam/archive`, conversation hilang dari flow utama
## 5.5 Balas Pesan dari Inbox
Flow:
`Shared Inbox -> Conversation Detail -> Reply Composer -> send -> Conversation Detail`
Alternatif:
- `Conversation Detail -> Template Picker -> pilih template -> preview -> send -> Conversation Detail`
- `Conversation Detail -> Quick Reply -> pilih canned response -> edit jika perlu -> send -> Conversation Detail`
State:
- sending
- sent
- failed
## 5.6 Tambah Internal Note atau Tag
Flow note:
`Conversation Detail -> Internal Notes -> add note -> save -> Conversation Detail`
Flow tag:
`Conversation Detail -> Tags -> add/edit tag -> save -> Conversation Detail`
## 5.7 Tambah Contact Manual
Flow:
`Contact List -> klik Add Contact -> Create Contact -> submit -> Contact Detail`
State:
- nomor tidak valid
- nomor duplikat
- sukses tersimpan
## 5.8 Edit Contact
Flow:
`Contact List -> Contact Detail -> klik Edit -> Edit Contact -> save -> Contact Detail`
## 5.9 Import Contacts
Flow:
`Contact List -> klik Import -> Import Contacts -> upload CSV -> Field Mapping -> Validation Preview -> Confirm Import -> Import Result`
Kemungkinan hasil:
- semua valid -> import sukses
- sebagian gagal -> partial success + error rows
## 5.10 Export Contacts
Flow:
`Contact List -> klik Export -> Export Contacts -> pilih filter/field -> confirm -> export result/download state`
## 5.11 Kelola Segments
Flow buat segment:
`Contact List atau Segments List -> Create Segment -> isi rules -> save -> Segment Detail`
Flow edit segment:
`Segments List -> Segment Detail -> Edit Segment -> save -> Segment Detail`
## 5.12 Kelola User / Agent
Flow buat user:
`Team / Users List -> klik Create User -> Create User -> submit -> User Detail atau kembali ke Users List`
Flow edit user:
`Users List -> User Detail -> klik Edit -> Edit User -> save -> User Detail`
Flow activate/deactivate:
`Users List atau User Detail -> klik Activate/Deactivate -> Confirmation Modal -> confirm -> User Detail`
## 5.13 Review Laporan Operasional
Flow umum:
`Admin Dashboard atau Sidebar -> Reports Overview -> pilih report -> Report Detail`
Cabang:
- `Reports Overview -> Response Time Report`
- `Reports Overview -> Resolution Report`
- `Reports Overview -> Agent Productivity Report`
- `Reports Overview -> Campaign Analytics Report`
- `Reports Overview -> Contact Growth Report`
Pola interaksi:
`Report Detail -> set filter -> lihat chart/table -> export jika tersedia`
## 5.14 Buat Campaign Broadcast
Ini flow operasional besar kedua setelah inbox.
Flow utama:
`Campaign List -> klik Create Campaign -> Create Campaign Step 1/2/3 -> Campaign Review -> submit -> Campaign Detail`
Langkah yang disarankan:
- Step 1: metadata campaign
- Step 2: pilih channel dan template
- Step 3: pilih audience
- Step 4: schedule/send now
- Review
Kemungkinan hasil:
- valid -> campaign dibuat
- template belum approved -> tetap di create flow dengan warning
- audience kosong -> tidak bisa lanjut
## 5.15 Monitor Hasil Campaign
Flow:
`Campaign List -> pilih campaign -> Campaign Detail -> klik Recipient List -> Campaign Recipients`
Lanjutan:
`Campaign Detail -> klik error breakdown -> filtered recipient state atau failure detail`
## 5.16 Kelola Template
Flow buat template:
`Template List -> Create Template Request -> submit -> Template Detail`
Flow lihat status template:
`Template List -> pilih template -> Template Detail`
Flow revisi template rejected:
`Template Detail -> klik Edit/Resubmit -> Create Template Request atau Edit Template -> submit -> Template Detail`
## 5.17 Review Billing Tenant
Flow:
`Sidebar -> Billing & Subscription -> Billing Overview`
Cabang:
- `Billing Overview -> Usage Quota Detail`
- `Billing Overview -> Billing History`
- `Billing History -> Invoice Detail`
## 5.18 Review Audit Log Tenant
Flow:
`Sidebar -> Audit Log -> filter event -> Log Detail Drawer/Modal`
## 5.19 Kelola Settings Tenant
Flow umum:
`Sidebar -> Settings -> pilih submenu -> Settings Detail`
Cabang:
- `Settings -> Tenant Profile Settings`
- `Settings -> Business Hours Settings`
- `Settings -> Auto Assignment Rules`
- `Settings -> Chat Tags Management`
- `Settings -> Canned Responses`
- `Settings -> Webhook / Integration Settings`
## 6. Agent Flow
## 6.1 Mulai Shift dan Review Inbox
Flow:
`Login -> Agent Dashboard -> klik Assigned Conversations -> My Inbox`
Cabang dari dashboard:
- `Dashboard -> unread conversations -> My Inbox filtered unread`
- `Dashboard -> due follow-up -> My Inbox filtered pending/due`
## 6.2 Tanggapi Percakapan Customer
Flow utama:
`My Inbox -> pilih conversation -> Agent Conversation Detail -> reply -> Agent Conversation Detail`
Alternatif:
- `Agent Conversation Detail -> canned response -> insert -> send -> Agent Conversation Detail`
- `Agent Conversation Detail -> template picker -> pilih template -> send -> Agent Conversation Detail`
## 6.3 Tambah Note Internal atau Tag
Flow:
`Agent Conversation Detail -> Internal Notes atau Tags -> add/edit -> save -> Agent Conversation Detail`
## 6.4 Ubah Status Conversation
Flow:
`Agent Conversation Detail -> Status Selector -> pilih status -> save -> Agent Conversation Detail`
Kemungkinan efek:
- resolved -> muncul di `Resolved History`
- pending -> muncul di queue follow-up
## 6.5 Ambil Conversation dari Queue
Flow:
`Agent Dashboard atau Sidebar -> Unassigned Queue -> pilih conversation -> preview/detail -> klik Take Assignment -> Agent Conversation Detail`
Hasil:
- conversation pindah ke daftar assigned agent
## 6.6 Lihat Riwayat Resolved
Flow:
`Agent Dashboard atau Sidebar -> Resolved History -> pilih conversation -> Agent Conversation Detail`
## 6.7 Lihat Contact Terkait
Flow:
`Agent Conversation Detail -> klik contact card -> Agent Contact Detail`
Alternatif:
`Sidebar -> Agent Contact List -> pilih contact -> Agent Contact Detail`
## 6.8 Cek Performa Pribadi
Flow:
`Sidebar -> My Performance -> filter date -> lihat personal stats`
## 7. Cross-Role End-to-End Flow
## 7.1 End-to-End Inbound Message Flow
Ini flow paling penting dari sisi produk.
Flow lintas sistem:
`Customer kirim WhatsApp -> Webhook Ingestion -> sistem create/update Contact -> sistem create/update Conversation -> Shared Inbox -> Admin/Agent buka Conversation Detail -> Reply -> status berubah -> activity log tercatat`
Jika diterjemahkan ke screen:
`Shared Inbox -> Conversation Detail -> Reply Composer -> send -> Conversation Detail`
Pihak yang terlibat:
- customer
- sistem webhook/worker
- admin client atau agent
## 7.2 End-to-End Broadcast Flow
Flow lintas sistem:
`Admin create campaign -> sistem validate template & audience -> campaign queued -> worker kirim bertahap -> delivery webhook masuk -> Campaign Detail update metrics`
Jika diterjemahkan ke screen:
`Campaign List -> Create Campaign -> Campaign Review -> Campaign Detail -> Campaign Recipients`
## 7.3 Channel Disconnected Exception Flow
Flow:
`System detects disconnected channel -> Notification/Alert -> Super Admin Dashboard atau Admin Billing/Settings area -> Channel Detail / Integration Settings -> Reconnect action -> validation result`
Screen yang bisa muncul:
- dashboard alert
- channel detail
- webhook/integration settings
## 7.4 Template Rejected Exception Flow
Flow:
`Template List -> Template Detail -> status rejected -> Edit/Resubmit -> submit -> Template Detail`
## 7.5 Message Delivery Failed Exception Flow
Flow inbox reply:
`Conversation Detail -> send reply -> failed state -> retry action atau note error -> Conversation Detail`
Flow campaign:
`Campaign Detail -> failed metrics -> Campaign Recipients filtered failed -> lihat failure reason`
## 8. Rekomendasi Wireflow Prioritas
Kalau ingin dibuat ke prototype lebih dulu, urutan flow yang paling penting untuk divisualkan:
1. Login -> Dashboard
2. Dashboard -> Shared Inbox -> Conversation Detail
3. Conversation Detail -> Assign -> Reply -> Change Status
4. Contact List -> Create Contact -> Contact Detail
5. Campaign List -> Create Campaign -> Campaign Review -> Campaign Detail
6. Users List -> Create User -> User Detail
7. Super Admin Dashboard -> Tenant List -> Create Tenant -> Tenant Detail
8. Tenant Detail -> Connect Channel -> Channel Detail
## 9. Kesimpulan
Kalau `struktur screen` menjawab daftar layarnya, maka dokumen ini menjawab alur kerja user di antara layar-layar itu.
Untuk MVP ini, flow yang paling wajib matang dulu adalah:
- login
- dashboard entry
- shared inbox
- conversation handling
- contact management
- campaign creation dan monitoring
- tenant onboarding
- channel connection