Referālā programma ir sistēma, kas atalgo klientus vai uzņēmuma partnerus, piedāvājot stimulus vai bonusus par jaunu dalībnieku piesaistīšanu.
No tehniskā viedokļa referālā programma ietver vairākas galvenās sastāvdaļas:
- Uzaicinājuma saite — unikāls identifikators, kas ļauj lietotājiem vai klientiem uzaicināt citus piedalīties programmā. Uzaicinātājs var kopīgot šo saiti, izmantojot dažādus kanālus (piemēram, šajā rakstā tiks apskatīta saišu ģenerēšana, izmantojot WhatsApp botu, bet referālās programmas saites var kopīgot, izmantojot jebkuru sev vēlamo ziņojumapmaiņas lietotni).
- Dalībnieku datubāze, kas tiek īstenota, integrējot MaviBot un Google Sheets funkcionalitāti, kurā tiek ierakstīta informācija gan par uzaicinātajiem, gan uzaicinošajiem lietotājiem.
- Referālu izsekošanas sistēma, kas uzrauga darbības, kas saistītas ar jaunu dalībnieku piesaistīšanu, izmantojot referālās saites. Sistēma glabā datus par visiem referāliem, ļaujot pārbaudīt, vai konkrētais referāls jau pastāv sistēmā kā iepriekš uzaicināts lietotājs.
Mēs stingri iesakām iepazīties ar sadaļām “Botu veidošanas pamati vietnē Mavibot.ai” ссылка un “Google Sheets” ссылка pirms tērzēšanas bota plūsmas izveides.
Referālā sistēma WhatsApp
Izveidojamā bota funkcionalitāte ietvers blokus, kas sastāv no šādām sastāvdaļām:
- referālās (partneru) saites ģenerēšana; ссылка
- pārbaude, vai jaunais lietotājs jau ir datubāzē; ссылка
- uzaicinošā lietotāja paziņošana par jaunu referālu; ссылка
- lietotāju ierakstīšana datubāzē; ссылка
- referālu saraksta pieprasīšana. ссылка
Referālās saites ģenerēšana
Izveidosim bloku ar iegultu saiti, ko bots nosūtīs lietotājam pēc komandas “link”. Lai to izdarītu, izveidojiet jaunu bloku plūsmā, izmantojot vienu no divām metodēm:
- Veiciet dubultklikšķi uz tukšas vietas veidotāja audeklā:

- Izmantojot pogu “Saglabāt” ekrāna apakšā un izvēloties bloka veidu:

Pēc tam bloka nosacījumā ievadiet vārdu “Link” un iestatiet atbilstības veidu uz “Ignorēt drukas kļūdas un neprecizitātes” (tas noder, ja lietotājs pieļauj drukas kļūdas vai citas ziņojuma kļūdas):

Lai identificētu, kurš ir uzaicinājis lietotāju, bots izveido saiti, izmantojot šādu veidni: https://wa.me/(your phone number linked to the bot)text=You%20were%20recommended%20by%20#{phone}%20😌Hello

Apskatīsim veidnes saiti tuvāk: https://wa.me/(your phone number linked to the bot)?text=You%20were%20recommended%20by%20#{phone}%20😌Hello, kur:
- Aizstājiet iekavas “(your phone number linked to the bot)” ar atbilstošo tālruņa numuru;
- #{phone} tiek automātiski aizstāts ar tā lietotāja tālruņa numuru, kurš pieprasīja savu partnera saiti.
Mēs nosūtām ģenerēto saiti nevis kā bloka tekstu, bet kā pielikumu — noklikšķināmu saiti ar paziņojumu (skat. 2. un 3. att.):
- izvēlieties ievietot pielikumu
- izvēlieties veidu — Link, un ielīmējiet to laukā “Pielikuma URL”:

Šajā gadījumā saite vizuāli izskatīsies saīsināta:

Pārbaudīsim saites funkcionalitāti, izmantojot funkciju “Testēt botu”.

Lūk, rezultāts: saite novirza lietotāju uz atbilstošo ziņojumapmaiņas lietotnes tērzēšanu ar jūsu tālruņa numuru:

Tādā veidā jūs esat veiksmīgi ģenerējis uzaicinājuma saiti, ko potenciālie lietotāji var izmantot, lai piekļūtu tērzēšanas botam. Turklāt, noklikšķinot uz šīs saites, lietotājs tiek novirzīts uz tērzēšanas logu ar jau aizpildītu ziņojumu. (Skat. 6. att.)

Lietotāja pārbaude
Funkciju un regulāro izteiksmju izmantošana blokā
Pārbaudes un datubāzē ierakstīšanas komanda darbosies tikai tad, ja bots lietotāja ziņojumā atradīs tālruņa numuru. Tāpēc ir nepieciešams saņemto frāzi sadalīt daļās.
Šim nolūkam tiek izmantota funkcija splitter().
Splitter() funkcija
splitter(str, s, n) - sadala virkni daļās. Funkcija atgriež elementu masīvu.
Parametri:
! str ****- sākotnējā virkne
! s ****- virknes atdalītājs
n - maksimālais elementu skaits
Piemērs
Virknes sadalīšanas funkcija:

Tālāk botam jāpārbauda, vai ciparu secība virknē patiešām ir tālruņa numurs. Lai to izdarītu, mēs izmantojam šādas regulārās izteiksmes:
- Vispārējs tālruņa numurs:
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$ -
Поменять русский номер! Tikai Krievijas tālruņa numurs:
^((\+7|7|8)+([0-9]){10})$

Lai iegūtu informāciju par darbu ar regulārajām izteiksmēm, lūdzu, skatiet rakstu “Regulārās izteiksmes”. ссылка
Pēc tam, kad bots ir pārbaudījis, ka ciparu secība patiešām ir tālruņa numurs, saglabājiet to no ziņojuma kā mainīgo (piemēram, #{reff}).
Lietotāja tālruņa numura pārbaude kā referāls datubāzē
Tagad ir jāpārbauda, vai tā lietotāja tālruņa numurs, kurš sekoja saitei, jau ir referāls (iepriekš uzaicināts un ierakstīts mūsu datubāzē). Lai to izdarītu, izveidojiet plūsmā bloku ar kolonnas meklēšanas funkciju.
Izmantojiet kolonnas meklēšanas funkciju, blokā noklikšķinot uz “API pieprasījums”, kur jāiestata šādas parametru vērtības:

! Funkcijas URL: https://store.salebot.pro/function/findcell ссылка
! JSON pieprasījuma parametri:
{ "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" }
Atbildes parametri:
"status": "1" — vērtība atrasta
"status": "0" — vērtība nav atrasta
"data" — atrastā vērtība
"cell_number" — atrastās šūnas atrašanās vieta
Meklēšana pēc kolonnas un teksta attēlošana no visas rindas
Atgriešanas parametrs jāiestata uz 0.
&#xNAN;{ "id": "your_table_id", "find": "text_to_search", "col": 2, "return": 0 }
Atbilde: {"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"}}
Atbildes sadalījums:
data — atbilde
data|0 — 1. šūna
data|1 — 2. šūna
data|2 — 3. šūna
data|3 — 4. šūna
cell_number|row — rinda
cell_number|col — kolonna
Lai uzzinātu vairāk par pieejamajām funkcijām darbam ar tabulām, skatiet rakstu “Google Sheets”. ссылка
Paziņojumu bloks
Lai paziņotu lietotājam, kurš kopīgoja referālo saiti, ka jauns klients ir veiksmīgi tai sekojis, mēs izveidosim īpašu bloku. Lai nosūtītu paziņojumu par jauna referāla izveidi, izmantojiet šādus pieprasījuma parametrus (tips: POST - JSON):

Pieprasījumi tiek veikti, izmantojot POST metodi uz URL: https://chatter.salebot.pro/api/{api_key}/{action} Kur:
-
api_keyir jūsu projekta API piekļuves atslēga, ko var iegūt projekta iestatījumos (skat. 11. att.).

Piekļuves atslēgu var iegūt, izmantojot mainīgo #{api_key}, kas glabā pašreizējo ģenerēto piekļuves marķieri. Neaizmirstiet ģenerēt marķieri pirms tā izmantošanas.
! Pieprasījuma URL: https://chatter.salebot.pro/api/#{api_key}/whatsapp_message ссылка

Plašāku informāciju par API pieprasījuma funkcijām varat atrast šeit. ссылка
Uzaicinātā un uzaicinošā lietotāja pievienošana datubāzei
Lai to izdarītu, mēs izmantosim rindu ierakstīšanu noteiktās kolonnās, kas tiek veikta, izmantojot kartēšanas funkciju.
Tabulā jābūt aizpildītai galvenei (vismaz vienai šūnai pirmajā rindā).
! Funkcijas URL https://store.salebot.pro/function/gsheets ссылка
! JSON pieprasījuma parametri:
{ "id": "your_table_id", "mapping": { "a": "#{variable}", "b": "#{another_variable}", "d": "plain text" } }
Ja vēlaties ierakstīt rindas nevis pirmajā lapā, pievienojiet pieprasījumam parametru list_name:
{ "id": "your_table_id", "mapping": { "a": "plain text", "b": "#{variable}" }, "list_name": "SheetName" }
Parametri:
- id — tabulas identifikators*
- a, b, c, d — kolonnu nosaukumi
- list_name — jūsu lapas nosaukums (piem., "Sheet2")
*Pārliecinieties, ka aizstājat ar savu faktisko tabulas ID.
Atbildes piemērs: {"number_row":8}
Ja pieprasījums tiek izpildīts veiksmīgi, atbildē būs iekļauts rindas numurs, kuru varat saglabāt un izmantot turpmākajām darbībām.
Referālu saraksta skatīšana
Pievienosim botam papildu komandu, kas ļauj lietotājiem skatīt savu referālu sarakstu.
Lai atrastu visas norādītās vērtības kolonnā, izmantojiet funkciju findcell ar parametru "find_all". Tā atradīs visas "find_all" vērtības norādītajā "col" kolonnā un atgriezīs unikālo vērtību sarakstu no "return" kolonnas kā virkni.
! Funkcijas URL: https://store.salebot.pro/function/findcell ссылка
! JSON pieprasījuma parametri:
{ "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": "!" }

Saglabātajās vērtībās norādiet:
list → Saraksts
quantity → Daudzums
Lietotājam parādiet ziņojumu:
"Jūs esat uzaicinājis #{spisok}, jūsu kopējais referālu skaits: #{quantity}"
Citos ziņojumapmaiņas lietotnēs šādas referālās sistēmas ieviešana ir vēl vienkāršāka, jo uzaicinātāja dati tiek nodoti kā slēpts parametrs saites pārejas laikā, tāpēc jaunajam lietotājam nav jāsūta ziņojums, piemēram, “Mani uzaicināja šis numurs.”