Рефералдық бағдарлама — бұл жаңа қатысушыларды тарту үшін клиенттерге немесе серіктестерге ынталандыру немесе бонустар ұсынатын жүйе.
Техникалық тұрғыдан алғанда, рефералдық бағдарлама бірнеше негізгі компоненттерді қамтиды:
- Шақыру сілтемесі — пайдаланушыларға немесе клиенттерге бағдарламаға басқаларды шақыруға мүмкіндік беретін бірегей идентификатор. Шақырушы бұл сілтемені әртүрлі арналар арқылы бөлісе алады (мысалы, бұл мақала WhatsApp боты арқылы сілтемелерді генерациялауды қарастырады, бірақ рефералдық бағдарлама сілтемелерін кез келген мессенджер арқылы бөлісуге болады).
- Қатысушылар базасы, MaviBot және Google Sheets функционалын біріктіру арқылы жүзеге асырылады, мұнда шақырылған және шақырушы пайдаланушылар туралы ақпарат жазылады.
- Рефералдық бақылау жүйесі, рефералдық сілтемелер арқылы жаңа қатысушыларды тартуға байланысты әрекеттерді бақылайды. Жүйе барлық рефералдар туралы деректерді сақтайды, бұл берілген рефералдың жүйеде бұрын шақырылған пайдаланушы ретінде бар-жоғын тексеруге мүмкіндік береді.
Чат-бот ағынын жасамас бұрын "Mavibot.ai-де бот құру негіздері" сілтеме және "Google Sheets" сілтеме бөлімдерін қарап шығуды ұсынамыз.
WhatsApp-тағы рефералдық жүйе
Жасалатын боттың функционалы келесі компоненттерден тұратын блоктарды қамтиды:
- рефералдық (серіктестік) сілтемені генерациялау; сілтеме
- жаңа пайдаланушының базада бар-жоғын тексеру; сілтеме
- шақырушы пайдаланушыға жаңа реферал туралы хабарлау; сілтеме
- пайдаланушыларды базаға тіркеу; сілтеме
- рефералдар тізімін сұрау. сілтеме
Рефералдық сілтемені генерациялау
Боттың "сілтеме" командасы бойынша пайдаланушыға жіберетін кірістірілген сілтемесі бар блок жасайық. Ол үшін ағында екі әдістің бірін қолданып жаңа блок жасаңыз:
- Құрастырушы кенепіндегі бос аймақты екі рет басыңыз:

- Экранның төменгі жағындағы "Сақтау" түймесін пайдаланып, блок түрін таңдау арқылы:

Осыдан кейін блоктың шартына "Сілтеме" сөзін енгізіп, сәйкестік түрін "Қателер мен дәлсіздіктерді елемеу" деп орнатыңыз (бұл пайдаланушының қателері немесе хабарламадағы басқа қателер жағдайында пайдалы):

Пайдаланушыны кім шақырғанын анықтау үшін бот келесі үлгі бойынша сілтеме жасайды: https://wa.me/(your ботқа байланыстырылған телефон нөмірі)?text=Сізді #{phone} ұсынды 😌Сәлем

Үлгі сілтемені толығырақ қарастырайық: https://wa.me/(your ботқа байланыстырылған телефон нөмірі)?text=Сізді #{phone} ұсынды 😌Сәлем, мұнда:
- "(ботқа байланыстырылған телефон нөміріңіз)" жақшаларын сәйкес телефон нөмірімен ауыстырыңыз;
- #{phone} серіктес сілтемесін сұраған пайдаланушының телефон нөмірімен автоматты түрде ауыстырылады.
Генерацияланған сілтемені блок мәтіні ретінде емес, тіркеме ретінде жібереміз — хабарландыруы бар басылатын сілтеме (2-сурет және 3-суретті қараңыз):
- тіркемені енгізуді таңдаңыз
- түрін таңдаңыз — Сілтеме және оны 'Тіркеме URL' өрісіне қойыңыз:

Бұл жағдайда сілтеме визуалды түрде қысқартылған болып көрінеді:

"Ботты тексеру" мүмкіндігін пайдаланып сілтеме функционалын тексеріп көрейік.

Міне, нәтиже: сілтеме пайдаланушыны сіздің телефон нөміріңізбен сәйкес мессенджер чатына бағыттайды:

Осылайша, сіз әлеуетті пайдаланушылар чат-ботқа кіру үшін пайдалана алатын шақыру сілтемесін сәтті жасадыңыз. Сонымен қатар, бұл сілтемені басқан кезде пайдаланушы алдын ала толтырылған хабарламасы бар чат терезесіне қайта бағытталады. (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})$

Тұрақты өрнектермен жұмыс істеу туралы ақпаратты "Тұрақты өрнектер" мақаласынан таба аласыз. сілтеме
Бот цифрлар тізбегінің шынымен телефон нөмірі екенін растағаннан кейін, оны хабарламадан айнымалы ретінде сақтаңыз (мысалы, #{reff}).
Пайдаланушының телефон нөмірін дерекқордағы реферал ретінде тексеру
Енді сілтеме бойынша өткен пайдаланушының телефон нөмірінің реферал (бұрын біреу шақырған және біздің дерекқорға жазылған) екенін тексеру қажет. Ол үшін ағында баған бойынша іздеу функциясы бар блок жасаңыз.
Блоктағы "API сұрауы" түймесін басу арқылы баған бойынша іздеу функциясын пайдаланыңыз, мұнда келесі параметр мәндерін орнату қажет:

! Функция 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" — табылған ұяшықтың орны
Баған бойынша іздеу және бүкіл жолдан мәтінді көрсету
Қайтару параметрі 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": "жай мәтін" } }
Егер жолдарды бірінші параққа емес жазғыңыз келсе, сұрауға list_name параметрін қосыңыз:
{ "id": "your_table_id", "mapping": { "a": "жай мәтін", "b": "#{variable}" }, "list_name": "SheetName" }
Параметрлер:
- id — кесте идентификаторы*
- a, b, c, d — баған атаулары
- list_name — парақ атауы (мысалы, "Sheet2")
*Нақты кесте идентификаторыңызбен ауыстыруды ұмытпаңыз.
Жауап мысалы: {"number_row":8}
Егер сұрау сәтті орындалса, жауап жол нөмірін қамтиды, оны сақтап, әрі қарайғы операциялар үшін пайдалануға болады.
Рефералдар тізімін көру
Ботқа пайдаланушыларға өз рефералдарының тізімін көруге мүмкіндік беретін қосымша команда қосамыз.
Бағандағы барлық көрсетілген мәндерді табу үшін "find_all" параметрі бар findcell функциясын пайдаланыңыз. Бұл көрсетілген "col" бағанындағы "find_all" мәнінің барлық кездесулерін табады және "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 → Тізім
quantity → Саны
Пайдаланушыға келесі хабарламаны көрсетіңіз:
"Сіз #{spisok} шақырдыңыз, жалпы рефералдарыңыз: #{quantity}"
Басқа мессенджерлерде мұндай рефералдық жүйені енгізу оңайырақ, себебі шақырушының деректері сілтеме бойынша өту кезінде жасырын параметр ретінде беріледі, сондықтан жаңа пайдаланушыға "Мені осы нөмір шақырды" деген хабарлама жіберудің қажеті жоқ.


