เปิด Voice Agent →
บทที่ 04 / 09
44% เสร็จแล้ว

วิธีแก้ไข AI Flow

ปรับลำดับการสนทนาของ Agent — เพิ่ม Node เขียน Prompt กำหนด Transition และ Publish เมื่อพร้อมใช้งาน

▶ 7:00 📄 อ่านได้ใน 5 นาที 🎯 ระดับเริ่มต้น
Screenshot: วิธีแก้ไข AI Flow
หน้าจอจริงในแพลตฟอร์ม: /dashboard/build/agents

หลังจากสร้าง Agent (ผู้ช่วย AI ที่ทำหน้าที่โทรคุยกับลูกค้า) ไม่ว่าจะสร้างจากศูนย์หรือจาก Template (แม่แบบสำเร็จรูป) คุณจะเข้าสู่ AI Flow (ผังการสนทนาที่ Agent ใช้คุยกับลูกค้า) หน้านี้จะแนะนำวิธีปรับ AI Flow ให้เข้ากับธุรกิจของคุณก่อนนำไปใช้งานจริง

ขั้นที่ 1

เปิด AI Flow ของ Agent

ที่หน้า BUILD → AI Agents ในคอลัมน์ Actions ของแต่ละแถว จะมีไอคอนรูปดินสอ (Edit Flow) ให้คุณคลิกที่ไอคอนนี้เพื่อเปิดผังการสนทนาของ Agent นั้น

(หากคุณเพิ่งสร้าง Agent ใหม่ ระบบจะเปิดผังให้โดยอัตโนมัติ)

เปิด AI Flow ของ Agent
ขั้นที่ 2

ทำความรู้จักหน้าจอ AI Flow

หน้าจอ AI Flow แบ่งออกเป็น 3 ส่วน ดังนี้

  • ด้านซ้าย — Palette (แถบรวมปุ่ม Node) และ Variables (ตัวแปรที่ใช้ใน Prompt)
  • ตรงกลาง — Canvas (พื้นที่ทำงานที่แสดงผังของ Agent) โดย Node (กล่องแต่ละกล่องบนผัง) หนึ่งกล่องหมายถึงหนึ่งขั้นตอนในบทสนทนา
  • ด้านขวา — Global Config, Testing และ Post-Call Analytics
ทำความรู้จักหน้าจอ AI Flow
ขั้นที่ 3

เลือกประเภท Node จาก Palette ด้านซ้าย

ที่ Palette (แถบรวมปุ่ม Node) ด้านซ้าย จะมีปุ่ม Node ให้เลือก 4 ประเภท ดังนี้

  • Conversation (สีฟ้า) — Node สำหรับพูดคุยและสอบถามลูกค้า (ใช้บ่อยที่สุด)
  • Function (สีม่วง) — Node สำหรับเรียก Function หรือ API เช่น การบันทึกข้อมูลลง CRM
  • Call Transfer (สีเหลือง) — Node สำหรับโอนสายไปยังเจ้าหน้าที่คนจริง
  • End Call (สีแดง) — Node สำหรับจบสาย

หากต้องการเพิ่ม Node ใหม่ ให้คลิกที่ปุ่ม Node ประเภทที่ต้องการบน Palette ระบบจะเพิ่ม Node นั้นลงบน Canvas ให้ จากนั้นกำหนดลำดับการสนทนาด้วยการลากเส้นจากปลาย Node หนึ่งไปยัง Node ถัดไป

เลือกประเภท Node จาก Palette ด้านซ้าย
ขั้นที่ 4

ความแตกต่างของ Node ทั้ง 4 ประเภท

Node แต่ละประเภทมีบทบาทต่างกันใน Flow (ผังการสนทนา) คุณควรเลือกใช้ให้ตรงกับจุดประสงค์ของแต่ละขั้นตอนในบทสนทนา

1. Conversation (สีฟ้า) — สำหรับพูดคุยกับลูกค้า

Node ที่คุณจะใช้มากที่สุด เป็น Node ที่ AI สอบถามและรับฟังคำตอบจากลูกค้า

  • องค์ประกอบภายใน Node: Prompt (คำสั่งสำหรับ Agent) และ Transition (ทางออกไปยัง Node ถัดไป) รวมถึง AI Speaks (ข้อความที่กำหนดให้พูดตายตัว) หากต้องการ
  • ใช้เมื่อ: เปิดบทสนทนา สอบถามข้อมูล เจรจา หรือยืนยันตัวตน
  • AI ตัดสินใจเอง: ใช่ โดย AI จะใช้ Prompt เป็นแนวทางแล้วโต้ตอบตามสถานการณ์
  • ตัวอย่าง: Node start, Node pitching, Node negotiate เป็นต้น

Conversation Node Example

2. End Call (สีแดง) — สำหรับจบสาย

Node ที่ปิดการสนทนา จึงไม่มี Transition เพราะไม่มีการไปยัง Node ถัดไป

  • องค์ประกอบภายใน Node: Prompt (คำอธิบาย) และ AI Speaks (ข้อความปิดสาย) โดย ไม่มี Transition
  • ใช้เมื่อ: จบสายตามผลลัพธ์ต่าง ๆ เช่น สำเร็จ ผิดเบอร์ หรือขอนัดคุยใหม่
  • AI ตัดสินใจเอง: ไม่ โดย AI จะอ่านข้อความใน AI Speaks ตามที่ระบุไว้แล้วจบสาย
  • ตัวอย่าง: end_success_verified, end_wrong_recipient, call_later

ตัวอย่าง End Call Node ในกรณีที่ลูกค้ายืนยันว่าจะชำระเงิน

End Call node example

3. Function (สีม่วง) — สำหรับเรียก API หรือ Function

Node ที่เรียกใช้งานฟังก์ชันเบื้องหลัง โดยไม่มีการพูดกับลูกค้าในช่วงนี้

  • องค์ประกอบภายใน Node: ชื่อ Function และ Variables (ตัวแปร) ทั้งฝั่งข้อมูลเข้าและข้อมูลออก
  • ใช้เมื่อ: ต้องการดึงข้อมูลจาก CRM , ตรวจสอบยอดหนี้แบบทันทีจากระบบหลังบ้าน
  • AI ตัดสินใจเอง: AI จะเรียกใช้ Function Node เมื่อเงื่อนไขตรงตามที่ตั้งค่าไว้
  • ตัวอย่าง: ดึง current_balance มาก่อนเสนอแผนผ่อนชำระ

4. Call Transfer (สีเหลือง) — สำหรับโอนสายให้เจ้าหน้าที่

Node ที่ส่งสายต่อไปยังเจ้าหน้าที่คนจริง ซึ่งเป็นการออกจากระบบ AI

  • องค์ประกอบภายใน Node: เบอร์ปลายทางหรือกลุ่ม Hotline ที่ต้องการโอนสายไป
  • ใช้เมื่อ: ลูกค้าขอสนทนากับเจ้าหน้าที่ กรณีที่ซับซ้อนเกินกว่า AI จะจัดการได้ หรือกรณีที่กฎหมายกำหนดให้ต้องเป็นคน
  • AI ตัดสินใจเอง: ไม่ โดยจะโอนสายทันทีตามที่ตั้งค่าไว้
  • ตัวอย่าง: ลูกค้าไม่พอใจและขอสนทนากับผู้จัดการ หรือกรณีเร่งด่วนที่เกินกว่า Agent จะจัดการเองได้

เคล็ดลับการออกแบบ Flow

  • Conversation เป็นโครงสร้างหลักของ Flow โดยส่วนใหญ่ของ Flow จะเป็น Conversation Node ที่เชื่อมต่อกัน
  • ทุกเส้นทางต้องจบที่ End Call หรือ Call Transfer เสมอ เพื่อป้องกันไม่ให้บทสนทนาวนค้าง
  • ใช้ Function เมื่อต้องเชื่อมต่อกับระบบภายนอก ไม่ควรนำเงื่อนไขทั้งหมดไปรวมไว้ใน Prompt
  • Call Transfer ทำหน้าที่เป็นทางออกสำรอง จึงควรเพิ่ม Transition User asks for human ไว้ในทุก Conversation Node ที่สำคัญ
ความแตกต่างของ Node ทั้ง 4 ประเภท
ขั้นที่ 5

ตั้งค่า Global Prompt ที่ใช้กับทุก Node

ที่แท็บ Global Config ด้านขวา ให้กรอก Global Prompt (คำสั่งกลางที่มีผลกับทุก Conversation Node)

โดยระบุบริบทรวมที่ Agent ต้องทราบ เช่น บทบาท ชื่อบริษัท และเป้าหมายของการโทร

หากต้องการอ้างถึงตัวแปร ให้ใช้รูปแบบ {{variable_name}} เช่น {{customer_name}} หรือ {{callcenter_contact}}

ตั้งค่า Global Prompt ที่ใช้กับทุก Node
ขั้นที่ 6

กำหนดตัวแปรที่ใช้ใน Prompt

ที่แผง Variables ด้านซ้าย ให้เพิ่มตัวแปรที่จะแทนค่าด้วยข้อมูลจริงในขณะใช้งาน

ตัวอย่างตัวแปรใน Debt Collection Template (แม่แบบสำหรับงานติดตามหนี้): debt_amount, debt_detail, min_payment, customer_name, debt_due_date, callcenter_contact

คุณสามารถกำหนดค่าเริ่มต้นได้ที่ช่อง Enter default value เพื่อให้ทดสอบได้แม้ยังไม่มีข้อมูลจริง ทั้งนี้ เมื่อรัน Campaign (แคมเปญโทรออก) ค่าจริงจากไฟล์ CSV จะแทนที่ค่าเริ่มต้นนี้โดยอัตโนมัติ

กำหนดตัวแปรที่ใช้ใน Prompt

เจาะลึก — วิธีแก้ไข Node ทีละตัว

ระบบไม่มีหน้าต่างแยกสำหรับแก้ไข Node แต่ออกแบบให้แก้ไข ภายในตัว Node ได้โดยตรง (Inline Editing) กล่าวคือ กล่อง Node แต่ละกล่องบน Canvas คือพื้นที่แก้ไขของ Node นั้นเอง หากต้องการดูข้อมูลใน Node ให้ชัดเจนขึ้น ให้ขยาย Canvas ด้วยปุ่ม + ที่มุมล่างซ้าย

ขั้นที่ 7

โครงสร้างของ Conversation Node

Conversation Node ทุกตัวมีองค์ประกอบหลัก 3 ส่วน ดังนี้

  • ชื่อ Node (เช่น start, debt_notice, negotiate) — ใช้อ้างอิงในการเชื่อมต่อจาก Node อื่น จึงควรตั้งชื่อให้สื่อถึงหน้าที่ของ Node นั้น
  • Prompt — คำสั่งที่ระบุให้ AI ทราบว่าใน Node นี้ต้องทำอะไรและพูดอะไร
  • Transition — เงื่อนไขที่จะพา Agent ไปยัง Node ถัดไป

ปุ่มสามจุดที่มุมขวาบนของแต่ละ Node คือเมนู Rename / Duplicate / Delete (เปลี่ยนชื่อ / ทำสำเนา / ลบ)

โครงสร้างของ Conversation Node
ขั้นที่ 8

แก้ไข Prompt ของ Node

Double Click ที่กล่อง Prompt บนตัว Node ระบบจะเปิดพื้นที่ให้พิมพ์แก้ไขได้ทันที

รูปแบบ Prompt ที่ดีควรมีลักษณะดังนี้

  • เริ่มต้นด้วย INSTRUCTION: แล้วระบุให้ชัดเจนว่าต้องการให้ AI ทำสิ่งใด
  • ใส่ตัวอย่างประโยคที่ต้องการให้ AI พูด โดยอยู่ในเครื่องหมายคำพูด
  • ระบุพฤติกรรมที่ห้ามทำด้วย เช่น “ห้ามถามชื่อซ้ำ”
  • หากต้องการอ้างถึงตัวแปร ให้ใช้รูปแบบ {{variable_name}} เช่น {{customer_name}} หรือ {{debt_amount}}

ตัวอย่างจริงจาก Node start

INSTRUCTION: Ask ‘สวัสดีค่ะ ขออนุญาตเรียนสายคุณ{{customer_name}}ค่ะ’ to verify if the recipient is the debtor.

ระบบจะบันทึกโดยอัตโนมัติระหว่างที่คุณพิมพ์ โดยสังเกตได้จากสถานะ Saved ✓ ด้านบน

แก้ไข Prompt ของ Node
ขั้นที่ 9

แก้ Transitions — Logic แตกเส้นทาง

ใต้ Prompt — ส่วน Transitions ระบุเงื่อนไขที่จะพา Agent ไป Node ถัดไป

ตัวอย่างจาก Node start:

  • ลูกค้าคือลูกหนี้และสะดวกพูดสาย → ไป Node debt_notice
  • คนพูดสายบอกว่าไม่ใช่ลูกหนี้ → ไป Node end_wrong_recipient
  • ลูกค้าขอต่อรอง หรือ ยังไม่พร้อมจ่าย → ไป Node negotiate
  • ลูกค้าไม่สะดวก ไม่ว่างคุย หรือ ขอให้ติดต่อกลับภายหลัง → ไป Node call_later

วิธีแก้/เพิ่ม Transition:

  • เพิ่มเงื่อนไขใหม่ — กดปุ่ม + ตรงหัวข้อ Transitions แล้วเขียนเงื่อนไขเป็นภาษาธรรมชาติ (เช่น “User says they’re not interested”)
  • แก้เงื่อนไขเดิม — คลิกที่ข้อความเงื่อนไขเพื่อพิมพ์แก้
  • เปลี่ยน Node ปลายทาง — ลากเส้นจาก Bullet point ของเงื่อนไขนั้นไปยัง Node ที่อยากให้ไป
  • ลบเงื่อนไข — กด ซ้ายของเงื่อนไข

เคล็ดลับ: เขียนเงื่อนไขให้ครอบคลุมเคสที่เป็นไปได้ทั้งหมด — ถ้าลืม Case ใด Agent จะวนค้างที่ Node นั้นเพราะไม่รู้จะไปไหนต่อ

แก้ Transitions — Logic แตกเส้นทาง
ขั้นที่ 10

End Node

กำหนดให้ AI พูดว่าอะไรก่อนที่จะวางสาย เช่น พูดขอบคุณและสวัสดีแล้ววางสาย

End Node
ขั้นที่ 11

ทดสอบ Agent ก่อน Publish

กดแท็บ Testing ฝั่งขวา — เลือกระหว่าง:

  • Test Audio — คุยกับ Agent ผ่านไมค์ เหมือนโทรจริง
  • Test Chat — พิมพ์โต้ตอบเป็นข้อความ (เร็วกว่า เหมาะกับทดสอบ Flow)

กด Start เพื่อเริ่มเซสชั่นทดสอบ ทดสอบเส้นทางสำคัญทั้งหมดก่อน Publish เพื่อหาจุดบกพร่อง

ลองเดินไปทุก Transition ที่เป็นไปได้ — ถ้าเส้นไหนค้าง แปลว่าต้องกลับไปแก้ Prompt หรือเงื่อนไขของ Node นั้น

ทดสอบ Agent ก่อน Publish
ขั้นที่ 12

กด Publish เมื่อพร้อม

ขณะแก้ไข ระบบบันทึก Draft ให้อัตโนมัติ (ดู Saved ✓ ด้านบน) — แต่ Campaign จะใช้เฉพาะเวอร์ชั่นที่ Publish แล้ว

กดปุ่ม Publish มุมขวาบนเพื่อเลื่อน Draft เป็นเวอร์ชั่นใช้งานจริง — เวอร์ชั่นจะเพิ่มขึ้น (v1 → v2 → …) และ Campaign ที่กำลังรันจะอัปเดตอัตโนมัติ

กด Publish เมื่อพร้อม

บทเรียนนี้มีประโยชน์ไหม?

← 03