โปรแกรมแนะนำเพื่อน คือระบบที่ให้รางวัลแก่ลูกค้าหรือพันธมิตรของบริษัท โดยการเสนอสิ่งจูงใจหรือโบนัสสำหรับการนำผู้เข้าร่วมใหม่เข้ามา
จากมุมมองทางเทคนิค โปรแกรมแนะนำเพื่อนประกอบด้วยองค์ประกอบสำคัญหลายประการ:
- ลิงก์เชิญ—ตัวระบุเฉพาะที่ช่วยให้ผู้ใช้หรือลูกค้าสามารถเชิญผู้อื่นให้เข้าร่วมโปรแกรมได้ ผู้เชิญสามารถแชร์ลิงก์นี้ผ่านช่องทางต่างๆ (ตัวอย่างเช่น บทความนี้จะครอบคลุมการสร้างลิงก์ผ่านบอท WhatsApp แต่ลิงก์โปรแกรมแนะนำเพื่อนสามารถแชร์ผ่านแอปส่งข้อความใดก็ได้ที่คุณต้องการ)
- ฐานข้อมูลผู้เข้าร่วม ซึ่งดำเนินการผ่านการรวมฟังก์ชันของ MaviBot และ Google Sheets โดยบันทึกข้อมูลเกี่ยวกับทั้งผู้ใช้ที่ถูกเชิญและผู้ใช้ที่เชิญ
- ระบบติดตามการแนะนำ ที่ตรวจสอบการดำเนินการที่เกี่ยวข้องกับการนำผู้เข้าร่วมใหม่ผ่านลิงก์แนะนำ ระบบจะจัดเก็บข้อมูลเกี่ยวกับการแนะนำทั้งหมด ทำให้คุณสามารถตรวจสอบได้ว่าการแนะนำนั้นมีอยู่ในระบบในฐานะผู้ใช้ที่ถูกเชิญก่อนหน้านี้หรือไม่
เราขอแนะนำอย่างยิ่งให้คุณอ่านส่วน "พื้นฐานการสร้างบอทบน Mavibot.ai" ссылка และ "Google Sheets" ссылка ก่อนที่จะสร้างโฟลว์แชทบอทของคุณ
ระบบแนะนำใน WhatsApp
ฟังก์ชันการทำงานของบอทที่กำลังสร้างจะประกอบด้วยบล็อกที่มีองค์ประกอบดังต่อไปนี้:
- การสร้างลิงก์แนะนำ (พันธมิตร); ссылка
- การตรวจสอบว่าผู้ใช้ใหม่มีอยู่ในฐานข้อมูลแล้วหรือไม่; ссылка
- การแจ้งเตือนผู้ใช้ที่เชิญเกี่ยวกับการแนะนำใหม่; ссылка
- การบันทึกผู้ใช้ในฐานข้อมูล; ссылка
- การขอรายการการแนะนำ ссылка
การสร้างลิงก์แนะนำ
มาสร้างบล็อกที่มีลิงก์ฝังตัวที่บอทจะส่งให้ผู้ใช้เมื่อได้รับคำสั่ง "link" โดยสร้างบล็อกใหม่ในโฟลว์โดยใช้วิธีใดวิธีหนึ่งจากสองวิธี:
- ดับเบิลคลิกที่พื้นที่ว่างในผืนผ้าใบของตัวสร้าง:

- โดยใช้ปุ่ม "Save" ที่ด้านล่างของหน้าจอและเลือกประเภทบล็อก:

หลังจากนั้น ในเงื่อนไขของบล็อก ให้ป้อนคำว่า "Link" และตั้งค่าประเภทการจับคู่เป็น "Ignore typos and inaccuracies" (ซึ่งมีประโยชน์ในกรณีที่ผู้ใช้พิมพ์ผิดหรือข้อความผิดพลาดอื่นๆ):

เพื่อระบุว่าใครเป็นผู้แนะนำผู้ใช้ บอทจะสร้างลิงก์โดยใช้เทมเพลตต่อไปนี้: https://wa.me/(your phone number linked to the bot)text=You%20were%20recommended%20by%20#{phone}%20😌Hello

มาดูเทมเพลตลิงก์อย่างละเอียด: https://wa.me/(your phone number linked to the bot)?text=You%20were%20recommended%20by%20#{phone}%20😌Hello โดยที่:
- แทนที่วงเล็บ "(your phone number linked to the bot)" ด้วยหมายเลขโทรศัพท์ที่เกี่ยวข้อง
- #{phone} จะถูกแทนที่โดยอัตโนมัติด้วยหมายเลขโทรศัพท์ของผู้ใช้ที่ขอลิงก์พันธมิตรของตน
เราส่งลิงก์ที่สร้างขึ้นไม่ใช่เป็นข้อความในบล็อก แต่เป็นไฟล์แนบ — ลิงก์ที่คลิกได้พร้อมการแจ้งเตือน (ดูรูปที่ 2 และรูปที่ 3):
- เลือกแทรกไฟล์แนบ
- เลือกประเภท — Link และวางลงในฟิลด์ 'Attachment URL':

ในกรณีนี้ ลิงก์จะดูสั้นลง:

มาทดสอบฟังก์ชันลิงก์โดยใช้ฟีเจอร์ "Test Bot"

นี่คือผลลัพธ์: ลิงก์จะนำผู้ใช้ไปยังแชทแอปส่งข้อความที่เหมาะสมพร้อมหมายเลขโทรศัพท์ของคุณ:

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

การตรวจสอบผู้ใช้
การใช้ฟังก์ชันและนิพจน์ทั่วไปในบล็อก
คำสั่งการตรวจสอบและการป้อนฐานข้อมูลจะทำงานก็ต่อเมื่อบอทพบหมายเลขโทรศัพท์ในข้อความของผู้ใช้ ดังนั้น จึงจำเป็นต้องแบ่งวลีที่ได้รับออกเป็นส่วนๆ
สำหรับสิ่งนี้ จะใช้ฟังก์ชัน splitter()
ฟังก์ชัน Splitter()
splitter(str, s, n) - แบ่งสตริงออกเป็นส่วนๆ ฟังก์ชันจะคืนค่าอาร์เรย์ขององค์ประกอบ
พารามิเตอร์:
! str ****- สตริงต้นฉบับ
! s ****- ตัวคั่นสตริง
n - จำนวนองค์ประกอบสูงสุด
ตัวอย่าง
ฟังก์ชันการแบ่งสตริง:

ต่อไป บอทต้องตรวจสอบว่าลำดับของตัวเลขในสตริงนั้นเป็นหมายเลขโทรศัพท์จริงหรือไม่ โดยใช้ นิพจน์ทั่วไปต่อไปนี้:
- หมายเลขโทรศัพท์ทั่วไป:
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$ -
Поменять русский номер! หมายเลขโทรศัพท์รัสเซียเท่านั้น:
^((\+7|7|8)+([0-9]){10})$

สำหรับข้อมูลเกี่ยวกับการทำงานกับนิพจน์ทั่วไป โปรดดูบทความชื่อ "Regular Expressions" ссылка
หลังจากที่บอทยืนยันว่าลำดับของตัวเลขนั้นเป็นหมายเลขโทรศัพท์จริง ให้บันทึกจากข้อความเป็นตัวแปร (เช่น #{reff})
การตรวจสอบหมายเลขโทรศัพท์ของผู้ใช้ในฐานข้อมูลในฐานะการแนะนำ
ตอนนี้จำเป็นต้องตรวจสอบว่าหมายเลขโทรศัพท์ของผู้ใช้ที่คลิกลิงก์นั้นเป็นการแนะนำอยู่แล้วหรือไม่ (ถูกเชิญโดยใครบางคนก่อนหน้านี้และบันทึกในฐานข้อมูลของเรา) โดยสร้างบล็อกในโฟลว์ด้วยฟังก์ชันค้นหาคอลัมน์
ใช้ฟังก์ชันค้นหาคอลัมน์โดยคลิก "API Request" ในบล็อก ซึ่งคุณต้องตั้งค่าพารามิเตอร์ต่อไปนี้:

! URL ฟังก์ชัน: https://store.salebot.pro/function/findcell ссылка
! พารามิเตอร์คำขอ JSON:
{ "id": "your_table_id", "find": "text_to_search", "col": column_number_to_search_in, "return": column_number_to_return, "creds_path": "path_to_your_auth_credentials_file" }
พารามิเตอร์การตอบกลับ:
"status": "1" — พบค่า
"status": "0" — ไม่พบค่า
"data" — ค่าที่พบ
"cell_number" — ตำแหน่งของเซลล์ที่พบ
ค้นหาตามคอลัมน์และแสดงข้อความจากทั้งแถว
พารามิเตอร์ return ต้องตั้งค่าเป็น 0.
&#xNAN;{ "id": "your_table_id", "find": "text_to_search", "col": 2, "return": 0 }
การตอบกลับ: {"status":"1","data":{"0":"\u0441\u043e\u043b\u043d\u0446\u0435","1":"\u0440\u0430\u0441\u0441\u0432\u0435\u0442","2":"\u043a\u0440\u044b\u0448\u0430","3":"","4":"\u043d\u0435\u0431\u043e"},"cell_number":{"row":4,"col":1, "col_letter":"A"}}
รายละเอียดการตอบกลับ:
data — การตอบกลับ
data|0 — เซลล์ 1
data|1 — เซลล์ 2
data|2 — เซลล์ 3
data|3 — เซลล์ 4
cell_number|row — แถว
cell_number|col — คอลัมน์
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันที่มีให้สำหรับการทำงานกับตาราง โปรดดูบทความชื่อ "Google Sheets" ссылка
บล็อกการแจ้งเตือน
เพื่อแจ้งให้ผู้ใช้ที่แชร์ลิงก์แนะนำทราบว่าลูกค้าใหม่ติดตามลิงก์สำเร็จแล้ว เราจะสร้างบล็อกเฉพาะ สำหรับการส่งการแจ้งเตือนเกี่ยวกับการสร้างการแนะนำใหม่ ให้ใช้พารามิเตอร์คำขอต่อไปนี้ (ประเภท: POST - JSON):

คำขอจะทำโดยใช้เมธอด POST ไปยัง URL: https://chatter.salebot.pro/api/{api_key}/{action} โดยที่:
-
api_keyคือคีย์การเข้าถึง API ของโปรเจกต์ของคุณ ซึ่งสามารถรับได้ในการตั้งค่าโปรเจกต์ (ดูรูปที่ 11)

คุณสามารถดึงคีย์การเข้าถึงได้โดยใช้ตัวแปร #{api_key} ซึ่งเก็บโทเค็นการเข้าถึงที่สร้างขึ้นปัจจุบัน อย่าลืมสร้างโทเค็นก่อนใช้งาน
! URL คำขอ: https://chatter.salebot.pro/api/#{api_key}/whatsapp_message ссылка

คุณสามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับฟังก์ชันคำขอ API ได้ที่นี่ ссылка
การเพิ่มผู้ใช้ที่ถูกเชิญและผู้ใช้ที่เชิญลงในฐานข้อมูล
ในการดำเนินการนี้ เราจะใช้การป้อนข้อมูลทีละแถวลงในคอลัมน์เฉพาะ ซึ่งทำได้โดยใช้ฟังก์ชัน mapping
ตารางต้องมีส่วนหัวที่กรอกข้อมูล (อย่างน้อยหนึ่งเซลล์ในแถวแรก)
! URL ฟังก์ชัน https://store.salebot.pro/function/gsheets ссылка
! พารามิเตอร์คำขอ JSON:
{ "id": "your_table_id", "mapping": { "a": "#{variable}", "b": "#{another_variable}", "d": "plain text" } }
หากคุณต้องการเขียนแถวในชีตอื่นที่ไม่ใช่ชีตแรก ให้เพิ่มพารามิเตอร์ list_name ในคำขอ:
{ "id": "your_table_id", "mapping": { "a": "plain text", "b": "#{variable}" }, "list_name": "SheetName" }
พารามิเตอร์:
- id — ตัวระบุตาราง*
- a, b, c, d — ชื่อคอลัมน์
- list_name — ชื่อชีตของคุณ (เช่น "Sheet2")
*ตรวจสอบให้แน่ใจว่าได้แทนที่ด้วย ID ตารางจริงของคุณ
ตัวอย่างการตอบกลับ: {"number_row":8}
หากคำขอทำงานสำเร็จ การตอบกลับจะรวมหมายเลขแถว ซึ่งคุณสามารถบันทึกและใช้สำหรับการดำเนินการเพิ่มเติมได้
การดูรายการการแนะนำ
มาเพิ่มคำสั่งเพิ่มเติมให้กับบอทที่อนุญาตให้ผู้ใช้ดูรายการการแนะนำของตน
เพื่อค้นหาค่าที่ระบุทั้งหมดในคอลัมน์ ให้ใช้ฟังก์ชัน findcell กับพารามิเตอร์ "find_all" ซึ่งจะค้นหาทุกครั้งที่พบค่า "find_all" ในคอลัมน์ "col" ที่ระบุ และส่งคืนรายการค่าที่ไม่ซ้ำจากคอลัมน์ "return" เป็นสตริง
! URL ฟังก์ชัน: https://store.salebot.pro/function/findcell ссылка
! พารามิเตอร์คำขอ JSON:
{ "id": "table_id", "find_all": "search_value", "list_name": "sheet_name", "col": "column_number_to_search_in", "return": "column_number_to_return_values_from", "find": "!" }

ในค่าที่บันทึก ให้ระบุ:
list → List
quantity → Quantity
สำหรับผู้ใช้ ให้แสดงข้อความ:
"You have referred #{spisok}, your total referrals: #{quantity}"
ในแอปส่งข้อความอื่นๆ การใช้ระบบแนะนำดังกล่าวทำได้ง่ายกว่าเนื่องจากข้อมูลของผู้เชิญจะถูกส่งผ่านเป็นพารามิเตอร์ที่ซ่อนอยู่ระหว่างการเปลี่ยนลิงก์ ดังนั้นผู้ใช้ใหม่จึงไม่จำเป็นต้องส่งข้อความเช่น "ฉันถูกเชิญโดยหมายเลขนี้"