รูปแบบ Agentic UI ที่เปลี่ยนผู้ชมเป็นลูกค้าได้จริง
เดือนตุลาคม 2024 ฉันติดตั้งตัวช่วยจองคิว AI ลงเว็บไซต์ของเครือคลินิกทันตกรรมสี่สาขาใกล้เมืองปอร์ตู เจ้าของอยากลดสายโทรศัพท์ที่แผนกต้อนรับ คนไข้โทรมาเรื่องความคุ้มครองประกัน ช่วงวันศุกร์ที่ว่าง และราคาขูดหินปูน ฉันส่งมอบกล่องแชตที่ตอบครบสามเรื่อง มันอ่าน API ตารางเวลา เสนอราคาจากตารางค่าบริการ และจองคิวผ่านเอนด์พอยต์เดียวกับที่พนักงานต้อนรับใช้ งานสาธิตดูสมบูรณ์แบบ สองสัปดาห์ถัดมาตัวเลขเล่าเรื่องที่เย็นลง ผู้เยี่ยมชมสัปดาห์ละประมาณสี่ร้อยคนเปิดแชต จองจริงสามสิบเอ็ดคน ที่เหลือปิดหน้าต่างกลางบทสนทนา ฉันดึงรีเพลย์เซสชันยี่สิบอันมานั่งดู เห็นคนออกตรงสามจุดเดิมทุกครั้ง แชตยิงห้าคำถามรวดเดียว มันเงียบเก้าวินาทีขณะเรียกปฏิทิน มันยอมแพ้ด้วยข้อความผิดพลาดแข็งๆ เมื่อคนไข้พิมพ์ชื่อประกันผิดตัวอักษร ทางออกสามจุดนี้ให้สามรูปแบบที่ฉันใช้ซ้ำในทุกงานเอเจนต์ตั้งแต่นั้นมา
ทำไมแชตบอตส่วนใหญ่ทำลูกค้าหลุดมือ
แชตบอตส่วนใหญ่เสียคนตรงช่องว่างระหว่างอ่านข้อความกับการลงมือทำ กล่องแชตธรรมดาซ่อนทุกอย่าง ผู้เยี่ยมชมพิมพ์คำขอแล้วจ้องจุดกระพริบสามจุด ไม่มีอะไรบอกว่าจะเกิดอะไรต่อ ไม่มีอะไรบอกว่าต้องรอนานเท่าไร ผ่านไปสี่วินาทีผู้เยี่ยมชมสรุปว่าเพจค้าง ฉันวัดสิ่งนี้กับงานทันตกรรมก่อนเปลี่ยนอะไรทั้งสิ้น เวลามัธยฐานจากคำถามถึงยืนยันการจองอยู่ที่สิบเอ็ดวินาที แชตโชว์จุดตลอดทาง ผู้เยี่ยมชมเจ็ดสิบเปอร์เซ็นต์ที่รอเกินหกวินาทีปิดหน้าต่าง พวกเขาไม่ได้เกลียดคำตอบ พวกเขาไม่เคยเห็นมัน
การรั่วไหลมีรูปทรงตายตัว จุดแรกบอตถามมากเกินตั้งแต่ต้น ผู้เยี่ยมชมรู้สึกเหมือนถูกสอบสวน จุดที่สองบอตทำงานเงียบๆ ผู้เยี่ยมชมรู้สึกเหมือนถูกทิ้ง จุดที่สามบอตล้มแบบแข็งๆ ผู้เยี่ยมชมโทษตัวสะกดผิดตัวเดียวที่พาเข้าทางตัน ความรู้สึกแต่ละอย่างมีวิธีแก้ ฉันโชว์ทีละคำถาม ฉันโชว์ทุกการเรียกเครื่องมือขณะที่มันทำงาน ฉันเปลี่ยนทุกความล้มเหลวเป็นข้อเสนอที่เล็กลง หัวข้อถัดไปแสดงวิธีแก้ทีละข้อพร้อมจอจริงที่ฉันส่งมอบ
รูปแบบที่ 1: การเปิดเผยแบบเป็นขั้น
งานรุ่นแรกของฉันถามห้าคำถามในฟองเดียวคือชื่อ เบอร์โทร ประกัน หมอที่ต้องการ วันที่สะดวก บนจอคอมดูเรียบร้อย บนมือถืออ่านเหมือนแบบฟอร์มภาษี รีเพลย์สิบสองอันจากยี่สิบจบตรงนั้นเลย คนตอบช่องเดียวแล้วออก
ฉันเปลี่ยนกำแพงเป็นลูกโซ่ แชตถามทีละข้อ รอ แล้วถามข้อต่อไป คำตอบแต่ละข้อบีบสิ่งที่ตามมาให้แคบลง คนไข้เลือกขูดหินปูน บอตข้ามคำถามเรื่องหมอไปเลย เสนอคิวว่างถัดไปของนักอนามัย คนไข้เลือกรักษารากฟัน บอตถามชื่อหมอ กฎที่ฉันยึดคือไม่ขอข้อมูลที่ระบบมีอยู่แล้ว ไม่ถามสองเรื่องพร้อมกันเมื่อคำตอบข้อแรกเปลี่ยนคำถามข้อสอง
โค้ดเบื้องหลังยังเรียบง่าย ฉันเก็บออบเจกต์สล็อตห้าคีย์กับฟังก์ชัน next ที่คืนคำถามเดียวตามสล็อตที่กรอกแล้ว React วาดแถวกรอกหนึ่งแถวบวกแถวชิปด่วน ชิปแบกการแตะส่วนใหญ่ กดชิปใช้หนึ่งแตะ พิมพ์เองใช้เก้าแตะ หลังเปลี่ยน อัตราทำขั้นตอนคำถามจบพุ่งจากสามสิบแปดเปอร์เซ็นต์เป็นเจ็ดสิบเก้าเปอร์เซ็นต์ การเริ่มจองเพิ่มสองเท่าในหนึ่งสัปดาห์ ทุกโฟลว์เอเจนต์ที่ฉันสร้างตอนนี้ถามทีละอย่าง ที่เหลือดึงจากบริบท
รูปแบบที่ 2: การแสดงการเรียกเครื่องมือ
ความเงียบเก้าวินาทีฆ่ากลุ่มที่สอง บอตต้องตรวจกฎประกัน แล้วค้นปฏิทินหมอสามคน แล้วกันคิวไว้ งานดีมีประโยชน์ทุกชิ้น งานทุกชิ้นมองไม่เห็น ผู้เยี่ยมชมเห็นจุดแล้วสรุปว่าไม่มีอะไรเกิดขึ้น รีเพลย์หกอันโชว์ผู้เยี่ยมชมพิมพ์ hello? ลงความว่าง แล้วปิดแท็บ
ฉันทำให้งานมองเห็นได้ บอตตรวจความคุ้มครอง แชตพิมพ์การ์ดเล็กๆ ว่ากำลังตรวจประกันกับ ClinicPlus เริ่มค้นปฏิทิน การ์ดใบที่สองโผล่ว่ากำลังสแกนคิววันศุกร์ของหมอโซซา กันคิวสำเร็จ การ์ดพลิกเป็นเครื่องหมายถูกพร้อมเวลาคิว การ์ดแต่ละใบไหลเข้ามาเหนือแชต ผู้เยี่ยมชมเห็นความคืบหน้าแตะทีละขั้น
งานนี้ใช้ server-sent events จากเราต์ Next.js ทุกการเรียกเครื่องมือปล่อยอีเวนต์สถานะพร้อมป้ายที่ฉันเขียนเองทีละใบ ฉันไม่โชว์ชื่อฟังก์ชันดิบ ชื่อภายใน check_calendar แสดงเป็นกำลังสแกนคิววันศุกร์ ฉันจำกัดขั้นที่มองเห็นไว้สี่ขั้นต่อหนึ่งเทิร์น งานที่ลึกกว่านั้นยุบรวมในการ์ดเดียว การละทิ้งตรงเรียกเครื่องมือร่วงจากสี่สิบเอ็ดเปอร์เซ็นต์เหลือเก้าเปอร์เซ็นต์ โชว์งานแล้วคนยอมรอ
รูปแบบที่ 3: การถอยอย่างสง่างาม
ข้อผิดพลาดแข็งๆ ฆ่ากลุ่มที่สาม คนไข้พิมพ์ ClinikPlus ด้วยตัว K บอตเจอผู้ให้บริการศูนย์ราย ตอบว่าไม่เข้าใจ กรุณาพิมพ์ใหม่ คนไข้ลองอีกครั้ง เจอกำแพงเดิม แล้วโทรเข้าคลินิก บันทึกสายโชว์ว่าพนักงานต้อนรับจองให้ในสองนาที บอตมีคิวอยู่ในมือตลอด มันแพ้ที่ตัวสะกด
ฉันเปลี่ยนกำแพงเป็นบันได ขั้นหนึ่งจับคู่แบบหยุ่น ClinikPlus ตรงกับ ClinicPlus ต่างกันตัวเดียว บอตเลยถามว่าคุณหมายถึง ClinicPlus ใช่ไหม พร้อมชิปสองชิป ขั้นสองบีบขอบเขต บอตแยกคำขอทั้งก้อนไม่ออก มันเสนอสามทางยอดฮิตเป็นชิปคือตรวจประกัน หาคิว ถามราคาขูดหินปูน ขั้นสามระบุคนกับเวลา สองขั้นแรกพลาดหมด บอตพูดว่ามาร์ตาจากแผนกต้อนรับรับจองเคสแบบนี้ด้วยมือ ฝากเบอร์ไว้ เธอโทรกลับภายในหนึ่งชั่วโมงงาน ทุกทางตันจบด้วยชิปหรือสายโทรกลับ ไม่มีทางตันเปล่า
ทุกการถอยฉันบันทึกลง Postgres พร้อมเลขขั้น ทางพลาดขั้นหนึ่งจบในแชตแปดสิบเปอร์เซ็นต์ สายโทรกลับขั้นสามปิดการจองห้าสิบห้าเปอร์เซ็นต์ในวันเดียวกัน บอตยังล้มอยู่ ความล้มเหลวตอนนี้ยื่นของชิ้นเล็กที่ใช้ได้ให้ผู้เยี่ยมชม
ตัวเลขที่ฉันตาม: งานจบ ทางตัน เวลาเห็นคุณค่า
ตัวเลขสามตัวบอกว่าอินเทอร์เฟซเอเจนต์คู่ควรกับที่ของมันไหม งานจบคือสัดส่วนแชตที่เปิดแล้วลงเอยด้วยการจอง แชตทันตกรรมเริ่มที่แปดเปอร์เซ็นต์ วันนี้อยู่ที่ยี่สิบสี่เปอร์เซ็นต์ ฉันคำนวณทุกสัปดาห์จากตารางจองเชื่อมกับเซสชันแชต ต่ำกว่าสิบห้าเปอร์เซ็นต์แปลว่าโฟลว์ถามมากไปหรือซ่อนมากไป
ทางตันคือสัดส่วนเทิร์นที่เข้าบันได ฉันตามแยกทีละขั้น ขั้นหนึ่งเกินสามสิบเปอร์เซ็นต์แปลว่าตัวจับคู่ต้องการคำพ้อง ขั้นสามเกินสิบเปอร์เซ็นต์แปลว่าโฟลว์พลาดเจตนาจริง ต้องแตกสาขาใหม่ หลังแก้เรื่องตัวสะกด ทางตันขั้นหนึ่งร่วงจากยี่สิบสองเปอร์เซ็นต์เหลือหกเปอร์เซ็นต์
เวลาเห็นคุณค่าคือวินาทีจากข้อความแรกถึงยืนยันการจอง มัธยฐานเริ่มที่สิบเอ็ดนาทีของเวลาจริงรวมช่วงนิ่ง ตอนนี้อยู่แถวสามนาที ฉันดูเปอร์เซ็นไทล์ที่เจ็ดสิบห้าด้วย เพราะค่าเฉลี่ยซ่อนหางช้าที่คนไข้พิมพ์นิ้วเดียวบนรถเมล์
ตัวเลขสามตัวฉันทบทวนทุกวันจันทร์กับผู้จัดการคลินิก เราเลือกหนึ่งจุดแก้ ส่งภายในศุกร์ แล้วอ่านตัวเลขอีกครั้ง จังหวะแบบนี้ดันคอนเวอร์ชันมากกว่าทุกรีดีไซน์ที่ฉันเคยเสนอ รูปแบบบนสไลด์ดูเล็ก บนเว็บจริงมันตัดสินว่าผู้เยี่ยมชมสัปดาห์ละสี่ร้อยคนจะกลายเป็นสามสิบจองหรือเก้าสิบจอง