วิธีใช้ตัวแปร
มาสำรวจกันว่าตัวแปรคืออะไรและจะใช้มันอย่างมีประสิทธิภาพในการสร้างแชทบอทใน MaviBot ได้อย่างไร
โปรดทราบข้อจำกัดของระบบสำหรับตัวแปรและค่าคงที่ภายในโปรเจกต์เดียว:
ตัวแปรเทมเพลต:
- จำนวนสูงสุด: 100 ตัวแปร
- ความยาวชื่อสูงสุด: 100 ตัวอักษร
ค่าคงที่ของโปรเจกต์:
- จำนวนสูงสุด: 50 ค่าคงที่
- ความยาวชื่อสูงสุด: 100 ตัวอักษร
- ความยาวค่าสูงสุด: 5,000 ตัวอักษร
ตัวแปรคือตำแหน่งจัดเก็บข้อมูลที่มีชื่อ ซึ่งระบุด้วยป้ายข้อความที่ไม่ซ้ำกัน

รูปที่ 1: ตัวแปรชื่อ total เก็บจำนวนเงินที่ชำระ.
MaviBot มีตัวแปรหลายประเภท:
- ตัวแปรในตัว
- ตัวแปรระบบ
- ตัวแปรที่ผู้ใช้กำหนด — ซึ่งเป็นตัวแปรที่คุณสร้างขึ้นเองภายในโปรเจกต์
การประกาศตัวแปร หมายถึงการกำหนดค่าให้กับคอนเทนเนอร์ที่มีชื่อ กล่าวอีกนัยหนึ่ง คำสั่งเช่น a=0 คือการประกาศตัวแปร a เราเพิ่งบอก (ประกาศให้) ตัวสร้างรู้ว่าเราจะเก็บตัวเลขไว้ในตัวแปร a และตอนนี้ค่านั้นคือ 0
การกำหนดค่าให้กับตัวแปร มีความหมายเดียวกัน
นิพจน์ "กำหนดค่าตัวแปรให้เท่ากับค่าที่ได้จากฟังก์ชัน" หรือ "ตั้งค่าตัวแปรให้เท่ากับฟังก์ชัน" ก็เป็นที่นิยมใช้เช่นกัน หลักการเหมือนกัน: แทนที่จะกำหนดค่าเฉพาะเจาะจง คุณกำหนดผลลัพธ์ของฟังก์ชัน ตัวอย่างเช่น: s_id = tg_send_message(platform_id, "Hello!") ในกรณีนี้ ผลลัพธ์ของฟังก์ชันจะถูกเก็บไว้ในตัวแปร
การรีเซ็ตตัวแปร หมายถึงการกำหนดค่า 0 ให้กับมัน
ฟังก์ชันและเมธอด คือชุดคำสั่งที่กำหนดไว้ล่วงหน้าซึ่ง MaviBot ได้กำหนดค่าไว้ล่วงหน้า ฟังก์ชันส่วนใหญ่ต้องการพารามิเตอร์ - ค่าที่ฟังก์ชันหรือเมธอดสามารถเข้าใจได้ เมื่อบอทได้รับพารามิเตอร์ที่จำเป็นแล้ว มันจะดำเนินการคำสั่งเฉพาะ
tg_send_message(platform_id, "Hello!") — ฟังก์ชันนี้ส่งข้อความ "Hello!" ใน Telegram

กฎสำหรับการทำงานกับตัวแปร:
-
ชื่อตัวแปรต้องขึ้นต้นด้วย ตัวอักษร เท่านั้น ไม่สามารถขึ้นต้นด้วยตัวเลขได้
Age1 - ✅ ถูกต้อง
1Age - ❌ ไม่ถูกต้อง
age1 - ✅ ถูกต้อง - ตัวเลือกที่แนะนำ
-
ตัวแปรต้องไม่มีช่องว่างหรืออักขระพิเศษ ยกเว้นขีดล่าง (_)
Name_Surname - ✅ ถูกต้อง
Name Surname - ❌ ไม่ถูกต้อง
nameSurname - ✅ ถูกต้อง - ตัวเลือกที่แนะนำ
ไม่สามารถใช้คำสงวนจากภาษาโปรแกรมเป็นชื่อตัวแปรได้ เช่น print, true, false, count, sum และอื่นๆ
-
ห้าม ใช้ ชื่อของตัวแปรในตัวและตัวแปรระบบสำหรับตัวแปรที่ผู้ใช้กำหนดโดยเด็ดขาด คุณสามารถดูรายการตัวแปรดังกล่าวได้ที่นี่ ลิงก์
-
เราแนะนำ:
- ใช้ชื่อตัวแปรเป็นภาษาละติน (อังกฤษ)
- ใช้ชื่อตัวแปรที่สั้นแต่มีความหมาย เช่น totalSum, pay_name, ns, name_client เป็นต้น
วิธีรับค่าของตัวแปร
ใส่ชื่อตัวแปรในวงเล็บปีกกา #{} คุณสามารถอ้างอิงค่าของมันในฟิลด์ข้อความได้ด้วยวิธีนี้ อย่างไรก็ตาม ในฟิลด์ "เครื่องคิดเลข" คุณควรอ้างอิงค่าของตัวแปรโดยใช้ชื่อของมันเท่านั้น โดยไม่มีไวยากรณ์เพิ่มเติม
โครงสร้าง #{} ช่วยให้คุณดึงค่าของตัวแปรได้ ใช้ในฟิลด์ "ข้อความข้อความ" เพื่อแทรกค่าของตัวแปรลงในข้อความ
ตัวอย่าง:

ระบบรองรับตัวแปรแบบซ้อนกัน โดยที่ค่าของตัวแปรหนึ่งเป็นส่วนหนึ่งของชื่อของตัวแปรอื่น ตัวอย่างเช่น: #{q#{test#{i}}}
ในฟิลด์ "เครื่องคิดเลข" ให้อ้างอิงตัวแปรด้วยชื่อของมันโดยไม่ต้องใช้สัญลักษณ์ #{}
ตัวอย่างเช่น ถ้าเรามีสองตัวแปร: price (ยอดรวม) และ quantity (จำนวน)
num = 10
sum = 1500

วิธีแสดงยอดรวม
ป้อนข้อมูลต่อไปนี้ในเครื่องคิดเลข:
total_sum = sum1 * num2 ✅ ถูกต้อง

วิธี ที่ไม่ควร ทำ:
total_sum = #{sum1} * #{num2} - ❌ ไม่ถูกต้อง
วิธีลบตัวแปรออกจากบอท
ในการลบ (ล้าง) ตัวแปร ให้ป้อนข้อมูลใดข้อมูลหนึ่งต่อไปนี้ในฟิลด์ "เครื่องคิดเลข":
YourVariableName =
หรือ
YourVariableName = ""
หลังจากเครื่องหมายเท่ากับ ให้เว้นวรรคหรือใช้เครื่องหมายคำพูดคู่ (หรือเดี่ยว)
โปรดทราบ! สิ่งสำคัญคือต้องใช้คำนำหน้าที่ถูกต้องเพื่อระบุว่าตัวแปรนั้นอยู่ที่ใด
สำหรับตัวแปรระดับโปรเจกต์ (เก็บไว้ในการตั้งค่าโปรเจกต์) ให้ใช้คำนำหน้า project:
ตัวอย่าง:
project.YourVariableName =
หรือ
project.YourVariableName = ""สำหรับตัวแปรระดับลูกค้า ให้ใช้คำนำหน้า client:
ตัวอย่าง:
client.YourVariableName = หรือ
client.YourVariableName = ""สำหรับตัวแปรระดับดีล ไม่จำเป็นต้องใช้คำนำหน้า
ตัวแปรในตัว
นี่คือรายการของตัวแปรในตัว:
#{none} - ไม่สนใจข้อความ
#{api_key} - โทเค็น API ที่ใช้ในการเรียก Mavibot API
#{attachment_url} - มีลิงก์ไปยังไฟล์แนบ
#{attachments} - อาร์เรย์ JSON ของ URL ไฟล์แนบจากข้อความของผู้ใช้
#{avatar} - ลิงก์ไปยังรูปประจำตัวของผู้ใช้ (แสดงในส่วน "ลูกค้า")
#{client_id} - ID ลูกค้าในตัวสร้าง ใช้ในการร้องขอ API ด้วย
#{client_type} - ประเภทของแอปส่งข้อความที่ลูกค้ามาจาก (ค่าอธิบาย [ที่นี่])
#{current_date} - วันที่ปัจจุบันในรูปแบบ วว.ดด.ปปปป ตามเขตเวลาของโปรเจกต์
#{current_time} - เวลาปัจจุบันในรูปแบบ ชช:นน ตามเขตเวลาของโปรเจกต์
#{custom_answer} - การตอบกลับที่ได้รับจากเซิร์ฟเวอร์ที่ระบุในฟิลด์ "URL การตอบกลับของเซิร์ฟเวอร์"
#{message_from_outside} - ประเภทของข้อความขาเข้า ค่าที่เป็นไปได้:
&#xNAN;ข้อความปกติ = 0
ข้อความที่ส่งผ่าน API = 1
การแจ้งเตือน callback (พื้นหลังสีเหลืองในบทสนทนา) = 3
การแจ้งเตือนโทรศัพท์ (พื้นหลังสีฟ้าอ่อนในบทสนทนา) = 5
ตัวแปรนี้ถูกสร้างขึ้นทุกครั้งที่มีข้อความขาเข้า แต่จะไม่ปรากฏในการ์ดลูกค้า
คุณสามารถใช้ในฟิลด์ "ตัวแปรสำหรับการเปรียบเทียบ" เพื่อตั้งค่าเงื่อนไขสำหรับทริกเกอร์บล็อกและการเชื่อมต่อ
#{date_of_creation} - วันที่ผู้ใช้ถูกเพิ่มในบอทหรือส่งข้อความถึงบอทเป็นครั้งแรก
#{full_name} - ชื่อเต็มของผู้ใช้ (ชื่อและนามสกุล)
#{group} - บอทที่ลูกค้าเชื่อมโยงอยู่ (แสดงเป็น "เชื่อมโยงกับบอท" ในการ์ดลูกค้า)
#{main_client_id} - ID ของลูกค้าหลักในกลุ่มการ์ดลูกค้าที่เชื่อมโยงกัน
#{message_id} - ID สถานะการสนทนาปัจจุบันกับลูกค้า (ค่าเริ่มต้นคือ NONE)
#{messenger} - ชื่อของแอปส่งข้อความที่ลูกค้ามาจาก
#{name} - ชื่อจริงของผู้ใช้
#{next_day} - วันที่ของวันพรุ่งนี้ในรูปแบบ วว.ดด.ปปปป (มีประโยชน์สำหรับการกำหนดเวลาข้อความ)
#{order_id} - ตัวระบุคำสั่งซื้อ (ID ลูกค้าและ ID คำสั่งซื้อภายในคั่นด้วยยัติภังค์)
#{order} - เนื้อหาของคำสั่งซื้อที่ผู้ใช้ส่ง
#{platform_id} - ID ลูกค้าในแพลตฟอร์มการส่งข้อความ
#{question} - ข้อความที่ผู้ใช้ส่ง
#{timestamp} - การประทับเวลาปัจจุบันรวมถึงมิลลิวินาที
#{time_of_creation} - เวลาที่ผู้ใช้ถูกเพิ่มในบอทหรือส่งข้อความถึงบอทเป็นครั้งแรก
#{wa_bot} - หมายเลข WhatsApp ที่ผู้ใช้ส่งข้อความถึง (มีประโยชน์สำหรับการส่งต่อไปยังฟิลด์ CRM และกระจายลีดให้กับผู้จัดการ)
#{weekday} - วันของสัปดาห์เป็นตัวเลข (วันจันทร์ = 1, วันอังคาร = 2, ฯลฯ)
ค่า client_type
ตัวแปรระบบ
ระบบจะสร้างตัวแปรรันไทม์ต่างๆ โดยอัตโนมัติระหว่างการทำงานของบอท คุณสามารถใช้ตัวแปรเหล่านี้ในขณะที่สร้างบอทของคุณ นี่คือรายการของตัวแปรที่อาจเป็นประโยชน์สำหรับคุณ
คุณสามารถค้นหาตัวแปรระบบเพิ่มเติมได้ในเอกสารประกอบ ตัวแปรเหล่านี้อยู่ในส่วนที่เกี่ยวข้องกับการใช้งาน
phone - หมายเลขโทรศัพท์
notSubscribed - ถ้าตัวแปรเท่ากับ 1 แสดงว่าลูกค้าได้ยกเลิกการสมัครรับข้อความและจะไม่ได้รับข้อความใดๆ
clientBlocked - ลูกค้าถูกบล็อก และบอทจะไม่ทำงานให้กับพวกเขา
story_url - ตัวระบุของสตอรี่ Instagram ที่ลูกค้าตอบกลับ
viewed_page - หน้าที่ผู้ใช้กำลังเขียนในแชทออนไลน์
wa_bot - หมายเลขโทรศัพท์ของบอท WhatsApp
หากต้องการเรียนรู้ว่าตัวแปรใดบ้างที่สามารถสร้างขึ้นระหว่างการชำระเงิน โปรดดูคู่มือการรวมระบบสำหรับบริการชำระเงินในส่วน "ระบบการชำระเงิน"
ตัวแปรที่กำหนดเอง
ตัวแปรที่กำหนดเองแบ่งออกเป็น:
- ตัวแปรโปรเจกต์ (หรือเรียกอีกอย่างว่าตัวแปรทั่วไป)
- ตัวแปรลูกค้า
- ตัวแปรดีล (หรือเรียกอีกอย่างว่าตัวแปรปกติ)
- ค่าคงที่
ตัวแปรแต่ละประเภทจะอธิบายไว้ด้านล่าง
โปรดหลีกเลี่ยงการใช้ชื่อเดียวกันสำหรับตัวแปรประเภทต่างๆ เพื่อป้องกันความสับสนเมื่อตัวสร้างแสดงหรือใช้ค่าที่ไม่ใช่สิ่งที่คุณคาดหวัง
เมื่อกำหนดค่าให้กับตัวแปร สิ่งสำคัญคือต้องระบุประเภทของตัวแปรโดยใช้คำนำหน้าที่เหมาะสม:
client. (สำหรับตัวแปรลูกค้า) และ project. (สำหรับตัวแปรโปรเจกต์) ไม่ใช้คำนำหน้าสำหรับตัวแปรดีล
คำนำหน้าจะถูกละเว้นเมื่อดึงค่าของตัวแปร
ตัวอย่าง:
สมมติว่าคุณต้องการสร้างตัวแปรโปรเจกต์ชื่อ like เพื่อใช้เป็นตัวนับไลค์จากลูกค้าของคุณproject.like = 0 - การประกาศ ทำครั้งเดียว
ในบล็อกที่คุณต้องการนับไลค์ ให้เขียน:
project.like = like + 1
ลำดับความสำคัญของตัวแปร:
ตัวแปรดีลมีลำดับความสำคัญสูงสุด ตามด้วยตัวแปรลูกค้า จากนั้นเป็นตัวแปรโปรเจกต์
ID ผู้ส่งข้อความ (platform_id)
ID ผู้ส่งข้อความ (platform_id) คือตัวระบุของผู้ใช้/แชท/ช่องทางภายในแอปส่งข้อความ หากต้องการค้นหา ให้เปิดการสนทนากับลูกค้าที่ต้องการในส่วน "ลูกค้า" ทางด้านขวาของหน้าต่างแชท ไปที่แท็บ "เกี่ยวกับลูกค้า - ตัวแปรระบบ" หรือแท็บ "ทั้งหมด"
platform_id เป็นตัวแปรถาวรที่สร้างโดยระบบ ซึ่งแสดงถึง ID ผู้ส่งข้อความที่ไม่ซ้ำกันของผู้ใช้
-
ความคงทน: ID นี้จะคงที่สำหรับผู้ใช้ แม้ว่าคุณจะลบบันทึกของพวกเขาออกจากตัวสร้าง
platform_idของพวกเขาจะยังคงเหมือนเดิมเมื่อลงทะเบียนใหม่ - ที่มา: ID ถูกกำหนดโดยแพลตฟอร์มการส่งข้อความ (เช่น Telegram, WhatsApp) เมื่อผู้ใช้โต้ตอบกับบอทเป็นครั้งแรก
ตัวอย่างต่อไปนี้แสดงให้เห็นว่า platform_id ปรากฏในการ์ดลูกค้าอย่างไร

ตัวแปร platform_id มีอยู่สำหรับผู้ใช้ทั่วไป เช่นเดียวกับชุมชน ช่องทาง และแชท
ในการรับ platform_id (ID ผู้ส่งข้อความ) ของช่อง Telegram ที่บอทเป็นผู้ดูแล เพียงส่งข้อความไปยังช่องจากบัญชีส่วนตัวของคุณ การดำเนินการนี้จะสร้างบทสนทนาระหว่างบอทและช่องโดยอัตโนมัติ
คุณสามารถคัดลอกค่า platform_id ของช่องได้ในส่วน "เกี่ยวกับลูกค้า"
ใน Telegram ID ผู้ส่งข้อความสำหรับช่องทางจะขึ้นต้นด้วยเครื่องหมายลบ (-) เสมอ เมื่อใช้ฟังก์ชัน ตรวจสอบให้แน่ใจว่าได้รวมค่าทั้งหมด รวมถึงเครื่องหมายลบด้วย
วิธีใช้ตัวแปร
ตัวแปรสามารถใช้ในทริกเกอร์ คำสั่งซื้อ การตอบกลับของผู้ใช้ บล็อก และอื่นๆ มาดูตัวอย่างที่เป็นรูปธรรมในขณะที่สร้างฟันเนลสำหรับเอเจนซี่อสังหาริมทรัพย์
ดังนั้น มาสร้างบล็อกเริ่มต้นกัน:

ขั้นตอนที่ 1: สร้างบล็อก "ขอบคุณ"
สร้างบล็อกใหม่พร้อมข้อความขอบคุณผู้ใช้สำหรับข้อมูลที่ป้อน
ขั้นตอนที่ 2: กำหนดค่าการเปลี่ยน
ในการเชื่อมต่อที่นำไปสู่บล็อกนี้ ให้กำหนดค่าทริกเกอร์ต่อไปนี้:
- เปิดใช้งานสลับ "ผู้ใช้ป้อนข้อมูล"
- ในฟิลด์ "ข้อมูลที่ป้อน" ให้ป้อนชื่อตัวแปร:
name

ข้อมูลที่ผู้ใช้ป้อนจะถูกเก็บไว้ในตัวแปร Name ค่านี้สามารถนำมาใช้ซ้ำในบล็อกถัดไปใดๆ ก็ได้โดยการเรียกตัวแปรด้วยไวยากรณ์ #{Name} เช่น: ยินดีต้อนรับ, #{Name}!

บอทจะทำงานดังนี้:

ตอนนี้เรามาทำให้งานซับซ้อนขึ้นอีกหน่อย
ในบล็อกเดียวกันนี้ เราจะถามผู้ใช้ว่าเขาสนใจที่อยู่อาศัยหลัก (ใหม่) หรือที่อยู่อาศัยรอง (ขายต่อ):

จากนั้น สร้างการเชื่อมต่อจากปุ่ม "ที่อยู่อาศัยหลัก" และ "ที่อยู่อาศัยรอง" ในบล็อก "แชท"

ตอนนี้เรามาดูวิธีที่สองในการใช้ตัวแปรภายในบล็อก
เลือกบล็อกที่ถูกต้องและป้อนข้อความต่อไปนี้ในฟิลด์ "เครื่องคิดเลข":
client_interest = ที่อยู่อาศัยหลัก ในบล็อกด้านซ้าย ให้ป้อน:
client_interest = ที่อยู่อาศัยรอง


ตัวแปรจะถูกกำหนดให้กับผู้ใช้เมื่อพวกเขาเปลี่ยนไปยังบล็อกใดบล็อกหนึ่งเหล่านี้ เราสามารถใช้มันในภายหลังเมื่อสร้างคำสั่งซื้อ
จากนั้น เราจะถามลูกค้าเกี่ยวกับงบประมาณในการซื้ออสังหาริมทรัพย์ในบล็อกเหล่านี้ และสร้างอีกสองบล็อกที่มีลูกศรนำไปสู่ตามทริกเกอร์การตอบกลับของลูกค้า




จากบล็อก "งบประมาณของคุณเท่าไหร่?" ให้สร้างการเชื่อมต่อและตั้งค่าเงื่อนไขทริกเกอร์เพื่อแบ่งกลุ่มผู้ใช้ตามข้อมูลที่ป้อน
- ในการตั้งค่าการเชื่อมต่อ ให้เปิดใช้งานช่องทำเครื่องหมายสำหรับ "ผู้ใช้ป้อนข้อมูล"
- กำหนดชื่อตัวแปร (เช่น
budget) เพื่อเก็บการตอบกลับของลูกค้า - ในฟิลด์ "ตัวแปร" ให้ใช้ตัวแปรในตัว
#{question}(ซึ่งมีข้อความล่าสุดของผู้ใช้) เพื่อสร้างเงื่อนไข-
ตัวอย่าง:
#{question} <= 1000000
-
ตัวอย่าง:

สำหรับการเชื่อมต่อทั้งหมดไปยังบล็อก "ลีด" ให้เปิดใช้งาน "ผู้ใช้ป้อนข้อมูล" และกำหนดตัวแปร
คุณยังสามารถกำหนดตัวแปรเพิ่มเติมได้โดยตรงในบล็อก "ลีด" เพื่อให้ข้อมูลดีลที่ครอบคลุมมากขึ้น

ตอนนี้เปลี่ยนประเภทของสองบล็อกสุดท้ายเป็น "ลีด" และดูผลลัพธ์:
มาทดสอบโฟลว์ในการทำงาน:

คุณสามารถตรวจสอบดีลที่สร้างขึ้นและข้อมูลที่เก็บไว้ของลูกค้าได้โดยไปที่ส่วน "ลูกค้า" และเปิดการสนทนาที่เกี่ยวข้อง ตัวแปรดีลจะปรากฏให้เห็นที่นั่น

ตอนนี้คุณรู้วิธีใช้ตัวแปรในอย่างน้อยสามวิธีที่แตกต่างกัน:
- กำหนดชื่อตัวแปรให้กับข้อมูลที่ผู้ใช้ป้อน (เช่น "ชื่อ", "งบประมาณ")
- กำหนดค่าตัวแปรเมื่อเปลี่ยนไปยังบล็อก (เช่น client_interest = ที่อยู่อาศัยหลัก)
วิธีดูตัวแปร
หากต้องการดูตัวแปรของลูกค้า ไปที่ส่วน "ลูกค้า" และเปิดการ์ดลูกค้าของพวกเขา

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


ไม่สามารถแก้ไขตัวแปรระบบได้!
วิธีตั้งค่าตัวแปรลูกค้า
ตัวแปรลูกค้าจะไม่ถูกลบ รีเซ็ต หรือสูญหายเมื่อใช้บล็อก "สิ้นสุดการรวบรวมข้อมูล" (บล็อกสีแดง)
ตัวแปรลูกค้าสามารถตั้งค่าได้สองวิธี: โดยชัดแจ้งและโดยปริยาย
วิธีที่ชัดแจ้งในการกำหนดตัวแปรคือการตั้งค่าในฟิลด์ "เครื่องคิดเลข" ของหนึ่งในบล็อกฟันเนล
ตัวอย่าง: client.age = 28 หรือ client.age = 28:

วิธีโดยปริยายคือการตั้งค่าตัวแปรในฟิลด์ป้อนข้อมูลของลูกศร
ตัวอย่าง:
มาสร้างบล็อกที่เราถามชื่อลูกค้า และสร้างบล็อกด้านล่างด้วย:

จากนั้น ไปที่การตั้งค่าการเชื่อมต่อและเปิดใช้งานตัวเลือก "ผู้ใช้ป้อนข้อมูล"

ใช้คำนำหน้า client. เมื่อตั้งชื่อตัวแปรของคุณ (เช่น client.name) เพื่อจัดเก็บข้อมูลที่ผู้ใช้ป้อน จากนั้นสามารถอ้างอิงตัวแปรนี้ในข้อความภายหลังเป็น #{client.name}

ตัวแปรลูกค้าถูกใช้เหมือนกับตัวแปรปกติในตัวสร้าง แต่ไม่มีคำนำหน้า client
วิธีตั้งค่าตัวแปรโปรเจกต์
ตัวแปรส่วนกลางจะไม่ถูกลบ รีเซ็ต หรือสูญหายเมื่อใช้บล็อก "ลีด" (บล็อกสีแดง)
ตัวแปรส่วนกลางสามารถเข้าถึงได้โดยผู้ใช้ทุกคนของบอท เหมาะอย่างยิ่งสำหรับการควบคุมพฤติกรรมของบอทหรืออำนวยความสะดวกในการโต้ตอบระหว่างผู้ใช้ที่แตกต่างกัน
ตัวอย่างการใช้งาน:
ผู้ใช้หนึ่งคนสามารถโพสต์รายการในช่องตลาดโดยการตั้งค่าตัวแปร (เช่น project.latest_listing) และผู้ใช้คนอื่นๆ ทั้งหมดสามารถเห็นและตอบกลับได้
ไวยากรณ์สำหรับการกำหนด
ในการสร้างหรืออัปเดตตัวแปรส่วนกลาง ให้ใช้คำนำหน้า project. ในเครื่องคิดเลข:
ตัวอย่าง:
project.product_shop = 28project.age = 28

สามารถใช้ได้โดยไม่มีคำนำหน้าใดๆ
มาดูกันว่าข้อมูลแสดงในตารางอย่างไร

ตอนนี้ ดำเนินการบล็อก "เริ่มต้น" ในโหมดทดสอบ

เราสามารถเห็นข้อมูลที่เขียนไปยังตัวแปรจากตารางในข้อความที่บอทส่ง เนื่องจากเราอ้างอิงตัวแปรในข้อความโดยใช้ไวยากรณ์ #{} ข้อมูลที่เก็บไว้ในนั้นจึงแสดงในแชทบอท
รายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานกับฟังก์ชัน get_records_from_table() อธิบายไว้ในบทความ "ผู้ช่วย AI พร้อมตาราง MaviBot"
คำนำหน้า project. อนุญาตให้ฟังก์ชันเขียนข้อมูลตารางไปยังตัวแปรส่วนกลางของโปรเจกต์โดยตรง ซึ่งสามารถเข้าถึงได้ในส่วน "ตัวแปร"

คุณสามารถแก้ไขตัวแปรโปรเจกต์ได้ในการตั้งค่าโปรเจกต์
ตัวอย่าง: การใช้ตัวแปรโปรเจกต์
สร้างระบบที่กำหนดหมายเลขลำดับให้กับลูกค้าใหม่แต่ละรายที่เข้าสู่บอท
การดำเนินการ:
- ไปที่ การตั้งค่าโปรเจกต์ ของคุณ
- สร้างตัวแปรโปรเจกต์ใหม่ (เช่น
project.client_counter)


- ตั้งค่าเริ่มต้น (เช่น
0) ซึ่งหมายถึง "ไม่มีลูกค้าในบอท":



ในบล็อกเริ่มต้นของบอท ให้เพิ่มตรรกะที่:
- เพิ่มค่าของตัวแปรโปรเจกต์ขึ้น 1
- กำหนดค่าใหม่ให้กับตัวแปรเฉพาะลูกค้าสำหรับผู้ใช้ปัจจุบัน

อย่าลืมตั้งค่าข้อจำกัดเพื่อไม่ให้ตัวนับเพิ่มขึ้นสำหรับลูกค้ารายเดียวกันสองครั้ง

วิธีตั้งค่าตัวแปรค่าคงที่
ค่าคงที่คือค่าคงที่ที่ไม่เปลี่ยนแปลง (หรือเปลี่ยนแปลงน้อยมาก) ตลอดอายุของโปรเจกต์
ความแตกต่างที่สำคัญจากตัวแปรส่วนกลาง:
ต่างจากตัวแปรส่วนกลาง ค่าคงที่ เฉพาะลูกค้า หากค่าคงที่ถูกแก้ไข การเปลี่ยนแปลงจะใช้กับเซสชันของลูกค้าแต่ละรายเท่านั้น
กรณีการใช้งานทั่วไป:
ค่าคงที่เหมาะสำหรับการจัดเก็บข้อมูลคงที่ เช่น:
- ราคาสินค้าและส่วนลดของลูกค้า
- โทเค็นการรวมระบบและคีย์ API
- ข้อมูลติดต่อผู้ขายหรือฝ่ายสนับสนุน
- ค่าการกำหนดค่าคงที่อื่นๆ
ตัวอย่าง: การใช้ตัวแปรค่าคงที่
ตัวอย่างเช่น ส่วนลดของลูกค้าอาจเป็น 10% โดยค่าเริ่มต้น แต่เปลี่ยนเป็น 25% เมื่อป้อนรหัสโปรโมชัน
ใน "การตั้งค่าโปรเจกต์" → "ค่าคงที่" ให้ป้อน: ส่วนลด : 10

ในการป้อนรหัสโปรโมชัน ให้เพิ่มบล็อก "ทริกเกอร์" ซึ่งเรากำหนดค่าตัวแปร ส่วนลด เป็น 25

แสดงตัวแปรที่แสดงจำนวนส่วนลดในบล็อกสีเขียว:

ขั้นตอนที่ 1: กำหนดค่าการเปลี่ยนอัตโนมัติ
สร้างการเชื่อมต่อด้วย ตัวจับเวลาเป็นศูนย์วินาที จากบล็อกสีเทา เพื่อให้แน่ใจว่าส่วนลดถูกนำไปใช้ทันทีและลูกค้าดำเนินการไปยังข้อความในบล็อกเริ่มต้น
ขั้นตอนที่ 2: ทดสอบโฟลว์
ตอนนี้ เขียนข้อความถึงบอทเพื่อทริกเกอร์และทดสอบลำดับทั้งหมด

ส่วนลดมาตรฐานคือ 10% โดยไม่มีรหัสโปรโมชัน อย่างไรก็ตาม การป้อนรหัสโปรโมชันที่ถูกต้องจะเปลี่ยนสถานการณ์

ดังนั้น หลังจากป้อนรหัสโปรโมชัน ตัวแปร "ส่วนลด" สำหรับลูกค้ารายนี้กลายเป็น 25
สิ่งนี้เกิดขึ้นเนื่องจากการกำหนดเช่น discount = 25 ตั้งค่าสำหรับตัวแปรดีล แทนที่จะเปลี่ยนค่าของค่าคงที่ที่มีชื่อเดียวกัน
ตัวแปรดีลที่สำคัญ
name - ชื่อดีล คำว่า Name ใช้สำหรับเวอร์ชันสากลของโปรเจกต์
description - คำอธิบายดีล Description ใช้ในเวอร์ชันสากลของโปรเจกต์
budget - จำนวนดีล (ตัวเลข)
ในการแก้ไขตัวแปรโดยใช้คำขอ API /set_order_vars คุณต้องใช้ชื่อจากคู่มือนี้ตามที่แสดงทุกประการ รวมถึงตัวพิมพ์เล็กใหญ่และเวอร์ชันของโปรเจกต์
ข้อจำกัด
ความยาวชื่อตัวแปรสูงสุด: 500 ตัวอักษร
ความยาวค่าตัวแปรสูงสุด: 100,000 ตัวอักษร
จำนวนตัวแปรสูงสุดต่อลูกค้าหรือดีล: 1,000 ตัวอักษร
วิธีทำงานกับตัวแปรอย่างถูกต้อง
เมื่อใดควรใส่ค่าของตัวแปรในเครื่องหมายคำพูด?
ตัวอย่างเช่น client_id = 1202020202 หรือ client_id = '1202020202'?
ตัวเลือกไวยากรณ์ทั้งสองถูกต้องตามหน้าที่ การใช้เครื่องหมายคำพูดรอบค่ามีผลต่อการเน้นสีในตัวแก้ไขเครื่องคิดเลขเท่านั้น
อย่างไรก็ตาม การปฏิบัติตามหลักเกณฑ์การเขียนโค้ดที่สอดคล้องกันช่วยเพิ่มความสามารถในการอ่านและการบำรุงรักษา:
-
ละเว้นเครื่องหมายคำพูด สำหรับค่า ตัวเลข (เช่น
discount = 25) -
ใช้เครื่องหมายคำพูด สำหรับค่า สตริง (เช่น
status = "active")



ไวยากรณ์ที่ถูกต้องสำหรับการส่งตัวระบุ เช่น ID ลูกค้า, ID ไซต์, ID บล็อก หรือ ID ใบรับรองไปยังฟังก์ชันคืออะไร — ควรใส่ในเครื่องหมายคำพูดหรือไม่?

ไม่ควรใส่ ID ในเครื่องหมายคำพูดเมื่อส่งไปยังเมธอดหรือฟังก์ชัน:

ควรใช้เครื่องหมายคำพูดคู่หรือเดี่ยว?
ไม่มีความแตกต่างระหว่างการใช้เครื่องหมายคำพูดเดี่ยวหรือคู่ แต่เราแนะนำให้ใช้เครื่องหมายคำพูดคู่ ด้วยวิธีนี้ ตัวอย่างเช่น เมื่อแทรกตัวแปรภายในสตริง ตัวแปรจะถูกเน้นด้วยสีที่แตกต่างกัน ทำให้สังเกตเห็นได้ง่ายขึ้น

ควรวางช่องว่างอย่างไร?
มันทำงานเหมือนกันหรือไม่ถ้ามีช่องว่างระหว่างตัวแปรและเครื่องหมายเท่ากับ (ตัวอย่างเช่น ans="yes", ans = "yes", ans= "yes", ans ="yes"?

การเว้นวรรคไม่ส่งผลต่อการทำงานของเมธอด ตัวแปร หรือฟังก์ชัน อย่างไรก็ตาม ขอแนะนำให้ใช้ช่องว่างในโค้ดเพื่อเพิ่มความสามารถในการอ่าน
วิธีเขียนความคิดเห็นในเครื่องคิดเลขอย่างถูกต้อง
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการเขียนความคิดเห็นในเครื่องคิดเลข โปรดดู บทความนี้.
วิธีเปรียบเทียบตัวแปร
คุณสามารถควบคุมโฟลว์ของแชทบอทได้โดยการเปรียบเทียบค่าตัวแปร ซึ่งช่วยให้คุณสร้างตรรกะแบบมีเงื่อนไข เช่น การตรวจสอบอายุของผู้ใช้เพื่อให้สอดคล้องกับกฎหมาย หรือการกำหนดเส้นทางการโต้ตอบตามแพลตฟอร์มการส่งข้อความของผู้ใช้
นี่คือวิธีแยกฟันเนล ตามแอปส่งข้อความต่างๆ หรือตามบัญชีต่างๆ ของแอปส่งข้อความเดียวกัน อธิบายไว้ที่นี่
ตัวดำเนินการที่รองรับ:
"+": การบวก
"-"': การลบ
"*" การคูณ
"/": การหาร
"%'": เศษจากการหาร
"^" "**": การยกกำลัง
"and" "AND" "&&": ตรรกะ AND
"or" "OR" "||": ตรรกะ OR
ตัวดำเนินการเปรียบเทียบ:
"==" — เท่ากับ
"!=" — ไม่เท่ากับ
">" — มากกว่า
"<" — น้อยกว่า
">=" — มากกว่าหรือเท่ากับ
"<=" — น้อยกว่าหรือเท่ากับ
สำคัญ!
ในการตรวจสอบว่า ตัวแปรในตัว tag (แท็กเปิดตัวบอท) ไม่มีอยู่ในการ์ดของลูกค้า ให้ใช้วิธีการเปรียบเทียบต่อไปนี้:
tag == "NONE"
ควรเปรียบเทียบตัวแปรในเงื่อนไขภายในฟิลด์ "ตัวแปร" (ทั้งในการตั้งค่าการเชื่อมต่อและในการตั้งค่าบล็อก):
ตัวอย่างการเปรียบเทียบตัวแปรในฟิลด์ "ตัวแปร" ของบล็อกทริกเกอร์

ตัวอย่างการเปรียบเทียบตัวแปรในฟิลด์ "ตัวแปร" ของการเชื่อมต่อบล็อก

วิธีการทำงานของตัวแปรและทริกเกอร์ร่วมกัน
สำหรับการเชื่อมต่อที่จะเปิดใช้งาน ต้องเป็นไปตามทริกเกอร์ทั้งสอง:
- เงื่อนไขในฟิลด์ "ทริกเกอร์"
- ตรรกะการเปรียบเทียบในฟิลด์ "ตัวแปร"
ทำความเข้าใจฟิลด์ "ตัวแปร"
หากคุณป้อนเฉพาะชื่อตัวแปร (เช่น client_type) ในฟิลด์ "ตัวแปร" โดยไม่มีนิพจน์ ระบบจะตรวจสอบ การมีอยู่ หรือ ความจริง ของค่าตัวแปร ระบบจะ ไม่ เปรียบเทียบกับข้อมูลดิบที่ผู้ใช้ป้อน
ตัวอย่าง:
การกำหนดค่าด้านล่างตรวจสอบว่าลูกค้ามาจาก WhatsApp หรือไม่ โดยตรวจสอบว่าตัวแปร client_type เท่ากับ 6 (โดยที่ 6 แทน WhatsApp)
client_type == 6

ตัวอย่างด้านล่างทำงานเหมือนกัน:

โปรดทราบ!
คุณไม่สามารถระบุหลายค่าสำหรับการเปรียบเทียบตัวแปรในฟิลด์ "ทริกเกอร์"สิ่งนี้ไม่ถูกต้อง!
หากคุณต้องการเปรียบเทียบหลายตัวแปร ให้ระบุค่าในฟิลด์ "ตัวแปร"
ตัวเลือกเหล่านี้ถูกต้อง
client_type == 3 การเปลี่ยนถ้าค่าตัวแปรเท่ากับ 3
attachments != None การเปลี่ยนถ้าตัวแปรมีค่าใดๆ
attachments == None การเปลี่ยนถ้าไม่ได้ตั้งค่าตัวแปร
product_quantity >= 100 การเปลี่ยนถ้าปริมาณสินค้ามากกว่าหรือเท่ากับ 100
product_quantity <= 100 การเปลี่ยนถ้าปริมาณสินค้าน้อยกว่าหรือเท่ากับ 100
name == "John" การเปลี่ยนถ้าชื่อตัวแปรเท่ากับ Johnในการตรวจสอบว่าตัวแปรว่างเปล่าหรือไม่ ให้ใช้นิพจน์:
&#xNAN;"#{value}" == ""
"#{value}" != ""(โดยที่ value คือชื่อตัวแปร)
ผลลัพธ์ของการดำเนินการเปรียบเทียบจะส่งกลับค่าบูลีน: True หรือ False
ความยาวนิพจน์สูงสุด: 1000 ตัวอักษร
ค่าเริ่มต้นจะถูกส่งกลับเป็นผลลัพธ์เมื่อพยายามเปรียบเทียบค่าของประเภทที่แตกต่างกัน
"==" - False "<" - False
"!=" - True ">=" - False
">" - False "<=" - False
สำคัญ!
ในการตรวจสอบว่า ตัวแปรในตัว tag (แท็กเปิดตัวบอท) ไม่มีอยู่ในการ์ดของลูกค้า ให้ใช้วิธีการเปรียบเทียบต่อไปนี้:
tag == "NONE"
ตัวอย่าง: บอทที่ตรวจสอบอายุของผู้ใช้ (age)
- ถ้า
age < 18จะส่งข้อความสำหรับผู้เยาว์ - ถ้า
age >= 18จะส่งข้อความสำหรับผู้ใหญ่


โปรดทราบว่าโฟลว์รวมถึงบล็อกที่ไม่มีทริกเกอร์ โดยมีการเชื่อมต่อแบบกำหนดเวลาที่นำออกจากบล็อกนั้น
บล็อกนี้ถูกออกแบบโดยเจตนาเพื่อสาธิตวิธีการสร้างโฟลว์ที่บอทตอบสนองไม่ใช่ต่อการกระทำของผู้ใช้ แต่ต่อผลลัพธ์ของการคำนวณ ในขั้นตอนแรก คำตอบจะถูกบันทึกไปยังตัวแปร จากนั้นจึงทำการเปรียบเทียบ การหน่วงเวลาบนลูกศรตั้งค่าเป็น 0 เพื่อการตอบสนองทันที
การเปรียบเทียบ "อายุ >= 18" สามารถแสดงเป็น "มากกว่าหรือเท่ากับ 18"

โปรดสังเกตข้อผิดพลาดในทริกเกอร์:
ตัวเลขไม่สามารถมากกว่า น้อยกว่า และเท่ากับ 18 พร้อมกันได้!
ทริกเกอร์เหล่านี้ไม่มีความหมาย ทุกจำนวนมีค่าน้อยกว่า 18 มากกว่า 18 หรือเท่ากับ 18
สำคัญ!
ต้องเขียนทริกเกอร์เชิงตรรกะพร้อมตัวแปรในฟิลด์ "ตัวแปร" ไม่ใช่ในฟิลด์ "ทริกเกอร์"!
ตัวอย่างเช่น ในภาพด้านล่าง บล็อกจะถูกทริกเกอร์ถ้า ตัวแปร phone ถูกเติม (เช่น ไม่เท่ากับ None):

ตัวอย่างถัดไปแสดงวิธีการรวมตัวดำเนินการ:

หากลูกค้ามีตัวแปรอายุที่มีค่าระหว่าง 18 ถึง 99 บล็อกจะถูกทริกเกอร์ หากไม่มีตัวแปร หรืออายุน้อยกว่า 18 หรือมากกว่า 99 บล็อกจะไม่ทำงาน
หมายเหตุ!
หากคุณเปรียบเทียบตัวแปรกับค่าในเครื่องหมายคำพูด ตรวจสอบให้แน่ใจว่าไม่มีช่องว่างระหว่างเครื่องหมายคำพูดและค่า มิฉะนั้น บล็อกอาจไม่ทำงานหรือทำงานไม่ถูกต้อง!
ถูกต้อง (ไม่มีช่องว่าง ก่อนเครื่องหมายคำพูด หรือ หลังค่า my_new_bot):
ไม่ถูกต้อง (มีช่องว่างก่อนเครื่องหมายคำพูด):


