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:

  1. 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).
  2. Pangkalan data peserta, dilaksanakan melalui integrasi fungsi MaviBot dan Google Sheets, di mana maklumat tentang pengguna yang dijemput dan yang menjemput direkodkan.
  3. 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:

  1. penjanaan pautan rujukan (afiliasi); pautan
  2. menyemak sama ada pengguna baharu sudah berada dalam pangkalan data; pautan
  3. memberitahu pengguna yang menjemput tentang rujukan baharu; pautan
  4. merekodkan pengguna dalam pangkalan data; pautan
  5. 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:

  1. Klik dua kali pada kawasan kosong dalam kanvas pembina:

  1. 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:

  1. Gantikan kurungan "(nombor telefon anda yang dipautkan ke bot)" dengan nombor telefon yang sepadan;
  2. #{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:

Rajah 4. Paparan dalam WhatsApp

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)

Rajah 6. Mesej diisi dalam WhatsApp

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_key ialah 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."