Files
whatsapp-inbox-platform/struktur-screen-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

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:

  1. Public / Auth
  2. Shared App Shell
  3. Super Admin
  4. Admin Client
  5. Agent
  6. Shared Reusable Screens / States

3. Public / Auth Screens

3.1 Login

Tujuan:

  • user masuk ke workspace sesuai role

Elemen inti:

  • email
  • 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
  • email
  • 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:

  1. isi metadata campaign
  2. pilih channel
  3. pilih template
  4. pilih audience
  5. pilih send now atau schedule
  6. review recipient estimate
  7. 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
  • email
  • 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
  • email
  • 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:

  1. Login, forgot password, reset password
  2. App shell: sidebar, topbar, profile menu
  3. Admin dashboard
  4. Shared inbox list
  5. Conversation detail
  6. Contact list
  7. Contact detail
  8. Team/users list
  9. Create/edit user
  10. Template list
  11. Campaign list
  12. Create campaign
  13. Campaign detail
  14. Reports overview
  15. Billing & subscription
  16. Audit log
  17. Super admin dashboard
  18. Tenant list
  19. Tenant detail
  20. Channel connect/detail
  21. Agent dashboard
  22. Agent inbox variants
  23. 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:

  • auth
  • app shell
  • shared inbox
  • conversation detail
  • contacts
  • campaign flow

Itu area yang paling menentukan apakah produk ini terasa seperti dashboard WhatsApp operasional yang serius atau hanya panel admin biasa.