Pembuat Chatbot

Buat Chatbot WhatsApp Tanpa Kode

Rancang alur percakapan secara visual dengan seret dan lepas. Tangani dukungan, penjualan, pemesanan, dan FAQ 24/7. Serah terima mulus ke agen manusia saat diperlukan. Alur chatbot tersedia di paket Business dan uji coba gratis 14 hari.

✦ Uji coba gratis 14 hari · Nomor WhatsApp Business Anda sendiri · Meta menagih pesan secara langsung

Pembuat Alur Visual Seret dan Lepas

Tanpa kode. Mulai alur dari pesan pertama pelanggan, pesan masuk apa pun, kata kunci, atau secara manual. Lalu rangkai langkah: kirim pesan atau template, tunggu balasan atau jeda, bercabang berdasarkan balasan tombol atau daftar dan kondisi, atur kolom, tambah atau hapus tag, ubah tahap pipeline, tugaskan agen, dan akhiri. Mulai dari salah satu dari 4 alur awal per industri.

  • Antarmuka visual seret dan lepas
  • Logika kondisional dan percabangan
  • Serah terima agen dengan konteks lengkap
WhatsApp Visual Chatbot Flow Diagram
Serah Terima Agen

Serah Terima Bot-ke-Agen Manusia yang Mulus

01

1. Percobaan Resolusi Bot

Chatbot menjawab FAQ, mengumpulkan detail utama, dan memproses pertanyaan menggunakan aturan logika visual.

02

2. Permintaan Transfer

Saat pelanggan mengetuk 'Bicara dengan agen' (cabang tombol atau daftar), langkah 'tugaskan agen' menyerahkan obrolan ke tim Anda.

03

3. Pengambilalihan Langsung

Agen melihat seluruh percakapan, tag, dan kolom kontak di kotak masuk tim bersama, lalu membalas dari sana.

Perbandingan Otomatisasi

Otomatisasi Chatbot vs. Menu Interaktif vs. Dukungan Langsung

Pahami efisiensi respons, kompleksitas pengaturan, dan perbedaan biaya.

Kemampuan Chatbot Otomatis Menu Tombol Interaktif Dukungan Langsung Murni
Latensi Respons Detik (otomatis) Detik (opsi tetap) Menit hingga jam (Bergantung antrean)
Tingkat Kompleksitas Sedang (cabang, kondisi, kolom) Rendah (Rute statis tetap) Tinggi (Bergantung kapasitas manusia)
Jam Operasional 24/7/365 (Tanpa pengawasan) 24/7/365 (Tanpa pengawasan) Hanya jam bisnis
Biaya Operasional Rendah (tanpa waktu agen per obrolan) Rendah (tanpa waktu agen per obrolan) Tertinggi (waktu agen di setiap obrolan)
Webhook

Terima balasan pelanggan sebagai webhook bertanda tangan

{
  "id": "evt_01JC9W2K7Q",
  "type": "message.received",
  "createdAt": "2026-10-07T10:42:00.000Z",
  "workspaceId": "ws_9f2c",
  "data": {
    "message": {
      "id": "msg_7d1e",
      "conversationId": "conv_3a90",
      "contactId": "ct_88b1",
      "from": "+919812345678",
      "type": "interactive",
      "text": "Track my order",
      "reply": {
        "kind": "button",
        "id": "track_order",
        "title": "Track my order"
      },
      "context": {
        "messageId": "msg_6c02",
        "clientReference": "order-1042"
      },
      "form": null,
      "referral": null,
      "timestamp": "2026-10-07T10:41:58.000Z"
    },
    "contact": {
      "id": "ct_88b1",
      "phone": "+919812345678",
      "name": "Asha"
    }
  }
}
import express from 'express';
import { createHmac, timingSafeEqual } from 'node:crypto';

const app = express();
const SECRET = process.env.SM_WEBHOOK_SECRET; // the whole whsec_… string

function verify(rawBody, headers) {
  const ts = headers['x-sm-timestamp'];
  const sigs = headers['x-sm-signature'];
  if (!/^\d+$/.test(ts ?? '') || typeof sigs !== 'string') return false;
  if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
  const expected = createHmac('sha256', SECRET).update(`${ts}.`).update(rawBody).digest();
  return sigs.split(',').some((part) => {
    const m = /^v1=([0-9a-f]{64})$/.exec(part.trim());
    return m !== null && timingSafeEqual(Buffer.from(m[1], 'hex'), expected);
  });
}

app.post('/webhooks/startmessaging', express.raw({ type: 'application/json' }), (req, res) => {
  if (!verify(req.body, req.headers)) return res.sendStatus(401);
  res.sendStatus(200); // answer within 5 seconds, then do the work

  const event = JSON.parse(req.body);
  if (event.type === 'message.received' && event.data.message.reply?.id === 'track_order') {
    // look up the order and reply via POST /api/v1/messages
  }
});
import hmac, hashlib, json, os, time
from flask import Flask, request

app = Flask(__name__)
SECRET = os.environ['SM_WEBHOOK_SECRET'].encode()  # the whole whsec_… string

def verify(raw_body, ts, sigs):
    if not ts or not ts.isdigit() or not sigs:
        return False
    if abs(time.time() - int(ts)) > 300:
        return False
    expected = hmac.new(SECRET, f'{ts}.'.encode() + raw_body, hashlib.sha256).hexdigest()
    return any(
        hmac.compare_digest(part.strip()[3:], expected)
        for part in sigs.split(',') if part.strip().startswith('v1=')
    )

@app.post('/webhooks/startmessaging')
def startmessaging_webhook():
    raw = request.get_data()
    if not verify(raw, request.headers.get('X-SM-Timestamp'), request.headers.get('X-SM-Signature')):
        return '', 401
    event = json.loads(raw)
    if event['type'] == 'message.received':
        reply = event['data']['message'].get('reply') or {}
        print('Customer tapped:', reply.get('id'))
    return '', 200
FAQ

Chatbot — FAQ

Apakah chatbot dapat dialihkan ke agen manusia?

Ya. Tambahkan langkah 'tugaskan agen' di titik mana pun seseorang perlu mengambil alih — misalnya setelah tombol 'Bicara dengan agen'. Obrolan berpindah ke tim Anda di kotak masuk bersama dengan seluruh percakapan, tag, dan kolom kontak, sehingga agen dapat membantu tanpa meminta pelanggan mengulang.

Apakah saya memerlukan keterampilan coding untuk membangun chatbot WhatsApp?

Tidak. Pembuat alur visual sepenuhnya tanpa kode — seret langkah ke kanvas, hubungkan, lalu atur pesan dan kondisi. Untuk logika kustom, setiap pesan masuk juga dikirim ke sistem Anda sebagai webhook bertanda tangan, dan Anda dapat membalas melalui REST API.

Jenis pesan apa saja yang dapat ditangani chatbot secara otomatis?

Chatbot dapat mengirim teks, media, dan template yang disetujui, tombol balasan (hingga 3), dan pesan daftar (hingga 10 baris). Chatbot dapat bercabang berdasarkan pilihan pelanggan atau kondisi, dan menunggu balasan teks bebas sebelum melanjutkan.

Dapatkah saya menghubungkan chatbot ke CRM atau database eksternal?

Alur memperbarui CRM bawaan StartMessaging secara langsung — mengatur kolom kontak, menambah atau menghapus tag, dan memindahkan kontak antar tahap pipeline. Untuk sinkronisasi dengan CRM atau database eksternal, gunakan webhook (pesan baru, perubahan kontak) dan REST API, atau hubungkan Zapier, Make, atau Pabbly.

Bagaimana cara menguji chatbot sebelum diluncurkan?

Tambahkan nomor telepon Anda sendiri sebagai kontak dan beri alur pemicu kata kunci yang hanya diketahui tim Anda (misalnya 'testbot'). Kirim kata kunci itu ke nomor WhatsApp Business Anda untuk menjalankan alur, lalu ganti ke pemicu sebenarnya setelah Anda puas.

Paket mana yang mencakup alur chatbot?

Paket Business, dan uji coba gratis 14 hari. Membuat, menyimpan, dan mengaktifkan alur memerlukan Business. Di paket apa pun Anda tetap dapat membuka, menjeda, atau menghapus alur yang dibuat sebelumnya, misalnya selama uji coba, dan alur itu berjalan lagi saat workspace berada di Business. Balasan otomatis kata kunci, yang menjawab kata kunci dengan teks atau template tanpa alur, tersedia di Team dan Business.

WhatsApp API

Bangun Chatbot WhatsApp Pertama Anda

Alur chatbot tersedia di paket Business dan uji coba gratis 14 hari. Balasan otomatis kata kunci tersedia di Team dan Business.