> For the complete documentation index, see [llms.txt](https://docs.cekat.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cekat.ai/chat/new-connected-platform-settings/channel-flow-builder.md).

# Channel Flow Builder

Flow Builder adalah tempat membuat dan mengatur flow otomatis untuk sebuah channel. Sebelumnya flow dibuat di halaman khusus (Setting → Flow) lalu dipilih per inbox. Sekarang semuanya ada di tab **Flow Builder** pada Channel Settings, sehingga flow bisa dibuat, dipilih, dan diaktifkan tanpa berpindah halaman.

Tab Flow Builder hanya muncul untuk channel yang mendukung flow. Flow dipakai ketika **Active Setup** channel diatur ke **Flow**.

**Catatan istilah:** pada antarmuka, istilah *Workflow* dan *Flow* dipakai bergantian (misalnya tombol New Workflow dan nama Untitled Flow). Dokumentasi ini menyebutnya **flow**.

***

### Mengenal Halaman Flow Builder

<figure><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2F1g9rDGFPop2ffQ3NVYcr%2Fimage.png?alt=media&amp;token=145828e5-a272-4bde-8621-c040f84aff19" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="200.03125">Area</th><th>Fungsi</th></tr></thead><tbody><tr><td><strong>Nama flow dan Set as Live</strong> (kiri atas)</td><td>Menampilkan nama flow yang sedang dibuka, dan tombol untuk mengaktifkan flow tersebut.</td></tr><tr><td><strong>Panel kiri</strong></td><td>Tiga menu: New Workflow, Workflow List, dan Flow Setting.</td></tr><tr><td><strong>Canvas</strong></td><td>Area untuk menyusun node flow.</td></tr><tr><td><strong>Kontrol canvas</strong> (kiri bawah)</td><td>Fit view, zoom in dan zoom out, serta undo dan redo.</td></tr><tr><td><strong>Nodes to fix</strong> (kanan bawah)</td><td>Daftar node yang belum lengkap dan perlu diperbaiki sebelum flow bisa disimpan.</td></tr><tr><td><strong>Save</strong> (kanan atas)</td><td>Menyimpan perubahan flow.</td></tr></tbody></table>

***

### Panel Kiri

#### New Workflow

Membuat flow baru dengan nama **Untitled Flow**. Canvas masih kosong dan hanya menampilkan **Start point**.

<p align="center"><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2FCnjrMhEALVPJ02CaHTC9%2Fimage.png?alt=media&amp;token=8f03707e-d2be-4212-8f43-7a7ec47f2a69" alt=""></p>

#### Workflow List

Menampilkan semua flow yang pernah dibuat, lengkap dengan waktu terakhir diedit.

* Gunakan kolom **Search Workflow** untuk mencari flow.
* Klik sebuah flow untuk membukanya di canvas.
* Klik ikon titik tiga di samping flow untuk membuka menu:

<table><thead><tr><th width="199.91015625">Menu</th><th>Fungsi</th></tr></thead><tbody><tr><td><strong>Set as Live</strong></td><td>Mengaktifkan flow tersebut.</td></tr><tr><td><strong>Duplicate</strong></td><td>Membuat salinan flow, berguna untuk membedakan flow antar channel (lihat Aturan Flow Builder).</td></tr><tr><td><strong>Delete</strong></td><td>Menghapus flow.</td></tr></tbody></table>

<p align="center"><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2FQO76Nj0exSvCLt6aArfH%2Fimage.png?alt=media&amp;token=53330d92-3c91-4a3d-96c4-acfe24f174a7" alt="" data-size="original"></p>

#### Flow Setting

Mengatur **Chat Distribution Method**, yaitu cara percakapan dibagikan ke agent ketika percakapan masuk ke **End Flow**.

<table><thead><tr><th width="199.81640625">Metode</th><th>Keterangan</th></tr></thead><tbody><tr><td><strong>Least Assigned First</strong></td><td>Percakapan di-assign ke agent dengan jumlah chat aktif paling sedikit.</td></tr><tr><td><strong>Round Robin</strong></td><td>Percakapan dibagikan merata ke semua agent secara bergiliran.</td></tr></tbody></table>

<figure><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2FTyWo3wXvzOlMvulafisx%2Fimage.png?alt=media&amp;token=5f630a56-1ecc-4667-a171-5d798de76568" alt="" width="563"><figcaption></figcaption></figure>

***

### Membangun Flow

Setiap flow dimulai dari **Start point** dengan label *When a conversation starts*. Klik tombol **+** di bawahnya untuk menambahkan node pertama. Tiga pilihan tersedia:

<table><thead><tr><th width="199.70703125">Pilihan</th><th>Fungsi</th></tr></thead><tbody><tr><td><strong>Add Condition</strong></td><td>Membuat percabangan berdasarkan kondisi.</td></tr><tr><td><strong>Add Action</strong></td><td>Menjalankan sebuah aksi.</td></tr><tr><td><strong>End Flow</strong></td><td>Mengakhiri flow dan menentukan siapa yang menangani percakapan.</td></tr></tbody></table>

Sebelumnya, node yang bisa ditambahkan langsung dari Start point hanya Condition. Sekarang Action dan End Flow juga bisa ditambahkan dari Start point, sehingga flow sederhana bisa dibuat tanpa condition.

<figure><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2FY3R1BXgOb25Je4uiCGNq%2FScreenshot%202026-10-14%20at%2009.33.50.png?alt=media&amp;token=94a98a0b-30d4-48ec-bbd3-23b58d9edac1" alt=""><figcaption></figcaption></figure>

#### Condition

Condition membuat percabangan berdasarkan isi atau waktu pesan pertama customer.

| Condition              | Fungsi                                                                                                                                                                                                                                                                                                                                                              |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **First Message Text** | <p>Memeriksa apakah pesan pertama mengandung teks tertentu. Pisahkan beberapa frasa dengan tanda click <code>tab</code><br><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2FXJ715hvGTXdjPZQUcI2s%2Fimage.png?alt=media&amp;token=875cd372-777d-4c94-95f5-022c3d1c71b2" alt=""></p> |
| **First Message Time** | Memeriksa apakah pesan pertama dikirim dalam rentang waktu tertentu.                                                                                                                                                                                                                                                                                                |

Setelah condition dipilih, sistem otomatis membuat dua card: card condition dan card **Else** untuk kondisi lain yang tidak terpenuhi. Condition dievaluasi dari kiri ke kanan, sehingga hanya condition paling kiri yang cocok yang dijalankan lebih dulu

<figure><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2F1H3iWK7YnKFOv1qfbFdn%2Fimage.png?alt=media&amp;token=9f1fe005-feb8-42f4-8541-8906a23a48dc" alt=""><figcaption></figcaption></figure>

#### Action

Action menjalankan sebuah aksi pada percakapan. Setiap action diberi ID otomatis (contoh: A-01) dan pilih jenis aksinya langsung di dalam node.

| Aksi                    | Fungsi                                         |
| ----------------------- | ---------------------------------------------- |
| **Send Message**        | Mengirim pesan otomatis.                       |
| **Add Label**           | Menambahkan label ke percakapan.               |
| **Add Collaborator**    | Menambahkan collaborator ke percakapan.        |
| **Jump to Action**      | Melompat ke action lain di dalam flow.         |
| **Webhook**             | Memanggil webhook.                             |
| **Message with Button** | Mengirim pesan WhatsApp dengan pilihan button. |

<figure><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2FLFJQq9TYJNJ7emLB9u6b%2Fimage.png?alt=media&amp;token=0da90f43-60c5-43fe-ac86-684672233226" alt=""><figcaption></figcaption></figure>

Pada **Send Message** dan **Message with Button**, variabel berikut bisa dipakai di isi pesan:

| Variabel                   | Isi                    |
| -------------------------- | ---------------------- |
| `{{contact.display_name}}` | Nama contact           |
| `{{contact.phone_number}}` | Nomor WhatsApp contact |

**Message with Button**

**Message with Button** sekarang menjadi bagian dari node **Action**. Sebelumnya fitur ini adalah node tersendiri.

Setiap kali button ditambahkan, cabang untuk button tersebut dibuat otomatis di bawah node, dengan label *When the button is clicked* dan ID (contoh: AB-01, AB-02, AB-03). Selain itu, satu cabang **Fallback Route** (contoh: FR-01) dengan label *If not matched* dibuat otomatis untuk balasan yang tidak cocok dengan button manapun.

Dari tiap cabang, lanjutkan flow dengan menekan tombol **+** di bawahnya.

<figure><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2FPx5cQghBoMD2OPgMep34%2Fimage.png?alt=media&amp;token=d4116730-a280-4076-a49b-4d1b2b9f04f9" alt=""><figcaption></figcaption></figure>

#### End Flow

**End Flow** mengakhiri flow dan menentukan siapa yang menangani percakapan setelahnya. Setiap End Flow diberi ID otomatis (contoh: EF-01) dan menampilkan ringkasan penanganannya, misalnya:

* **AI + Team**: menampilkan AI Agent, Human Agent, dan Selected Team.
* **Team**: menampilkan Human Agent dan Selected Team.

**Team wajib dipilih** pada setiap End Flow, dan agent hanya bisa ditambahkan dari anggota team yang dipilih (lihat Aturan Flow Builder).

Pembagian percakapan ke agent mengikuti **Chat Distribution Method** pada Flow Setting.

**Traffic Share**

Jika sebuah flow punya lebih dari satu End Flow, **Traffic Share** mengatur persentase percakapan yang masuk ke masing-masing End Flow. Nilainya diatur langsung dari bagan flow, lewat slider atau dengan mengetik angka pada kolom di bawah End Flow, tanpa perlu membuka pengaturan node.

Indikator persentase (contoh: **100%**) di atas cabang menunjukkan total Traffic Share dari seluruh End Flow. Total ini **harus 100%** (lihat Aturan Flow Builder).

Contoh: dua End Flow dengan Traffic Share 50 dan 50 membagi percakapan masuk secara merata ke keduanya.

<figure><img src="https://3693109682-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZNZlvyOVkZXyd3pz2Cql%2Fuploads%2FFrhAXb9QAbmrmZ5kyBhF%2Fimage.png?alt=media&amp;token=90471d8c-097b-41c6-b7cf-f1a629355472" alt=""><figcaption></figcaption></figure>

***

### Menyimpan dan Mengaktifkan Flow

1. Lengkapi semua node. Panel **Nodes to fix** di kanan bawah menampilkan node yang masih belum lengkap.
2. Klik **Save** untuk menyimpan flow.
3. Klik **Set as Live**, dari header canvas atau dari menu titik tiga pada Workflow List, untuk mengaktifkan flow.

Flow yang node-nya belum lengkap tidak bisa disimpan dan diaktifkan.

***

### Aturan Baru Pembuatan Flow

<table><thead><tr><th width="239.63671875"></th><th></th></tr></thead><tbody><tr><td><strong>Garis penghubung diatur otomatis</strong></td><td>Garis antar node tidak bisa diatur manual. Garis mengikuti titik tempat node ditambahkan.</td></tr><tr><td><strong>Flow yang dihapus akan mengembalikan channel ke Basic setting</strong></td><td>Satu flow bisa dipakai oleh lebih dari satu channel. Jika flow yang sedang aktif di sebuah channel dihapus dari channel lain, semua channel yang memakai flow tersebut otomatis kembali memakai Basic setting.</td></tr><tr><td><strong>Flow harus lengkap sebelum diaktifkan</strong></td><td>Semua node wajib dilengkapi sebelum flow bisa disimpan dan diaktifkan lewat <strong>Set as Live</strong>.</td></tr><tr><td><strong>Flow yang dipakai di beberapa channel bersifat mirroring</strong></td><td>Jika satu flow dipakai di lebih dari satu channel, perubahan pada flow tersebut berlaku di semua channel yang memakainya. Untuk membedakan flow antar channel, gunakan <strong>Duplicate</strong> pada Workflow List, lalu pakai salinannya di channel yang berbeda. Dengan begitu perubahan flow di satu channel tidak memengaruhi channel lain.</td></tr><tr><td><strong>Agent hanya bisa ditambahkan melalui team, dan team wajib dipilih</strong></td><td>Pada End Flow, agent hanya bisa dipilih dari anggota team yang dipilih. Setiap End Flow wajib memilih team, sehingga End Flow tanpa team dianggap belum lengkap.</td></tr><tr><td><strong>Total Traffic Share harus 100%</strong></td><td>Total Traffic Share dari End Flow dalam sebuah flow harus tepat 100%. Indikator persentase di atas cabang End Flow menunjukkan totalnya.</td></tr><tr><td><strong>Sesi Flow Berjalan</strong></td><td>Ketika percakapan di-resolve lalu customer mengirim pesan baru, flow dimulai lagi dari Start point dan percakapan sebelumnya dianggap sesi baru.</td></tr></tbody></table>
