@extends('root') @section('title', 'Auto Reply') @push('styles') @endpush @section('content')
@include('components.breadcrumb', [ 'title' => 'Auto Reply', 'links' => [ ['url' => route('client.dashboard'), 'label' => 'Dashboard'], ], 'current' => 'Auto Reply' ]) @if(session('success')) @endif

Otomatisasi Pesan

Kelola balasan otomatis untuk meningkatkan responsivitas layanan Anda. Atur Welcome Message, filter kata kunci, dan template balasan cepat.

{{-- Main Interface --}}
@if($showWabaSelector && $wabaPools->isNotEmpty())
@endif
{{-- Tab 1: Welcome Message --}}
Welcome Message

Pesan ini akan dikirim otomatis jika pesan masuk tidak cocok dengan kata kunci apapun (Fallback).

@csrf
is_enabled) ? 'checked' : '' }} style="width: 3em; height: 1.5em;">
Aktifkan untuk mengirim pesan sambutan ke pelanggan baru atau setelah sesi berakhir.
Konfigurasi tombol dapat diatur di bawah.
Konfigurasi list menu.
{{-- Tab 2: Balasan Custom (Kata Kunci) --}}
Daftar Rule Otomatis

Atur balasan spesifik berdasarkan kata kunci yang diterima.

Buat Rule Baru
@if($customRules->isEmpty())
Belum ada rule

Mulai dengan membuat rule pertama Anda.

Buat Sekarang
@else
@foreach($customRules as $rule) @endforeach
# Kata Kunci Konten Balasan Target WABA Status Aksi
{{ $rule->sort_order }}
{{ $rule->keyword }} @if($rule->keyword_type === 'exact') Sama Persis @elseif($rule->keyword_type === 'starts_with') Berawalan @else Mengandung @endif
@if($rule->reply_type === 'text')
{{ Str::limit($rule->reply_payload['message'] ?? '-', 50) }} @elseif(in_array($rule->reply_type, ['image','video','audio','document','sticker']))
{{ $rule->reply_type }} @else
{{ $rule->reply_type }} @endif
@if($rule->wabaPool) {{ $rule->wabaPool->account_name ?? 'WABA' }} @else Semua Akun @endif
is_active) style="background-color: #e9ecef; border-color: #dee2e6;" @endif>
@csrf @method('DELETE')
@endif
{{-- Tab 3: Quick Reply --}}
Quick Replies

Template pesan cepat untuk agen CS.

Memuat data...

Belum ada Quick Reply

Buat template untuk mempercepat respon CS.

Shortcut Kategori Konten Tipe Aksi
Tambah Quick Reply
/
{{-- Panel: Teks --}}
{name} {agent_name}
{{-- Panel: Media --}}
{{-- Panel: Interactive --}}
Interactive Button
Interactive List
{{-- Tab 4: Greeting Message --}}
@php $pkg = $clientPackageType ?? \App\Enums\PackageType::SHARED; $isPkgShared = $pkg === \App\Enums\PackageType::SHARED; $isPkgDedicated = $pkg === \App\Enums\PackageType::DEDICATED; $isPkgSelfService = $pkg === \App\Enums\PackageType::SELF_SERVICE; $greetingApplyShared = $greetingSetting->apply_for_shared ?? true; $greetingApplyDedicated = $greetingSetting->apply_for_dedicated ?? true; $greetingApplySelfService = $greetingSetting->apply_for_self_service ?? true; $pkgLabel = $isPkgShared ? 'Shared' : ($isPkgDedicated ? 'Dedicated' : 'Self Service'); $pkgBadgeClass = $isPkgShared ? 'bg-info' : ($isPkgDedicated ? 'bg-success' : 'bg-purple'); @endphp
Greeting Message
Paket {{ $pkgLabel }}

Pesan sapaan otomatis dikirim sebagai service message (bukan campaign), maksimal 1x per 24 jam per nomor.

@csrf
is_active ?? false) ? 'checked' : '' }}>
Aktifkan untuk mengirim sapaan otomatis ke pelanggan yang baru menghubungi.
Pesan utility, non-marketing. Aman untuk kebijakan WABA.
Tipe Pesan Greeting bisa berupa teks atau interactive button (mendukung header media).
Konfigurasi Button
Header media harus URL HTTPS (image/video/document).
Judul tombol maksimal 20 karakter.
@if($isPkgShared) @else @endif
Preview Pesan
{{ $greetingSetting->message_template ?: \App\Models\GreetingSetting::DEFAULT_TEMPLATE }}
Test Kirim
@if($greetingWabaPools->isNotEmpty())
@endif
Informasi
  • Dikirim sebagai service message (utility)
  • Maks 1x per 24 jam per nomor per client
  • Tidak mempengaruhi kuota marketing
  • Otomatis skip jika sudah ada percakapan aktif
{{-- Tab 5: AI Reply (Enhanced Pipeline) --}}
{{-- AI Configuration Quick Links --}}
AI Setup & Persona

Pengaturan utama AI fallback.

@csrf {{-- Status --}}
is_active ?? false) ? 'checked' : '' }} style="width: 3em; height: 1.5em;">
Aktifkan AI untuk membalas pesan yang tidak cocok dengan rule apapun.
{{-- Company Context (default visible) --}}
Konteks Bisnis
{{-- Pengaturan lanjutan (opsional) --}}
{{-- Persona & Style --}}
Persona & Gaya
TanpaMinimalNormalBanyak
Maks karakter per pesan
{{-- Model Config --}}
Model AI
0 = deterministik, 1 = kreatif
{{-- Behavior Settings --}}
Behavior
Jumlah pesan terakhir yang diingat
response_delay_enabled ?? true) ? 'checked' : '' }}>
Tunda respon 1-3 detik agar terasa manusia
anti_repetition_enabled ?? true) ? 'checked' : '' }}>
Hindari jawaban yang sama berulang
{{-- Conversational Closer --}}
AI Conversational Closer
AI bisa kirim 1-3 pesan terpisah agar terasa natural
goal_tracking_enabled ?? false) ? 'checked' : '' }}>
Lacak tahapan lead (new → exploring → interested → registered)

Smart Follow-Up (Thinking Mode)
followup_enabled ?? false) ? 'checked' : '' }}>
Follow-up otomatis jika customer sunyi
Tunggu X menit sebelum follow-up
Per siklus percakapan
{{-- Escalation --}}
Escalation (Serah ke Admin)
Pisahkan dengan koma
Pesan yang dikirim saat AI serahkan ke admin
{{-- Fallback --}}
{{-- Custom System Prompt (Advanced) --}}
Jika diisi, prompt ini menggantikan prompt otomatis. Kosongkan agar sistem generate prompt dari pengaturan persona/escalation di atas.
{{-- Button Mapping (inside advanced) --}}
Button Mapping

Jika user menanyakan topik tertentu, AI akan menyarankan aksi tombol spesifik yang sudah Anda definisikan di sini.

Memuat...
{{-- Pipeline Flow --}}
Pipeline AI
@foreach(['Pesan Masuk','Emotion Detection','Escalation Check','Memory Load (riwayat)','LLM + Persona','Button Mapper','Anti-Repetisi','Delay Engine','Kirim via WA API'] as $i => $step)
{{ $i+1 }} {{ $step }}
@endforeach
{{-- Emotion Detection Info --}}
Emotion Detection
AI mendeteksi emosi customer secara otomatis:
neutral confused angry urgent disappointed happy

Jika emosi level tinggi → AI otomatis empati lebih. Jika terlalu marah → eskalasi ke admin.

{{-- Priority --}}
Urutan Prioritas
1Greeting Message
2Balasan Custom (keyword)
3Welcome Message
4AI Reply (fallback)
@endsection @push('scripts') @endpush