{"id":500,"date":"2025-05-23T09:29:57","date_gmt":"2025-05-23T09:29:57","guid":{"rendered":"https:\/\/abatablaster.xyz\/?page_id=500"},"modified":"2025-05-23T17:02:14","modified_gmt":"2025-05-23T17:02:14","slug":"template-library","status":"publish","type":"page","link":"https:\/\/abatablaster.xyz\/index.php\/template-library\/","title":{"rendered":"Template Library"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"ms\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Library Template Prompt \u2013 AbataBlaster<\/title>\n  <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/sweetalert2@11\"><\/script>\n  <script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.22.2\/firebase-app-compat.js\"><\/script>\n  <script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.22.2\/firebase-auth-compat.js\"><\/script>\n  <script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.22.2\/firebase-firestore-compat.js\"><\/script>\n\n  <script>\n    const firebaseConfig = {\n      apiKey: \"AIzaSyBou8nlJ7uPZ4ioOJapzC8Dn3-K7Qs-yco\",\n      authDomain: \"whatsapp-ai-saas.firebaseapp.com\",\n      projectId: \"whatsapp-ai-saas\",\n      storageBucket: \"whatsapp-ai-saas.appspot.com\",\n      messagingSenderId: \"287462007544\",\n      appId: \"1:287462007544:web:913db884edf906a37cd10d\"\n    };\n    firebase.initializeApp(firebaseConfig);\n    const auth = firebase.auth();\n    const db = firebase.firestore();\n  <\/script>\n\n  <style>\n    body { font-family: 'Poppins', sans-serif; background: #f1f8e9; padding: 30px; }\n    .template-card {\n      background: white; border: 1px solid #c5e1a5; padding: 20px;\n      border-radius: 12px; margin-bottom: 20px; box-shadow: 0 4px 8px rgba(0,0,0,0.05);\n    }\n    .template-card h3 { margin-top: 0; color: #2e7d32; }\n    button {\n      background-color: #43a047; color: white; padding: 10px 14px;\n      border: none; border-radius: 6px; cursor: pointer; font-weight: bold;\n    }\n    button:hover { background-color: #2e7d32; }\n  <\/style>\n<\/head>\n<body>\n\n  <h2 style=\"color:#1b5e20;\">\ud83d\udcda Library Template Prompt<\/h2>\n  <p style=\"color:#388e3c;\">Klik butang &#8220;\u2b07\ufe0f Muat Turun&#8221; untuk simpan template. Anda boleh muat naik semula dalam sistem AI Auto Reply.<\/p>\n  <div style=\"margin-bottom: 20px; display: flex; gap: 10px; flex-wrap: wrap;\">\n    <button onclick=\"tambahTemplatePopup()\">\u2795 Tambah Template Baru<\/button>\n    <a href=\"\/index.php\/ai-auto-reply\/\">\n      <button style=\"background-color: #00796b;\">\ud83d\udd01 Ke AI Auto Reply<\/button>\n    <\/a>\n  <\/div>\n  \n\n  <div class=\"template-card\">\n    <h3>\ud83d\udd25 Template: Promosi AbataBlaster.xyz<\/h3>\n    <p>Sesuai untuk bisnes, team sales, atau peniaga online yang ingin sistem auto-reply, follow-up dan broadcast WhatsApp.<\/p>\n    <button onclick=\"muatTurunTemplate('abataBlaster')\" style=\"background:#5c6bc0;\">\u2b07\ufe0f Muat Turun<\/button>\n  <\/div>\n\n  <div class=\"template-card\">\n    <h3>\ud83d\udcd8 Template \u2013 Kelas Tuition (specifik kelas mengaji)<\/h3>\n    <p>Auto Reply khas untuk Akademi Mengaji Abata, lengkap dengan yuran, lokasi, jadual dan info ibubapa.<\/p>\n    <button onclick=\"muatTurunTemplate('kelas_mengaji_abata')\" style=\"background:#5c6bc0;\">\u2b07\ufe0f Muat Turun<\/button>\n  <\/div>\n\n  <div id=\"templateList\"><\/div>\n\n  <!-- Tambah template lain nanti -->\n\n  <script>\n    const templateLibrary = {\n      abataBlaster: {\n        promptUtama: `Anda ialah AI WhatsApp untuk sistem AbataBlaster \u2013 satu platform AI Auto Reply dan Broadcast WhatsApp. Anda bantu peniaga automasi balasan mesej pelanggan secara profesional.\n    \n    \ud83c\udfaf Gaya bahasa: mesra, membantu, dan sedikit meyakinkan. Tidak terlalu formal. Jawab dengan niat untuk bantu pelanggan faham, tertarik, dan bersedia untuk buat keputusan.\n    \n    \u2705 Sistem ini sesuai untuk:\n    - Peniaga online, owner produk, agen jualan\n    - Team sales dan dropship\n    - Sesiapa yang ingin close sale lebih pantas\n    \n    \ud83d\udca1 Fungsi utama:\n    - AI balas mesej pelanggan 24 jam\n    - Auto follow-up mesej jika pelanggan senyap\n    - Broadcast ke 1000+ contact\n    - Laporan & statistik lead\n    - Notifikasi Telegram jika pelanggan buat bayaran\n    \n    \ud83e\udde0 Tugas anda:\n    - Jawab semua soalan pelanggan\n    - Kenal pasti minat mereka\n    - Beri maklumat tepat & ringkas\n    - Dorong mereka untuk mula percubaan atau bertanya lebih lanjut`,\n        payment_info: \"Bayar ke akaun Maybank 1234567890 atas nama ABATA GLOBAL.\",\n        keywordPrompt: {\n          harga: \"Kami ada beberapa pakej: Trial (Free 3 hari), Basic, Starter, Pro dan Enterprise. Klik untuk info lanjut.\",\n          demo: \"Boleh! Anda boleh cuba sistem ini secara percuma selama 3 hari. Klik mula percubaan.\",\n          admin: \"Baik, saya akan bantu hubungkan anda dengan admin sebentar lagi.\",\n          fungsi: \"Sistem ini ada Auto Reply, Follow-Up, Broadcast, dan notifikasi Telegram. Sesuai untuk close sale cepat.\",\n          promosi: \"Untuk pengguna baru, kami ada diskaun 20%! Jom cuba sebelum tamat.\"\n        }\n      },\n      kelas_mengaji_abata: {\n        promptUtama: `Anda ialah AI WhatsApp rasmi untuk Akademi Mengaji Abata \u2013 pusat pembelajaran Al-Quran & Fardhu Ain untuk kanak-kanak secara tersusun dan menyeronokkan.\n    \n    Gaya bahasa: sopan, membantu dan mesra ibu bapa. Jika pelanggan mesej pertama kali, beri salam dan tanya umur anak serta kawasan tempat tinggal.\n    \n    Akademi ini sesuai untuk:\n    \u2013 Ibu bapa yang mahu anak belajar mengaji dan fardhu ain\n    \u2013 Anak-anak yang perlukan kelas kecil dan fokus\n    \n    Fungsi utama:\n    \u2013 Kelas 2 kali seminggu \u00d7 2 jam setiap sesi\n    \u2013 Group kecil (10\u201315 orang) untuk fokus belajar\n    \u2013 Gabungan Al-Quran, tajwid dan fardhu ain\n    \u2013 Program bulanan untuk ibu bapa: bengkel fardhu ain, tadarus, dll.\n    \n    Jika pelanggan tanya:\n    \u2013 **Yuran** \u2192 RM100 seorang, RM170 untuk 2 orang, RM250 untuk 3 orang\n    \u2013 **Lokasi** \u2192 tanya dahulu kawasan mereka\n    \u2013 **Jadual** \u2192 tanya bila mereka available\n    \u2013 **Usia** \u2192 sesuai untuk 6\u201312 tahun\n    \n    \ud83c\udfaf Tugas anda: bantu ibu bapa faham sistem, yakinkan mereka kelebihan kelas ini, dan bantu mereka untuk daftar \/ hadir sesi percubaan.`,\n        payment_info: \"Bayaran boleh dibuat ke akaun Maybank 1234567890 atas nama AKADEMI MENGAJI ABATA. Sila simpan resit dan maklumkan selepas bayaran dibuat. Untuk 2 orang: RM170. Untuk 3 orang: RM250.\",\n        keywordPrompt: {\n          \"yuran|bayaran|harga\": \"Yuran adalah RM100 untuk seorang. Tapi kalau daftar 2 orang (adik-beradik), RM170 sahaja. Untuk 3 orang RM250. Semua kelas termasuk mengaji dan fardhu ain.\",\n          \"lokasi|kat mana|area mana\": \"Akademi kami beroperasi di beberapa kawasan. Boleh tanya dulu lokasi anda, nanti kami semak cawangan terdekat.\",\n          \"jadual|masa|hari apa\": \"Kelas berlangsung 2 kali seminggu, 2 jam setiap sesi. Jadual fleksibel ikut cawangan. Kami akan sesuaikan ikut masa anda.\",\n          \"umur|usia|anak umur berapa\": \"Kelas ini sesuai untuk kanak-kanak 6\u201312 tahun. Tapi boleh juga bincang kalau luar dari lingkungan tu.\",\n          \"program ibubapa|fardhu ain|tadarus\": \"Ya, ibu bapa juga boleh join bengkel bulanan kami seperti fardhu ain & tadarus \u2013 percuma jika anak daftar di akademi.\",\n          \"trial|percubaan|demo\": \"Boleh! Kami sediakan sesi percubaan supaya anak boleh rasa dulu suasana kelas. Boleh maklumkan lokasi dan umur anak untuk atur slot.\"\n        }\n      }\n    };\n\n    async function loadTemplateDariFirestore() {\n      const snapshot = await db.collection(\"template_prompts\").orderBy(\"createdAt\", \"desc\").get();\n      snapshot.forEach(doc => {\n        const item = doc.data();\n        const id = doc.id;\n        templateLibrary[id] = item.data;\n\n        const templateCard = document.createElement('div');\n        templateCard.className = 'template-card';\n        templateCard.innerHTML = `\n  <h3>${item.title}<\/h3>\n  <p>${item.desc}<\/p>\n  <button onclick=\"muatTurunTemplate('${id}')\" style=\"background:#5c6bc0;\">\u2b07\ufe0f Muat Turun<\/button>\n`;\n\n\n        document.getElementById('templateList').appendChild(templateCard);\n      });\n    }\n\n    function tambahTemplatePopup() {\n      Swal.fire({\n        title: 'Tambah Template Baharu',\n        html:\n          '<input id=\"templateTitle\" class=\"swal2-input\" placeholder=\"Tajuk Template\">' +\n          '<textarea id=\"templateDesc\" class=\"swal2-textarea\" placeholder=\"Penerangan Template\"><\/textarea>' +\n          '<input type=\"file\" id=\"templateFile\" accept=\".json\" class=\"swal2-file\">',\n        confirmButtonText: 'Muat Naik',\n        focusConfirm: false,\n        preConfirm: async () => {\n          const fileInput = document.getElementById('templateFile');\n          const file = fileInput.files[0];\n          const title = document.getElementById('templateTitle').value.trim();\n          const desc = document.getElementById('templateDesc').value.trim();\n\n          if (!file || !title || !desc) {\n            Swal.showValidationMessage('Sila isi semua maklumat dan pilih fail.');\n            return false;\n          }\n\n          try {\n            const text = await file.text();\n            const json = JSON.parse(text);\n\n            if (!json.promptUtama || !json.payment_info || !json.keywordPrompt) {\n              Swal.showValidationMessage('Fail tidak lengkap. Perlu ada promptUtama, payment_info, dan keywordPrompt.');\n              return false;\n            }\n\n            const id = 'template_' + Date.now();\n            templateLibrary[id] = json;\n\n            await db.collection(\"template_prompts\").doc(id).set({\n              title: title,\n              desc: desc,\n              data: json,\n              createdAt: new Date().toISOString()\n            });\n\n            const templateCard = document.createElement('div');\n            templateCard.className = 'template-card';\n            templateCard.innerHTML = `\n              <h3>${title}<\/h3>\n              <p>${desc}<\/p>\n              <button onclick=\"gunaTemplate('${id}')\">\ud83d\udce5 Guna Template Ini<\/button>\n              <button onclick=\"muatTurunTemplate('${id}')\" style=\"background:#5c6bc0; margin-left: 10px;\">\u2b07\ufe0f Muat Turun<\/button>\n            `;\n\n            document.getElementById('templateList').appendChild(templateCard);\n            Swal.fire('Berjaya!', 'Template berjaya ditambah.', 'success');\n\n          } catch (err) {\n            Swal.showValidationMessage('\u274c Gagal parse fail JSON: ' + err.message);\n          }\n        }\n      });\n    }\n\n    function muatTurunTemplate(templateId) {\n      const data = templateLibrary[templateId];\n      if (!data) return alert(\"\u274c Template tidak dijumpai.\");\n\n      const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application\/json' });\n      const url = URL.createObjectURL(blob);\n      const link = document.createElement('a');\n      link.href = url;\n      link.download = `${templateId}.json`;\n      document.body.appendChild(link);\n      link.click();\n      document.body.removeChild(link);\n      URL.revokeObjectURL(url);\n    }\n\n    document.addEventListener(\"DOMContentLoaded\", () => {\n      loadTemplateDariFirestore();\n    });\n  <\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Library Template Prompt \u2013 AbataBlaster \ud83d\udcda Library Template Prompt Klik butang &#8220;\u2b07\ufe0f Muat Turun&#8221; untuk simpan template. Anda boleh muat naik semula dalam sistem AI Auto Reply. \u2795 Tambah Template Baru \ud83d\udd01 Ke AI Auto Reply \ud83d\udd25 Template: Promosi AbataBlaster.xyz Sesuai untuk bisnes, team sales, atau peniaga online yang ingin sistem auto-reply, follow-up dan broadcast [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-500","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/pages\/500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=500"}],"version-history":[{"count":13,"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/pages\/500\/revisions"}],"predecessor-version":[{"id":524,"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/pages\/500\/revisions\/524"}],"wp:attachment":[{"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}