{{ check.message }}
{{ check.detail }}

Menyiapkan workspace...
{{ currentPageSubtitle }}
Workspace Hari Ini
Mulai dari pekerjaan yang membutuhkan perhatian, lalu pantau aktivitas dan performa penjualan.
Perlu Ditangani
Aktivitas Hari Ini
{{ todayOperations.chatCustomers }}
Customer Chat
Customer unik yang masuk hari ini
{{ todayOperations.closing }}
Closing
Order terbaru yang closing hari ini
{{ todayOperations.handoffResolved }}
Kasus Selesai
Handoff diselesaikan hari ini
Performa Penjualan
Conversion Rate
{{ Number(analytics.summary?.conversionRate||0).toLocaleString('id-ID') }}%
Closing ÷ customer masuk
Omzet Tercatat
{{ money(analytics.summary?.revenue) }}
Dari closing ber-checkout
Response AI
{{ duration(analytics.summary?.avgResponseMs) }}
Rata-rata waktu balas
Takeover Manual
{{ Number(analytics.summary?.manualTakeovers||0).toLocaleString('id-ID') }}
Diambil alih manusia
Token AI
{{ compactNumber(analytics.summary?.totalTokens) }}
{{ Number(analytics.summary?.aiReplies||0).toLocaleString('id-ID') }} balasan AI
Estimasi Biaya AI
{{ money(analytics.summary?.estimatedCost) }}
Chat {{ money(analytics.summary?.chatEstimatedCost) }} • OCR {{ money(analytics.summary?.ocrEstimatedCost) }} ({{ analytics.summary?.ocrRuns||0 }}x)
Tren customer masuk dan closing per hari.
Bandingkan conversion, kecepatan respons, takeover, biaya AI, dan omzet.
| Agent / CS | Customer | Tanya | Checkout | Transfer | Closing | Conv. | AI Reply | Response | Takeover | Token | Biaya AI | Omzet |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ a.agentName }} {{ a.waName }} | {{ a.customers ?? a.chats }} | {{ a.productInterest }} | {{ a.checkouts }} | {{ a.transfers }} | {{ a.closings }} | {{ a.conversionRate }}% | {{ a.aiReplies }} | {{ duration(a.avgResponseMs) }} | {{ a.manualTakeovers }} | {{ compactNumber(a.totalTokens) }} | {{ money(a.estimatedCost) }} | {{ money(a.revenue) }} |
| Belum ada data performa pada filter ini. | ||||||||||||
{{ a.waName }}
Customer
Tanya
Checkout
Transfer
Closing
Urutan berdasarkan customer unik yang menunjukkan minat.
{{ p.mentions }} kali terdeteksi
customer
Diambil dari checkout customer saat CRM ditandai Terclosing.
{{ p.qty }} unit • {{ p.closings }} closing
nilai produk
Pusat Konfigurasi
Cari pengaturan berdasarkan tujuan. Status setiap modul memberi tahu bagian yang sudah siap atau masih perlu tindakan.
Coba kata seperti WhatsApp, AI, Alinev, otomatisasi, atau keamanan.
Pesan masuk Cloud API diteruskan ke Agent AI yang dipilih dan balasannya dikirim kembali melalui Cloud API. Pengiriman tetap mengikuti jendela layanan, consent, template resmi, dan batas frekuensi.
Cloud API
{{ db.whatsappCompliance?.cloud?.configured?'Siap':'Belum siap' }}{{ db.whatsappCompliance?.cloud?.version||'-' }} • ID ***{{ db.whatsappCompliance?.cloud?.phoneNumberIdLast4||'----' }}
Service Window
{{ db.whatsappCompliance?.stats?.openSessions||0 }} chat aktif24 jam dari pesan masuk
Consent Promo
{{ db.whatsappCompliance?.stats?.optedInMarketing||0 }} customerOpt-in terdokumentasi
Terkirim 24j
{{ db.whatsappCompliance?.stats?.sent24h||0 }}Diterima Cloud API
Ditahan / Gagal
{{ db.whatsappCompliance?.stats?.blocked24h||0 }} / {{ db.whatsappCompliance?.stats?.failed24h||0 }}24 jam terakhir
Cloud API belum lengkap. Isi Phone Number ID, Access Token, dan Verify Token pada /opt/whatsapp-ai-bot/.env, lalu restart aplikasi. Sebelum lengkap, pesan proaktif ditahan dan tidak dialihkan ke WhatsApp Web.
Webhook {{ db.whatsappCompliance?.cloud?.webhookVerifyConfigured?'verify token siap':'belum memiliki verify token' }} • signature {{ db.whatsappCompliance?.cloud?.signatureVerificationConfigured?'divalidasi':'opsional belum aktif' }}.
{{ event.reason||event.status||'-' }}
Normal
{{ db.operations?.summary?.healthy||0 }}
Peringatan
{{ db.operations?.summary?.warning||0 }}
Kritis
{{ db.operations?.summary?.critical||0 }}
Insiden Aktif
{{ db.operations?.summary?.openIncidents||0 }}
Pemeriksaan aplikasi, database, WhatsApp, Alinev, backup, disk, dan memori.
{{ check.message }}
{{ check.detail }}
Notifikasi proaktif dikirim melalui template resmi WhatsApp Cloud API.
Gunakan format 62. Nomor hanya terlihat oleh Owner.
Insiden selesai tetap tersimpan untuk audit dan evaluasi.
{{ incident.message }}
{{ incident.detail }}
{{ formatDateTime(incident.lastSeenAt) }}
{{ incident.occurrences||1 }} kali terdeteksi
{{ wa.transport==='cloud' ? ('+'+(wa.number||'-')+' • Resmi Cloud API') : wa.status==='open' ? '+'+(wa.number||'-') : wa.pairingCodePending ? 'Kode tautan aktif • ***'+wa.pairingPhoneLast4 : wa.status==='connecting' ? 'Menunggu ditautkan' : wa.status==='error' ? 'Koneksi error' : 'Belum terhubung' }}
Versi koneksi: {{ wa.appVersion || 'Server belum diperbarui' }} · {{ wa.connectionLibrary || 'Versi lama' }}
Tautan diterima. Sedang menyelesaikan koneksi...
WhatsApp HP → Perangkat Tertaut → Tautkan Perangkat
QR dapat diperbarui WhatsApp sekitar setiap 20 detik. Jika sulit dipindai, gunakan kode tautan.
| Order | Customer | Produk | Pembayaran | Status | Total | |
|---|---|---|---|---|---|---|
| {{ order.orderNumber }}{{ formatDateTime(order.createdAt) }} | {{ order.customerName }}+{{ order.customerPhone }} • {{ waName(order.waAccountId) }} | {{ (order.items||[]).map(item=>item.quantity+'× '+item.name).join(', ') }} | {{ localPaymentStatusLabel(order.paymentStatus) }} | {{ localOrderStatusLabel(order.orderStatus) }} | {{ money(order.total) }} |
{{ (order.items||[]).map(item=>item.quantity+'× '+item.name).join(', ') }}
Produk Non-Alinev dibuat langsung di aplikasi. Produk Alinev tetap masuk melalui sinkronisasi satu arah dan tidak bercampur pada order manual.
Terakhir berhasil: {{ db.alinevConfig?.apiHealth?.catalog?.lastSuccessAt?formatDateTime(db.alinevConfig.apiHealth.catalog.lastSuccessAt):'belum pernah' }}. Produk yang hilang di Alinev hanya diarsipkan, bukan dihapus.
{{ filteredProducts.length }} produk ditampilkan
Harga belum tersedia dari Alinev
{{ money(p.price||0) }}
Kelola Agent yang menangani percakapan customer. Buka pengaturan hanya saat ingin mengubah SOP, produk, testimoni, atau pengiriman.
{{ a.storeName||'Toko belum diisi' }}
{{ waName(a.waAccountId) }}
Hapus {{ a.name }}? Customer yang memakai Agent ini perlu ditugaskan ulang.
{{ handoffReason(currentSelectedContact) }} • {{ handoffAge(currentSelectedContact) }}
Pemicu: “{{ currentSelectedContact.handoffLastMessage }}”
{{ handoffActionMessage }}
Contoh: label Tanya-tanya → follow-up setelah 1 hari jika customer belum membalas.
{{ rule.waAccountId==='ALL'?'Semua nomor CS':waName(rule.waAccountId) }}
Dibuat berbeda untuk setiap customer berdasarkan chat terakhir dan memori percakapannya.
{{ rule.message }}
Satu rule hanya mengirim sekali selama customer berada pada siklus label tersebut. Jika label berubah lalu kembali lagi, rule dapat berjalan lagi.
JPG, PNG, atau WEBP • maksimal 5 MB • dikirim bersama teks sebagai caption.
Spintax seperti {Halo|Hai} tetap didukung. Dengan gambar, teks menjadi caption gambar.
Batas operasional saat ini: {{ db.broadcastConfig?.maxTargets || 200 }} target/campaign.
Mencegah customer menerima campaign terlalu sering dari nomor ini.
Contoh penerima eligible
Reply dan closing dihitung sebagai aktivitas setelah campaign dalam jendela atribusi sistem.
{{ waName(c.waAccountId) }} • {{ c.segmentLabel }} • {{ formatDateTime(c.createdAt) }}
*Omzet adalah closing yang terjadi setelah campaign dalam jendela atribusi, bukan bukti bahwa campaign menjadi satu-satunya penyebab closing.
{{ leadPriorityQueue.summary?.protected||0 }}
Dilindungi guard
{{ item.phone||'-' }} • {{ item.waAccountName }} • {{ item.agentName }}
{{ item.store.name||item.store.id }} • {{ item.store.orderId }} • {{ item.store.paymentStatus }}
{{ item.intelligence.objective }}
Mengapa diprioritaskan
{{ item.intelligence.reason }}
{{ item.intelligence.suggestedMessage }}
Skor dan Next Best Action adalah rekomendasi internal. Pesan tidak pernah dikirim otomatis dari halaman ini.
Cari, pilih, dan kelola satu atau banyak customer sekaligus.
{{ agentForContactName(c) }}
| Customer | Nomor CS | Agent AI | Label | Status | Terakhir | Profil | |
|---|---|---|---|---|---|---|---|
| {{ customerDisplayName(c) }}{{ displayPhone(c) }}{{ profileLocation(c) }} | {{ waName(c.waAccountId) }} | {{ agentForContactName(c) }} | {{ money(c.closingRevenue||0) }} • {{ closingRevenueSourceLabel(c.closingRevenueSource) }} {{ waLabelSyncText(c) }} | Butuh CS{{ c.isAiActive?'AI Aktif':'Manual' }} | {{ c.lastChat ? String(c.lastChat).replace(/^(\d{1,2}[.:]\d{2})[.:]\d{2}$/, '$1').replace(':','.') : '-' }} | ||
| Tidak ada customer yang cocok dengan filter. |
Menampilkan {{ crmPageStart }}–{{ crmPageEnd }} dari {{ crmContacts.length }} customer
{{ db.alinevStats?.total||0 }}
Order tersimpan
{{ db.alinevStats?.paid||0 }}
Sudah dibayar
{{ db.alinevStats?.pending||0 }}
Menunggu bayar
{{ db.alinevStats?.matched||0 }}
Customer cocok
{{ db.alinevStats?.needsReview||0 }}
Perlu ditinjau
Lihat bagian yang perlu diperiksa tanpa membuka semua pengaturan.
Pilih pekerjaan yang ingin dilakukan.
Gunakan URL ini di Alinev → Settings → Developers → Webhooks.
Event yang harus dipilih
Berlaku untuk seluruh store setelah nomor CS masing-masing berhasil dipetakan. Tidak ada Nomor CS fallback.
Menemukan store, mengambil order yang terlewat, dan memverifikasi pembayaran sebelum Checkout Recovery dikirim.
ALINEV_API_KEY ke .env server, lalu restart PM2. Buat key dari menu Developer Alinev dengan akses read dan orders:write.Webhook real-time dengan pemeriksaan API cadangan setiap {{ Math.round((db.alinevConfig?.apiHealth?.reliability?.intervalMs||300000)/60000) }} menit dan antrean retry yang bertahan setelah restart.
Webhook terakhir
{{ db.alinevConfig?.apiHealth?.reliability?.lastWebhookAt?formatDateTime(db.alinevConfig.apiHealth.reliability.lastWebhookAt):'Belum pernah' }}
{{ db.alinevConfig?.apiHealth?.reliability?.recoveredTotal||0 }}
Order dipulihkan API
{{ db.alinevConfig?.apiHealth?.reliability?.jobs?.pending||0 }}
Antrean retry
Pemeriksaan terakhir
{{ db.alinevConfig?.apiHealth?.reliability?.lastSuccessAt?formatDateTime(db.alinevConfig.apiHealth.reliability.lastSuccessAt):'Belum pernah' }}
Terakhir berhasil
{{ db.alinevConfig?.apiHealth?.lastSuccessAt?formatDateTime(db.alinevConfig.apiHealth.lastSuccessAt):'Belum pernah' }}
{{ db.alinevConfig?.apiHealth?.lastResult?.storesFetched||0 }}
Store terbaca
{{ db.alinevConfig?.apiHealth?.lastResult?.ordersFetched||0 }}
Order diperiksa
{{ db.alinevConfig?.apiHealth?.lastResult?.ordersImported||0 }}
Order ditemukan
{{ db.alinevConfig?.apiHealth?.lastResult?.paymentsCorrected||0 }}
Pembayaran dikoreksi
| Store | Terakhir sync | Diperiksa | Baru | Dikoreksi | Status |
|---|---|---|---|---|---|
| {{ store.storeName||store.storeId }} | {{ store.lastSuccessAt?formatDateTime(store.lastSuccessAt):'-' }} | {{ store.ordersFetched||0 }} | {{ store.ordersImported||0 }} | {{ store.paymentsCorrected||0 }} | {{ store.lastError }}Sehat |
Alinev menjadi sumber nama, harga, jenis produk, varian, SKU, berat, dan gambar. Data fulfillment lokal tidak ditimpa.
Terakhir berhasil
{{ db.alinevConfig?.apiHealth?.catalog?.lastSuccessAt?formatDateTime(db.alinevConfig.apiHealth.catalog.lastSuccessAt):'Belum pernah' }}
{{ db.alinevConfig?.apiHealth?.catalog?.lastResult?.apiVariants||0 }}
Varian Alinev
{{ db.alinevConfig?.apiHealth?.catalog?.lastResult?.created||0 }}
Produk baru
{{ db.alinevConfig?.apiHealth?.catalog?.lastResult?.updated||0 }}
Diperbarui
{{ db.alinevConfig?.apiHealth?.catalog?.lastResult?.archived||0 }}
Diarsipkan
{{ db.alinevConfig?.apiHealth?.catalog?.lastResult?.priceMissing||0 }}
Harga kosong
Setiap store hanya mengirim dan menerima tindak lanjut melalui nomor CS yang dipilih.
Alinev API • {{ formatDateTime(mapping.apiLastSeenAt) }}
Terdeteksi webhook • {{ mapping.orderCount||0 }} order
ID lebih diutamakan daripada nama.
Jeda dihitung ulang dari balasan customer terbaru. Pembayaran, STOP, handoff, dan mode manual menghentikan pengiriman.
Pesan, balasan, pembayaran hasil recovery, dan omzet dipisahkan sesuai store serta nomor CS.
{{ alinevRecoveryReport.reached||0 }}
Customer dijangkau
{{ alinevRecoveryReport.messagesSent||0 }}
Pesan terkirim
{{ alinevRecoveryReport.customerReplies||0 }}
Customer membalas
{{ alinevRecoveryReport.recoveredOrders||0 }}
Berhasil bayar
{{ money(alinevRecoveryReport.recoveredRevenue||0) }}
Omzet recovery • {{ alinevRecoveryReport.recoveryRate||0 }}%
| Store | Nomor CS | Menunggu | Pesan | Balasan | Berhasil | Omzet |
|---|---|---|---|---|---|---|
| {{ store.storeName }} | {{ store.waAccountName }} | {{ store.waiting }} | {{ store.messagesSent }} | {{ store.customerReplies }} | {{ store.recoveredOrders }} | {{ money(store.recoveredRevenue) }} |
| Belum ada aktivitas recovery pada periode ini. | ||||||
Informasi penting digabung per proses agar lebih mudah dipindai. Periksa ulang tetap aman dan idempotent.
{{ order.orderId }}
{{ order.items?.length||0 }} item • {{ order.matchedItems||0 }} cocok
{{ order.customerPhone||'-' }}
{{ order.waAccountName||'Belum dipetakan' }}
{{ order.recovery?.attempts||0 }} pesan • {{ formatDateTime(order.recovery.nextAttemptAt) }}
{{ formatDateTime(order.lastEventAt) }}
Resi {{ order.shipmentReceipt }}
Fulfillment: {{ order.fulfillment.error }}
Recovery: {{ order.recovery.lastError }}
{{ order.error }}
| Order & Store | Customer & CS | Pembayaran | Fulfillment | Recovery | Status | Aksi |
|---|---|---|---|---|---|---|
{{ order.orderId }} {{ order.items?.length||0 }} item • {{ order.matchedItems||0 }} cocok |
{{ order.customerName||'Tanpa nama' }} {{ order.customerPhone||'-' }} |
{{ alinevPaymentLabel(order.paymentStatus) }} {{ money(order.total||0) }} |
{{ alinevFulfillmentLabel(order.fulfillment) }} {{ order.fulfillment.error }} |
{{ alinevRecoveryStatusLabel(order.recovery?.status) }} {{ order.recovery?.attempts||0 }} pesan {{ order.recovery.lastError }} |
{{ alinevMatchStatusLabel(order.matchStatus) }} {{ formatDateTime(order.lastEventAt) }} {{ order.error }} |
|
| Belum ada webhook order Alinev yang diterima. | ||||||
{{ db.scalevStats?.total||0 }}
Total order
{{ db.scalevStats?.paid||0 }}
Sudah lunas
{{ db.scalevStats?.pending||0 }}
Menunggu
{{ db.scalevConfig?.mappedStores||0 }}
Store terhubung
{{ db.scalevStats?.needsReview||0 }}
Perlu perhatian
{{ db.scalevConfig?.readiness?.activeProducts||0 }} produk aktif • {{ db.scalevConfig?.readiness?.unreadyDigitalProducts||0 }} belum siap • {{ db.scalevConfig?.readiness?.failedEvents||0 }} webhook gagal • {{ db.scalevConfig?.readiness?.paidAwaitingFulfillment||0 }} akses terlambat • {{ db.scalevConfig?.readiness?.failedDigitalFulfillments||0 }} akses gagal
{{ alert.level==='INFO'?'Pengingat keamanan:':'•' }} {{ alert.message }}
{{ failure.error }}
Periksa nomor WhatsApp pelanggan dan minta pelanggan mengirim pesan ke nomor CS. Jangan kirim berulang sebelum nomor dapat menerima pesan.
Pengiriman WhatsApp dihentikan sesuai instruksi. Email belum dikirim; tim akan menghubungi pelanggan secara manual.
Produk dan order hanya diambil dari Store ID yang ditambahkan manual. Event store lain otomatis diabaikan.
SCALEV_API_KEY ke server untuk sinkronisasi otomatis. Webhook tetap dapat digunakan setelah Signing Secret aktif.{{ db.scalevConfig?.apiHealth?.webhookQueue?.received||0 }} menunggu • {{ db.scalevConfig?.apiHealth?.webhookQueue?.processing||0 }} diproses
{{ db.scalevConfig?.apiHealth?.webhookQueue?.failed||0 }}
{{ db.scalevConfig?.apiHealth?.rateLimit?.remaining||'-' }} / {{ db.scalevConfig?.apiHealth?.rateLimit?.limit||'-' }}
Sistem tidak menambah store otomatis. Hanya store di daftar ini yang disinkronkan.
Jeda dihitung ulang dari balasan customer terbaru. Pembayaran, STOP, handoff, dan mode manual menghentikan pengiriman.
Pesan, balasan, pembayaran hasil recovery, dan omzet dipisahkan sesuai store serta nomor CS.
{{ scalevRecoveryReport.reached||0 }}
Customer dijangkau
{{ scalevRecoveryReport.messagesSent||0 }}
Pesan terkirim
{{ scalevRecoveryReport.customerReplies||0 }}
Customer membalas
{{ scalevRecoveryReport.recoveredOrders||0 }}
Berhasil bayar
{{ money(scalevRecoveryReport.recoveredRevenue||0) }}
Omzet recovery • {{ scalevRecoveryReport.recoveryRate||0 }}%
| Store | Nomor CS | Menunggu | Pesan | Balasan | Berhasil | Omzet |
|---|---|---|---|---|---|---|
| {{ store.storeName }} | {{ store.waAccountName }} | {{ store.waiting }} | {{ store.messagesSent }} | {{ store.customerReplies }} | {{ store.recoveredOrders }} | {{ money(store.recoveredRevenue) }} |
| Belum ada aktivitas recovery pada periode ini. | ||||||
Hanya menampilkan order dari Store ID yang dipetakan.
| Order | Customer | Store & CS | Pembayaran | Status | Aksi |
|---|---|---|---|---|---|
| {{ order.orderId }} {{ formatDateTime(order.createdAt) }} | {{ order.customerName||'Tanpa nama' }} {{ order.customerPhone||'-' }} | {{ order.storeName||order.storeId||'-' }} {{ order.waAccountName||'Belum dipetakan' }} | {{ money(order.total||0) }} {{ order.paymentStatus }} | {{ order.matchStatus }} {{ order.error }} | |
| Belum ada order SCALEV yang diterima. | |||||
| User | Role | Akses | Status | Aksi |
|---|---|---|---|---|
{{ initials(u.name) }} {{ u.name }} @{{ u.username }} • Anda | {{ roleLabel(u.role) }} | Semua data operasional{{ u.assignedWaAccountIds?.length||0 }} nomor CS • {{ u.assignedAgentIds?.length||0 }} agent | {{ u.isActive?'Aktif':'Nonaktif' }}Password sementara |
Riwayat tindakan penting user di dashboard.
{{ a.detail || a.targetType }} • {{ a.targetId }}
{{ formatDateTime(a.timestamp) }} • {{ a.role }}
Menu Lainnya
Kepadatan Tampilan
{{ globalSearchQuery.trim()?'Hasil pencarian':'Akses cepat' }}
Coba nama, nomor WhatsApp, nomor order, atau produk lain.
{{ t.message }}
{{ dialog.message }}
Setelah dibuat, nomor dapat ditautkan memakai QR atau kode 8 karakter.
Alternatif QR
Gunakan nomor WhatsApp yang ingin dihubungkan ke aplikasi.
Boleh diawali 0 atau 62. Pastikan nomor ini aktif di WhatsApp pada HP. Nama kartu CS tidak mengunci nomor yang ditautkan.
{{ pairingError }}
Kode untuk nomor ***{{ pairingResult.phoneLast4 }}
Berlaku singkat. Ketuk kode untuk menyalin.
Omzet Closing
Prioritas nominal: Payment PAID → Checkout → Manual.
Manual hanya dipakai jika tidak ada Payment PAID dan tidak ada total Checkout.
Auto Follow-up
Follow-up dikirim jika customer masih berada pada label target dan tidak ada chat customer baru selama jeda.
Pilihan “ikuti nomor customer” paling aman untuk multi nomor.
Disarankan ON untuk follow-up promosi. Untuk follow-up transaksi seperti Janji Transfer bisa dimatikan bila memang sesuai kebijakanmu.
Saat waktunya tiba, AI membaca chat customer terbaru, ringkasan percakapan, produk yang diminati, keberatan, dan tahap funnel. Pesan tetap singkat serta tidak memaksa closing.
Template: {{nama}}, {{customer}}, {{label}}, {{kecamatan}}, {{kota}}, {{provinsi}}, {{produk_minat}}, {{produk_dibeli}}.
Detail Produk
Harga belum tersedia dari Alinev
{{ money(productDetailProduct.price||0) }}
Foto Utama
{{ productDetailProduct.photo?'Foto sudah tersimpan.':'Produk belum memiliki foto.' }}
Pemetaan Alinev
Pengiriman Produk Fisik
Akses Digital
Link akses belum diisi.
Knowledge Produk
Informasi, keunggulan, dan FAQ produk dikelola dari Agent AI agar sumber jawaban tetap terpusat.
Order disimpan dan dikelola langsung di aplikasi.
Produk Alinev tidak muncul di pilihan ini.
Konfigurasi harga, jenis produk, dan aturan ongkir.
Isi salah satu atau semuanya agar item dari order Alinev cocok dengan produk aplikasi. Pisahkan beberapa nilai dengan koma.
Opsional. Isi nama, SKU, atau ID dari SCALEV agar item order cocok secara pasti. Beberapa nilai dapat dipisahkan dengan koma.
V2.5 hanya memakai Produk Digital dan Produk Fisik.
{{ productForm.alinevSource==='api'?'Nilai mengikuti varian Alinev.':'Wajib diisi untuk ongkir realtime.' }}
Simpan link akses untuk kebutuhan fulfillment sesuai SOP pembayaran yang digunakan.
Untuk Grup WhatsApp gunakan link invite dari menu Info Grup → Undang via tautan.
Berlaku untuk produk antologi dalam toko terpetakan. Kosongkan untuk mengikuti produk sumber. Tidak mengirim ulang order lama.
Setelah produk disimpan, kelola Informasi & Keunggulan serta FAQ Khusus melalui Agent AI → Pengaturan → Knowledge Sources → Product.
Detail Agent AI
{{ agentDetailAgent.storeName||'Toko belum diisi' }}
Asal Pengiriman
{{ agentDetailAgent.shipping?.originLabel || 'Belum diatur' }}Kurir Aktif
{{ (agentDetailAgent.shipping?.couriers||[]).join(', ') || '-' }}Produk yang ditangani
Testimoni Agent
Kelola gambar dan video MP4 referensi milik Agent ini.Belum ada testimoni.
Gambar JPG/PNG/WEBP maksimal 8 MB • Video MP4 maksimal 32 MB.
SOP{{ agentDetailAgent.globalSop||'-' }}
Strategi Closing{{ agentDetailAgent.salesStrategy||'-' }}
FAQ Umum{{ agentDetailAgent.generalFaq||'-' }}
Belajar dari CS{{ agentDetailAgent.learnedKnowledgeSummary?.active||0 }} knowledge aktif • {{ agentDetailAgent.learnedKnowledgeSummary.review }} perlu ditinjau
Yakin ingin menghapus {{ agentDetailAgent.name }}? Customer terkait perlu ditugaskan ulang.
Agent Configuration
Atur profil, perilaku, sumber pengetahuan, produk, testimoni, dan pengiriman dalam satu tempat.
Terakhir diubah {{ formatDateTime(agentForm.updatedAt) }} oleh {{ agentForm.updatedByName||'System' }}
{{ agentForm.storeName||'Lengkapi identitas dan perilaku Agent' }}
Identitas Agent dan nomor WhatsApp yang ditangani.
Satu nomor WhatsApp hanya dapat ditangani satu Agent.
Mengatur gaya berbicara dan kecepatan respons Agent.
{{ entry.action==='CREATE'?'Membuat Agent':'Memperbarui Agent' }}
Kelola sumber pengetahuan yang benar-benar dipakai Agent saat menjawab customer.
Identitas admin, batasan jawaban, alur percakapan, dan aturan handoff.
Cara menawarkan, menangani keberatan, follow-up, dan mengarahkan customer ke transaksi.
Gunakan format pertanyaan dan jawaban. Cocok untuk kebijakan umum yang berlaku lintas produk.
Knowledge hasil belajar CS
Jawaban CS setelah handoff dianalisis, dipisahkan per Agent, dan disaring dari data pribadi maupun kasus order tertentu.
{{ agentForm.learnedKnowledgeSummary?.active||0 }} aktif • {{ agentForm.learnedKnowledgeSummary?.review||0 }} perlu ditinjau • {{ agentForm.learnedKnowledgeSummary?.disabled||0 }} nonaktif
Memuat knowledge...
Belum ada knowledge yang dipelajari dari balasan CS.
{{ row.status==='ACTIVE'?'Aktif':row.status==='REVIEW'?'Perlu ditinjau':'Nonaktif' }} • {{ row.topic }}
{{ row.question }}
{{ row.answer }}
Keyakinan {{ Math.round((row.confidence||0)*100) }}% • dipakai {{ row.usedCount||0 }} kali
Tinjau ulang sebelum {{ formatDateTime(row.expiresAt) }}
Pilih produk yang ditangani Agent, lalu kelola fakta dan FAQ produk di bawah.
Isi program, fasilitas, durasi, benefit, ketentuan, spesifikasi, dan fakta penting produk ini.
{{ productKnowledgeDrafts[p.id].brief.length.toLocaleString('id-ID') }}/20.000
Hanya pertanyaan dan jawaban yang spesifik untuk produk ini.
{{ productKnowledgeDrafts[p.id].faq.length.toLocaleString('id-ID') }}/20.000
Gambar atau video MP4 menjadi referensi yang dapat dikirim Agent sesuai konteks.
Belum ada testimoni.
Gambar JPG/PNG/WEBP maksimal 8 MB • Video MP4 maksimal 32 MB.
Dipakai untuk produk fisik dengan ongkir realtime.
Dipilih: {{ agentForm.shipping.originLabel }}
Tambahkan RAJAONGKIR_API_KEY ke .env agar pencarian lokasi aktif.
Ketik minimal 2 huruf. Pilihan kota/kecamatan muncul otomatis.
{{ agentSaveError }}
{{ agentSaveSuccess }}
Draft sebelumnya berhasil dipulihkan. Periksa lalu simpan perubahan.
{{ agentHasUnsavedChanges?(agentDraftUpdatedAt?'Belum disimpan • draft otomatis '+formatDateTime(agentDraftUpdatedAt):'Belum disimpan'):'Semua perubahan sudah tersimpan' }}
Customer 360
Percakapan, status, minat, order, dan memori Agent AI dalam satu tampilan.
{{ profileLocation(customerProfileTarget)||'Alamat belum lengkap' }}
{{ customerProfileTarget?.profile?.email||'Email belum tersimpan' }}
{{ customerProfileTarget?.isAiActive?'Agent AI aktif':'Mode manual' }}
{{ handoffReason(customerProfileTarget) }}
Produk diminati
Produk pernah dibeli
{{ customerProfileTarget?.profile?.csNotes||customerProfileTarget?.salesIntelligence?.reason||'Belum ada catatan internal.' }}
{{ event.text||event.caption||event.type||'Aktivitas tercatat' }}
Belum ada produk aktif.
Belum ada checkout yang tersimpan untuk customer ini.
Catatan internal ini ikut menjadi konteks Agent AI, tetapi tidak disebut sebagai “catatan CS” kepada customer.
Terakhir diperbarui: {{ customerProfileUpdatedAt ? formatDateTime(customerProfileUpdatedAt) : 'belum pernah' }}
Panggil template dengan mengetik /pemicu di chat. Atur agar berlaku untuk semua nomor CS atau hanya nomor tertentu.
Isi tidak langsung terkirim; CS masih bisa mengeditnya di kolom chat.
Boleh dikosongkan agar dibuat dari judul.
Jika dipilih, balasan ini hanya terlihat saat membuka chat dari nomor CS tersebut.
Atur role dan ruang kerja yang boleh diakses.
Belum ada nomor WA.
Belum ada Agent AI.