15 KiB
Struktur Screen WhatsApp Inbox MVP
Dokumen ini merangkum struktur screen dari A-Z berdasarkan PRD, sitemap, user flow, ERD, roadmap, dan arsitektur teknis.
Tujuan dokumen:
- menjadi acuan desain UI/UX
- memetakan semua screen yang dibutuhkan untuk MVP
- memisahkan kebutuhan per role
- membantu prioritas desain agar tidak melebar
1. Prinsip Desain Screen
- Produk ini adalah mesin operasional percakapan, jadi inbox adalah pusat desain.
- Screen harus dibedakan berdasarkan role:
super_admin,admin_client,agent. - Mayoritas aktivitas inti harus selesai dalam 2-3 klik.
- Desktop-first, tetapi tetap responsif untuk tablet/mobile.
- Data tenant tidak boleh tercampur antar workspace.
- State penting harus jelas: loading, empty, success, error, disconnected.
2. Peta Besar Screen
Kelompok screen MVP:
- Public / Auth
- Shared App Shell
- Super Admin
- Admin Client
- Agent
- Shared Reusable Screens / States
3. Public / Auth Screens
3.1 Login
Tujuan:
- user masuk ke workspace sesuai role
Elemen inti:
- password
- show/hide password
- submit button
- forgot password link
- error alert
Catatan desain:
- harus bersih dan cepat dipahami
- perlu state invalid credential
3.2 Forgot Password
Tujuan:
- user meminta reset password
Elemen inti:
- email input
- submit reset request
- success info
- back to login
3.3 Reset Password
Tujuan:
- user mengganti password dari link reset
Elemen inti:
- new password
- confirm password
- password rules
- submit
- expired token state
3.4 Invitation Acceptance
Tujuan:
- user baru menerima invite dan membuat password awal
Elemen inti:
- invited email
- full name
- password setup
- confirm password
- accept invitation
3.5 Unauthorized / Forbidden
Tujuan:
- memberi feedback saat user membuka halaman di luar izin role
Elemen inti:
- message
- back to dashboard
4. Shared App Shell
Screen ini bukan halaman bisnis utama, tapi fondasi semua role.
4.1 App Shell Desktop
Elemen inti:
- sidebar
- topbar
- page header
- global search
- notifications
- profile menu
- tenant/workspace indicator
- channel status indicator
4.2 Sidebar by Role
Varian:
- super admin sidebar
- admin client sidebar
- agent sidebar
4.3 Profile Menu
Isi:
- my profile
- change password
- logout
4.4 Global Search Overlay
Tujuan:
- cari conversation, contact, tenant, atau user secara cepat
4.5 Notification Center
Jenis notifikasi:
- assignment update
- channel disconnected
- campaign completed
- delivery failure
- invitation/user update
5. Super Admin Screens
Super Admin fokus ke governance, tenant, channel, billing, dan kesehatan platform.
5.1 Super Admin Dashboard
Tujuan:
- melihat KPI global platform
Widget inti:
- active tenants
- active channels
- disconnected channels
- message volume overview
- delivery failure summary
- subscription health
- platform alerts
Sub-state:
- no tenant yet
- high error alert
5.2 Tenant List
Tujuan:
- melihat semua tenant
Elemen inti:
- search
- filters: status, plan, channel status
- table/list tenants
- quick actions
- create tenant button
5.3 Create Tenant
Form fields:
- company name
- tenant name
- slug/workspace
- timezone
- subscription plan
- initial admin email
5.4 Tenant Detail
Section:
- company profile
- subscription plan
- channel status
- usage summary
- seat usage
- recent activity snapshot
Quick actions:
- edit tenant
- suspend/reactivate
- connect channel
- view audit
5.5 Edit Tenant
Elemen inti:
- profile form
- timezone
- status
- plan
5.6 Suspend / Reactivate Tenant Confirmation
Tujuan:
- mencegah aksi sensitif dilakukan tanpa konfirmasi
5.7 Channel List
Tujuan:
- melihat semua channel WhatsApp yang terkoneksi
Elemen inti:
- connected numbers list
- provider
- status
- webhook status
- last sync
- tenant owner
5.8 Connect Channel
Form fields:
- provider
- WABA ID
- phone number ID
- display number
- webhook configuration
- verification/test action
State penting:
- validation success
- connection failed
5.9 Channel Detail
Section:
- WhatsApp account info
- phone status
- webhook health
- last sync status
- delivery issue summary
- reconnect action
- disconnect action
5.10 Subscription Plan Catalog
Tujuan:
- melihat daftar plan paket
Elemen inti:
- plan cards/table
- message quota
- seat quota
- broadcast quota
- feature list
5.11 Tenant Subscription List
Tujuan:
- melihat plan aktif tenant
Elemen inti:
- tenant
- current plan
- usage
- renewal state
- upgrade/downgrade history shortcut
5.12 Invoices List
Elemen inti:
- invoice number
- tenant
- period
- amount
- payment status
- due date
5.13 Invoice Detail
Elemen inti:
- invoice summary
- line items
- tax
- payment status
- paid date
5.14 Platform Reports
Area laporan:
- global message traffic
- tenant growth
- broadcast usage
- failure and retry monitoring
- tenant activity summary
5.15 Audit Log
Tujuan:
- melihat log aktivitas lintas platform
Elemen inti:
- filters: tenant, actor, entity, date
- event list
- log detail drawer/modal
5.16 Security Events
Elemen inti:
- failed logins
- suspicious access
- role/permission changes
5.17 API / Webhook Logs
Tujuan:
- investigasi issue integrasi
Elemen inti:
- provider event list
- process status
- failed reason
- payload preview
5.18 System Notifications / Alerts
Tujuan:
- melihat alert penting secara terpusat
5.19 Platform Settings
Area:
- platform profile
- pricing config
- feature flags
- template policy config
6. Admin Client Screens
Admin Client adalah pengguna operasional tenant yang paling lengkap.
6.1 Admin Dashboard
Widget inti:
- today conversation summary
- open conversations
- waiting reply
- resolved today
- unresolved > x hours
- active agents
- agent workload snapshot
- broadcast performance snapshot
- contact growth
Shortcut:
- go to inbox
- create campaign
- add contact
- invite user
6.2 Shared Inbox - All Conversations
Tujuan:
- pusat semua percakapan tenant
Elemen inti:
- tab/filter: all, unassigned, assigned to me, team inbox, resolved, spam/archived
- search conversation/contact
- channel filter
- agent filter
- status filter
- priority filter
- conversation list
- unread badge
- last message preview
6.3 Shared Inbox - Conversation Detail
Ini screen paling penting di seluruh produk.
Area utama:
- conversation header
- customer identity card
- tags
- assignment panel
- status selector
- priority selector
- message timeline
- attachment preview
- quick replies / canned responses
- template picker
- reply composer
- internal notes
- activity log
Quick actions:
- assign / reassign
- mark pending
- mark resolved
- archive / spam
- add note
- add tag
6.4 Shared Inbox - Empty / No Selection State
Tujuan:
- menampilkan keadaan saat belum ada conversation dipilih
6.5 Shared Inbox - Disconnected Channel State
Tujuan:
- memberi alert saat channel tenant bermasalah
6.6 Contact List
Elemen inti:
- search
- filters: tag, segment, opt-in status, channel
- table/list contacts
- import button
- export button
- add contact button
6.7 Create Contact
Fields:
- full name
- phone number
- country code
- tags
- opt-in status
- external ref
6.8 Edit Contact
Tujuan:
- mengubah data contact yang sudah ada
6.9 Contact Detail
Section:
- profile
- custom fields
- tags
- segment membership
- last interaction
- opt-in / opt-out status
- conversation history
- campaign history
6.10 Import Contacts
Elemen inti:
- upload CSV
- field mapping
- validation preview
- import summary
6.11 Export Contacts
Elemen inti:
- choose filter
- choose export fields
- export action
6.12 Segments / Lists
Tujuan:
- mengelola audience untuk broadcast
Elemen inti:
- segment list
- create segment
- edit rules
- member count
6.13 Segment Detail
Elemen inti:
- segment metadata
- rules
- contacts preview
- campaigns using this segment
6.14 Template List
Elemen inti:
- template name
- category
- language
- approval status
- channel
- last updated
- create template request
6.15 Create Template Request
Fields:
- template name
- category
- language
- header type
- body text
- footer text
- buttons
6.16 Template Detail
Elemen inti:
- content preview
- provider template ID
- approval status
- rejected reason
- related campaigns
6.17 Campaign List
Tujuan:
- melihat semua campaign broadcast
Elemen inti:
- search
- status filter
- channel filter
- date filter
- create campaign button
- summary cards
6.18 Create Campaign
Langkah desain yang disarankan:
- isi metadata campaign
- pilih channel
- pilih template
- pilih audience
- pilih send now atau schedule
- review recipient estimate
- submit
Field inti:
- campaign name
- campaign type
- template
- audience source
- segment/manual/import
- scheduled at
6.19 Campaign Review
Tujuan:
- memastikan user review sebelum enqueue broadcast
Elemen inti:
- campaign summary
- template preview
- audience estimate
- warnings
- confirm send
6.20 Campaign Detail
Section:
- campaign metadata
- audience summary
- send timeline
- sent / delivered / read / failed stats
- error breakdown
- recipient list link
6.21 Campaign Recipients
Elemen inti:
- recipient status list
- failure reason
- search contact
- filter send status
6.22 Team / Users List
Elemen inti:
- user list
- role filter
- status filter
- create user
- edit user
- activate/deactivate
6.23 Create User
Fields:
- full name
- role
- status
6.24 Edit User
Tujuan:
- update data user dan akses
6.25 User Detail
Section:
- profile info
- role
- status
- last login
- assigned conversations count
- performance snapshot
6.26 Team Performance Snapshot
Tujuan:
- melihat performa agent secara ringkas
Metrik:
- handled conversations
- avg response time
- resolved count
- active workload
6.27 Reports Overview
Jenis laporan:
- response time
- resolution rate
- agent productivity
- campaign result
- contact growth
6.28 Response Time Report
6.29 Resolution Report
6.30 Agent Productivity Report
6.31 Campaign Analytics Report
6.32 Contact Growth Report
Pola desain untuk semua report:
- filter bar
- KPI summary
- chart area
- table detail
- export action jika diperlukan
6.33 Tenant Settings
Submenu:
- tenant profile
- business hours
- auto assignment rules
- chat tags
- canned responses
- webhook / integration settings
6.34 Tenant Profile Settings
6.35 Business Hours Settings
6.36 Auto Assignment Rules
6.37 Chat Tags Management
6.38 Canned Responses
6.39 Webhook / Integration Settings
6.40 Billing & Subscription
Elemen inti:
- current plan
- quota usage
- billing history
- upgrade prompt
6.41 Usage Quota Detail
Metrik:
- message quota
- seat quota
- broadcast quota
- current usage
6.42 Billing History
Elemen inti:
- invoice list
- payment status
- periods
6.43 Tenant Audit Log
Jenis log:
- user activity
- message action logs
- campaign action logs
7. Agent Screens
Agent fokus pada eksekusi percakapan.
7.1 Agent Dashboard
Widget inti:
- assigned to me
- unread conversations
- waiting customer reply
- due follow-up
- personal performance snapshot
7.2 My Inbox - Assigned Conversations
Elemen inti:
- assigned conversation list
- unread indicators
- search
- filter by status
7.3 Unassigned Queue
Tujuan:
- agent mengambil conversation dari backlog jika diizinkan
Elemen inti:
- queue list
- conversation preview
- take assignment action
7.4 Mentioned Conversations
Tujuan:
- melihat conversation yang melibatkan agent
7.5 Resolved History
Tujuan:
- melihat percakapan yang pernah diselesaikan
7.6 Agent Conversation Detail
Komponen inti hampir sama dengan admin inbox detail, tetapi lebih terbatas.
Area:
- conversation header
- customer card
- tags
- internal notes
- status change
- reply composer
- template picker
- canned responses
- activity timeline terbatas
7.7 Agent Contact List
Scope terbatas:
- hanya contact yang relevan
- akses field lebih sedikit
7.8 Agent Contact Detail
Elemen inti:
- identity
- tags
- previous chats
7.9 Quick Tools
Subscreen:
- canned responses
- template picker
- notes / follow-up reminders
7.10 My Performance
Metrik:
- response stats
- resolved chats
- avg response time
8. Shared Reusable Screens
Screen ini dipakai lintas role atau lintas modul.
8.1 My Profile
Elemen inti:
- avatar
- full name
- role
- tenant/workspace
8.2 Edit Profile
Fields:
- full name
- avatar
8.3 Change Password
Fields:
- current password
- new password
- confirm password
8.4 Not Found
8.5 Generic Error
8.6 Empty State Library
Empty state yang perlu didesain:
- no conversations
- no contacts
- no campaigns
- no templates
- no users
- no reports data
- no tenants
- no invoices
8.7 Confirmation Modal Library
Kasus umum:
- delete
- deactivate
- suspend tenant
- disconnect channel
- send campaign now
- mark spam
8.8 Toast / Alert Patterns
Jenis:
- success
- warning
- error
- info
8.9 Loading / Skeleton Patterns
Prioritas:
- dashboard cards
- inbox list
- conversation detail
- contact table
- campaign detail
9. State Kritis yang Wajib Didukung di Desain
Untuk tiap screen penting, siapkan varian:
- default
- loading
- empty
- success
- validation error
- permission denied
- disconnected/integration issue
Screen yang wajib punya state lengkap:
- login
- shared inbox
- conversation detail
- contact import
- create campaign
- campaign detail
- connect channel
- reports
10. Urutan Prioritas Desain
Kalau desain mau dikerjakan bertahap, urutan paling masuk akal:
- Login, forgot password, reset password
- App shell: sidebar, topbar, profile menu
- Admin dashboard
- Shared inbox list
- Conversation detail
- Contact list
- Contact detail
- Team/users list
- Create/edit user
- Template list
- Campaign list
- Create campaign
- Campaign detail
- Reports overview
- Billing & subscription
- Audit log
- Super admin dashboard
- Tenant list
- Tenant detail
- Channel connect/detail
- Agent dashboard
- Agent inbox variants
- Shared empty/error/loading states
11. Screen Count Kasar
Estimasi jumlah screen unik untuk desain MVP:
- Public/Auth: 5
- Shared shell/reusable: 9
- Super Admin: 15-19
- Admin Client: 30+
- Agent: 10
Total realistis:
- sekitar
65-75 screen/state
Kalau dihitung hanya screen inti tanpa semua varian state:
- sekitar
35-45 layout utama
12. Rekomendasi Paket Desain
Supaya efisien, desain bisa dibagi jadi 3 paket:
Paket A - Core Inbox
- auth
- app shell
- admin dashboard
- shared inbox
- conversation detail
- agent inbox
- profile/basic settings
Paket B - Operasional
- contacts
- team/users
- templates
- campaigns
- campaign detail
Paket C - Governance & SaaS
- reports
- billing
- audit log
- super admin dashboard
- tenant management
- channel management
13. Kesimpulan
Kalau tujuan Anda adalah menyiapkan desain sebelum implementasi, fokus pertama harus ke:
authapp shellshared inboxconversation detailcontactscampaign flow
Itu area yang paling menentukan apakah produk ini terasa seperti dashboard WhatsApp operasional yang serius atau hanya panel admin biasa.