ข้อความและปุ่ม

การดำเนินการ «ส่งข้อความ» สร้างการตอบกลับของบอทจาก บล็อก และเพิ่ม inline ปุ่ม เมนูหลัก และ ขั้นตอนไดอะล็อก นี่คือการดำเนินการที่สมบูรณ์ที่สุดใน constructor — ที่นี่ยังเชื่อมต่อการแทนที่และพารามิเตอร์อ้างอิงของปุ่ม

บล็อกข้อความ

ข้อความคือลำดับของบล็อก (ปุ่ม เพิ่มบล็อก):

  • ข้อความ — ข้อความที่จัดรูปแบบแล้ว (สูงสุด 4096 ตัวอักษร) พร้อมการแทนที่และปุ่ม
  • รูปภาพ — รูปภาพพร้อมคำบรรยาย
  • ไฟล์ — เอกสารพร้อมคำบรรยาย
  • หน่วงเวลา — หยุดชั่วคราวเป็นวินาทีก่อนบล็อกถัดไป
  • AI — การตอบกลับที่สร้างโดยโมเดลตาม prompt
  • รีแอคชัน — เรียกรีแอคชันอื่น (ตัวเลือกรอการประมวลผลเสร็จ)

บล็อกสามารถลากและวางได้ โหมดแสดงบล็อก — «ตามลำดับ» หรือ «สุ่ม» (สำหรับการตอบกลับแบบหลากหลาย) เมนูหลักของบอทสามารถ คงไว้ไม่เปลี่ยน กำหนด ใหม่ หรือ ซ่อน

ตัวเลือกบล็อก

บล็อกข้อความและสื่อมีเดียมีแฟล็ก: ปักหมุด, ไม่มีเสียง, ป้องกันการส่งต่อ, สปอยล์, ไม่มีตัวอย่างลิงก์, ลบอัตโนมัติหลัง N วินาที

Inline ปุ่ม

ในบล็อกตั้งค่าปุ่ม (ข้อความปุ่ม + ประเภท):

  • ข้อความ (callback) — ปุ่มที่ประมวลผลการกดในฝั่งบอท
  • ลิงก์ — เปิด URL
  • เว็บแอปพลิเคชัน — เปิด Telegram Mini App ดู Mini App
  • เรียกรีแอคชัน — การกดจะเรียกรีแอคชันอื่น
  • รับชำระเงิน และ การแจ้งเตือน — ระบุว่า «เร็วๆ นี้»

สไตล์ ปุ่ม — ปกติ, น้ำเงิน (Primary), เขียว (Success) หรือแดง (Danger) แฟล็ก «ใช้ครั้งเดียว» ลบปุ่มหลังกด

พฤติกรรมเมื่อกด

สำหรับ callback ปุ่มตั้งค่าสิ่งที่เกิดขึ้นเมื่อกด: แทนที่ข้อความปุ่ม, แทนที่ข้อความ (ด้วยข้อความหรือเนื้อหาจากรีแอคชันที่เชื่อมโยง), ลบข้อความ, ข้าม answerCallbackQuery การกดยังสามารถ ติดป้ายกำกับ และ กำหนดพารามิเตอร์

พารามิเตอร์ในปุ่ม (Carry)

บล็อก «Carry — snapshot ของข้อมูลในการกดปุ่ม» แนบชุดค่าที่กำหนดไว้ ณ เวลาส่งไปกับปุ่ม เมื่อกด ค่าเหล่านี้จะเข้า context — ทำให้แต่ละปุ่มมี พารามิเตอร์ของตัวเอง (per-invocation) แม้มีปุ่มหลายปุ่ม กำหนด อายุ payload เป็นวินาที นี่คือพื้นฐานของสถานการณ์ «เลือกสินค้า → สั่งซื้อสิ่งนั้น»

ปุ่มไดนามิก

บล็อก «ปุ่มไดนามิกจากรายการ» แปลง array จาก ctx เป็นปุ่ม — หนึ่งปุ่มต่อ element ตั้งค่า: key ของรายการใน ctx, alias ของ element, จำนวนปุ่มต่อแถว และเทมเพลตปุ่ม (รองรับ {{alias.field}}) ใช้สร้างแคตตาล็อก รายการรายการ และเมนูจากข้อมูลคอลเลกชัน รายละเอียดเพิ่มเติม — ปุ่มไดนามิกและพารามิเตอร์

การตอบกลับที่คาดหวัง (ขั้นตอนไดอะล็อก)

บล็อกข้อความสามารถ รอการตอบกลับจากผู้ใช้ — ซึ่งเปลี่ยนข้อความเป็นขั้นตอนไดอะล็อกและหยุด scenario ชั่วคราวจนกว่าจะได้รับการตอบกลับ ขั้นตอนหลายขั้นตอนต่อเนื่องกันสร้างแบบสอบถามหรือ wizard ใน chat โดยตรง

ประเภทเนื้อหาที่คาดหวัง

บอทสามารถรอการตอบกลับประเภทเฉพาะ: ข้อความ, เลือกจากตัวเลือก (ปุ่มตัวเลือก), รูปภาพ, วิดีโอ, วิดีโอโน้ต, เสียง, เอกสาร, เสียงพูด, ตำแหน่ง, ผู้ติดต่อ, ปฏิทิน หรือลูกเต๋า หากผู้ใช้ส่งประเภทอื่น ขั้นตอนจะถือว่าการตอบกลับไม่เหมาะสม

การตรวจสอบข้อความ

สำหรับการตอบกลับด้วยข้อความสามารถเปิดใช้การตรวจสอบรูปแบบ: โทรศัพท์, e-mail, ลิงก์, วันที่, เวลา หรือ ตรงกับสูตร (regular expression) การตอบกลับที่ไม่ผ่านการตรวจสอบจะถูกปฏิเสธ และบอทจะแสดงข้อความแจ้งข้อผิดพลาด

การบันทึกการตอบกลับ

การตอบกลับของผู้ใช้สามารถ บันทึกในพารามิเตอร์ — หลังจากนั้นสามารถใช้ใน placeholder เป็น {{param.key}} และในเงื่อนไข ดังนั้นขั้นตอนไดอะล็อกจึงสร้าง mini-profile ของลูกค้า

ข้อผิดพลาด การเตือน และ timeout

  • ข้อความเมื่อตรวจสอบผิดพลาด — แสดงอะไรหากการตอบกลับไม่ผ่านการตรวจสอบ
  • การเตือน — ส่งอะไรหากผู้ใช้เงียบ
  • ยกเลิกการรอเมื่อ timeout — รอนานแค่ไหน; เมื่อ timeout สามารถ เรียกรีแอคชัน (เช่น จบแบบสอบถามอย่างนุ่มนวล) รีแอคชันนี้แสดงใน ลิงก์ เป็น «Timeout การรอ» ส่วนรีแอคชันสำหรับการตอบกลับเองแสดงเป็น «การตอบกลับที่คาดหวัง»

การแทนที่

ปุ่ม «การแทนที่» แทรกตัวแปร: ข้อมูลผู้ส่ง ({{first_name}}, {{username}}, {{user_id}}), event ({{text}}, {{chat_id}}, {{datetime}}) และพารามิเตอร์ ({{param.key}}) รายการทั้งหมดและสูตร — การแทนที่และสูตร

ขั้นตอนถัดไป