Program rujukan ialah sistem yang memberi ganjaran kepada pelanggan atau rakan kongsi syarikat dengan menawarkan insentif atau bonus kerana membawa masuk peserta baharu.
Dari perspektif teknikal, program rujukan merangkumi beberapa komponen utama:
- Pautan jemputan—pengecam unik yang membolehkan pengguna atau pelanggan menjemput orang lain untuk menyertai program. Penjemput boleh berkongsi pautan ini melalui pelbagai saluran (contohnya, artikel ini akan merangkumi penjanaan pautan melalui bot WhatsApp, tetapi pautan program rujukan boleh dikongsi melalui mana-mana messenger yang anda suka).
- Pangkalan data peserta, dilaksanakan melalui integrasi fungsi MaviBot dan Google Sheets, di mana maklumat tentang pengguna yang dijemput dan yang menjemput direkodkan.
- Sistem penjejakan rujukan yang memantau tindakan berkaitan membawa masuk peserta baharu melalui pautan rujukan. Sistem menyimpan data semua rujukan, membolehkan anda menyemak sama ada rujukan tertentu sudah wujud dalam sistem sebagai pengguna yang pernah dijemput.
Kami amat mengesyorkan menyemak bahagian "Asas Pembinaan Bot di Mavibot.ai" pautan dan "Google Sheets" pautan sebelum mencipta aliran chatbot anda.
Sistem Rujukan dalam WhatsApp
Fungsi bot yang dicipta akan merangkumi blok yang terdiri daripada komponen berikut:
- penjanaan pautan rujukan (afiliasi); pautan
- menyemak sama ada pengguna baharu sudah berada dalam pangkalan data; pautan
- memberitahu pengguna yang menjemput tentang rujukan baharu; pautan
- merekodkan pengguna dalam pangkalan data; pautan
- meminta senarai rujukan. pautan
Penjanaan pautan rujukan
Mari cipta blok dengan pautan terbenam yang akan dihantar bot kepada pengguna atas arahan "pautan". Untuk berbuat demikian, cipta blok baharu dalam aliran menggunakan salah satu daripada dua kaedah:
- Klik dua kali pada kawasan kosong dalam kanvas pembina:

- Dengan menggunakan butang "Simpan" di bahagian bawah skrin dan memilih jenis blok:

Selepas itu, dalam syarat blok, masukkan perkataan "Pautan" dan tetapkan jenis padanan kepada "Abaikan kesilapan ejaan dan ketidaktepatan" (ini berguna sekiranya berlaku kesilapan ejaan pengguna atau ralat mesej lain):

Untuk mengenal pasti siapa yang merujuk pengguna, bot mencipta pautan menggunakan templat berikut: https://wa.me/(nombor telefon anda yang dipautkan ke bot)?text=Anda%20telah%20disyorkan%20oleh%20#{phone}%20😌Hello

Mari kita lihat dengan lebih dekat pautan templat: https://wa.me/(nombor telefon anda yang dipautkan ke bot)?text=Anda%20telah%20disyorkan%20oleh%20#{phone}%20😌Hello, di mana:
- Gantikan kurungan "(nombor telefon anda yang dipautkan ke bot)" dengan nombor telefon yang sepadan;
- #{phone} digantikan secara automatik dengan nombor telefon pengguna yang meminta pautan rakan kongsi mereka.
Kami menghantar pautan yang dijana bukan sebagai teks blok, tetapi sebagai lampiran — pautan boleh klik dengan pemberitahuan (lihat Rajah 2 dan Rajah 3):
- pilih untuk memasukkan lampiran
- pilih jenis — Pautan, dan tampalkannya ke dalam medan 'URL Lampiran':

Dalam kes ini, pautan akan kelihatan dipendekkan secara visual:

Mari uji fungsi pautan menggunakan ciri "Uji Bot".

Inilah hasilnya: pautan mengarahkan pengguna ke sembang messenger yang sesuai dengan nombor telefon anda:

Dengan cara ini, anda telah berjaya menjana pautan jemputan yang boleh digunakan oleh pengguna berpotensi untuk mengakses chatbot. Selain itu, apabila mengklik pautan ini, pengguna diarahkan ke tetingkap sembang dengan mesej yang telah diisi. (Lihat Rajah 6)

Pengesahan pengguna
Menggunakan fungsi dan ungkapan biasa dalam blok
Arahan pengesahan dan kemasukan pangkalan data hanya akan berfungsi jika bot menemui nombor telefon dalam mesej pengguna. Oleh itu, adalah perlu untuk membahagikan frasa yang diterima kepada bahagian.
Untuk ini, fungsi splitter() digunakan.
Fungsi Splitter()
splitter(str, s, n) - membahagikan rentetan kepada bahagian. Fungsi mengembalikan tatasusunan elemen.
Parameter:
! str ****- rentetan asal
! s ****- pemisah rentetan
n - bilangan maksimum elemen
Contoh
Fungsi pembahagian rentetan:

Seterusnya, bot perlu mengesahkan sama ada jujukan digit dalam rentetan itu sememangnya nombor telefon. Untuk berbuat demikian, kami menggunakan ungkapan biasa berikut:
- Nombor telefon am:
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$ -
Tukar nombor Rusia! Nombor telefon Rusia sahaja:
^((\+7|7|8)+([0-9]){10})$

Untuk maklumat tentang bekerja dengan ungkapan biasa, sila rujuk artikel bertajuk "Ungkapan Biasa." pautan
Selepas bot mengesahkan bahawa jujukan digit itu sememangnya nombor telefon, simpannya daripada mesej sebagai pembolehubah (contohnya, #{reff}).
Menyemak nombor telefon pengguna sebagai rujukan dalam pangkalan data
Sekarang adalah perlu untuk menyemak sama ada nombor telefon pengguna yang mengikuti pautan itu sudah menjadi rujukan (pernah dijemput oleh seseorang dan direkodkan dalam pangkalan data kami). Untuk berbuat demikian, cipta blok dalam aliran dengan fungsi carian lajur.
Gunakan fungsi carian lajur dengan mengklik "Permintaan API" dalam blok, di mana anda perlu menetapkan nilai parameter berikut:

! URL Fungsi: https://store.salebot.pro/function/findcell pautan
! Parameter permintaan JSON:
{ "id": "id_jadual_anda", "find": "teks_untuk_dicari", "col": nombor_lajur_untuk_dicari_dalam, "return": nombor_lajur_untuk_dikembalikan, "creds_path": "laluan_ke_fail_kredensial_auth_anda" }
Parameter respons:
"status": "1" — nilai ditemui
"status": "0" — nilai tidak ditemui
"data" — nilai yang ditemui
"cell_number" — lokasi sel yang ditemui
Carian mengikut lajur dan paparkan teks daripada keseluruhan baris
Parameter return mesti ditetapkan kepada 0.
&#xNAN;{ "id": "id_jadual_anda", "find": "teks_untuk_dicari", "col": 2, "return": 0 }
Respons: {"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"}}
Pecahan respons:
data — respons
data|0 — Sel 1
data|1 — Sel 2
data|2 — Sel 3
data|3 — Sel 4
cell_number|row — baris
cell_number|col — lajur
Untuk mengetahui lebih lanjut tentang fungsi yang tersedia untuk bekerja dengan jadual, rujuk artikel bertajuk "Google Sheets." pautan
Blok pemberitahuan
Untuk memberitahu pengguna yang berkongsi pautan rujukan bahawa pelanggan baharu telah berjaya mengikutinya, kami akan mencipta blok khusus. Untuk menghantar pemberitahuan tentang penciptaan rujukan baharu, gunakan parameter permintaan berikut (jenis: POST - JSON):

Permintaan dibuat menggunakan kaedah POST ke URL: https://chatter.salebot.pro/api/{api_key}/{action} Di mana:
-
api_keyialah kunci akses API projek anda, yang boleh diperoleh dalam tetapan projek (lihat Rajah 11).

Anda boleh mendapatkan kunci akses menggunakan pembolehubah #{api_key}, yang menyimpan token akses yang dijana semasa. Jangan lupa untuk menjana token sebelum menggunakannya.
! URL Permintaan: https://chatter.salebot.pro/api/#{api_key}/whatsapp_message pautan

Anda boleh mendapatkan butiran lanjut tentang fungsi permintaan API di sini. pautan
Menambah pengguna yang dijemput dan yang menjemput ke pangkalan data
Untuk berbuat demikian, kami akan menggunakan kemasukan baris demi baris ke dalam lajur tertentu, yang dilakukan menggunakan fungsi pemetaan.
Jadual mesti mempunyai pengepala yang diisi (sekurang-kurangnya satu sel dalam baris pertama).
! URL Fungsi https://store.salebot.pro/function/gsheets pautan
! Parameter permintaan JSON:
{ "id": "id_jadual_anda", "mapping": { "a": "#{pembolehubah}", "b": "#{pembolehubah_lain}", "d": "teks biasa" } }
Jika anda ingin menulis baris bukan pada helaian pertama, tambahkan parameter list_name pada permintaan:
{ "id": "id_jadual_anda", "mapping": { "a": "teks biasa", "b": "#{pembolehubah}" }, "list_name": "NamaHelaian" }
Parameter:
- id — pengecam jadual*
- a, b, c, d — nama lajur
- list_name — nama helaian anda (cth., "Helaian2")
*Pastikan untuk menggantikan dengan ID jadual sebenar anda.
Contoh respons: {"number_row":8}
Jika permintaan berjaya dilaksanakan, respons akan merangkumi nombor baris, yang boleh anda simpan dan gunakan untuk operasi selanjutnya.
Melihat senarai rujukan
Mari tambah arahan tambahan pada bot yang membolehkan pengguna melihat senarai rujukan mereka.
Untuk mencari semua nilai yang ditentukan dalam lajur, gunakan fungsi findcell dengan parameter "find_all". Ini akan mencari semua kejadian nilai "find_all" dalam lajur "col" yang ditentukan dan mengembalikan senarai nilai unik daripada lajur "return" sebagai rentetan.
! URL Fungsi: https://store.salebot.pro/function/findcell pautan
! Parameter permintaan JSON:
{ "id": "id_jadual", "find_all": "nilai_carian", "list_name": "nama_helaian", "col": "nombor_lajur_untuk_dicari_dalam", "return": "nombor_lajur_untuk_mengembalikan_nilai_daripada", "find": "!" }

Dalam nilai yang disimpan, nyatakan:
senarai → Senarai
kuantiti → Kuantiti
Untuk pengguna, paparkan mesej:
"Anda telah merujuk #{spisok}, jumlah rujukan anda: #{quantity}"
Dalam messenger lain, melaksanakan sistem rujukan sedemikian adalah lebih mudah kerana data penjemput dihantar sebagai parameter tersembunyi semasa peralihan pautan, jadi pengguna baharu tidak perlu menghantar mesej seperti "Saya telah dijemput oleh nombor ini."