Реферальная система в боте
Для создания реферальной системы используйте параметр ссылки диплинка как идентификатор ссылки. Это нужно для определения, по ссылке какого именно пригласившего пользователя вошел приглашенный. Для примера мы взяли параметр this_user.platform_id (id на платформе приглашающего пользователя в боте).
1. Настройте Диплинк с регулярным выражением, которое будет ловить любой ввод. Для этого в Значении добавьте:
.*
Когда приглашенный пользователь будет заходить по ссылке из Диплинка, то параметр с его ссылки при входе в бот будет записываться в переменную refSystem.
Таким образом всегда по переменной можно определить, по ссылке какого пользователя вошел приглашенный пользователь.
После создания события обязательно сохраните изменения кнопкой Сохранить.
Из Настроек перейдите в редактор бота и оформите Стартовый экран, куда попадет пользователь по реферальной ссылке.
2. Первым компонентом поставьте проверку переменной ban, чтобы один пользователь не смог воспользоваться реферальной ссылкой больше одного раза.
Если у пользователя уже есть эта переменная, значит, что он уже был в боте и он попадет на экран для тех, кто зашел в бота повторно.
3. Ниже добавьте Развилку, в которой будет проверяться переменная refLink в Имени переменной, откуда развилка возьмет значение.
Добавьте одну Цель в Развилке, значение оставьте пустым и добавьте переход на экран «Сообщение после того, как получил ссылку».
4. В переменную refSystemFirst впишите значение {{refSystem}}. Далее добавьте переменную refSystemFirst в Развилку — в поле Имя переменной, откуда развилка возьмет значение. Через Цель по умолчанию Развилка будет отправлять пользователя на экран «Создание реферальной ссылки».
Также в развилке добавьте Цель без значения, которая будет переводить на экран «Отправка внешнего события по рефералке».
Готовый Стартовый экран будет выглядеть так:
5. Оформите экран «Создание реферальной ссылки».
6. Напишите пользователю о том, что сейчас бот пришлет ему ссылку, затем сформируйте ссылку отдельно для каждой платформы.
Начало ссылки скопируйте из настроек Диплинка:
В конце ссылки добавьте ID пользователя, который в данный момент идет по сценарию бота:
{{this_user.platform_id}}
Для Телеграм ссылка будет выглядеть так:
https://t.me/aldkfgj_bot?start={{this_user.platform_id}}
7. Запишите её в Значение переменной, из платформ оставьте только Телеграм.
По такому принципу вы можете добавить Запись переменной и ссылки для других платформ на тот же самый экран.
8. Затем выведите переменную в текст и добавьте такое сообщение:
Ваша ссылка {{refLink}}
9. Добавьте Перемотку на экран «Сообщение после того, как пользователь получил ссылку». Там может начинаться основной сценарий бота.
Все вместе выглядит так:
Вы оформили создание реферальной ссылки, теперь оформите отправку Внешнего события по рефералке для пользователя, по ссылке которого прошли в бота.
10. Вернитесь в Настройки и создайте Внешнее событие
После сохранения появится ссылка, которая будет использоваться далее в URL запроса.
11. В редакторе ботов на новом экране, который в этом примере называется «Отправка внешнего события по рефералке» присвойте пользователю переменную ban со значением 1, чтобы не допустить повторного использования реферальной ссылки.
12. Далее отправьте данные пригласившему с помощью POST запроса.
Тело запроса:
{ "platform": "any", "users": [ "{{refSystemFirst}}" ], "data": { "text": "{{this_user.platform_id}}"} }
Для URL запроса используем ссылку из настроек Внешнего события, которое настроили ранее.
13. Отправьте пользователя на экран «Создание реферальной ссылки».
В целом, оформленный только что экран будет таким:
Создайте экран, который придет пригласившему, когда сработает Внешнее событие. Назовите этот экран «РЕФ Сообщение пригласившему», если хотите повторить описываемый пример.
14. Для начала создайте пустую переменную summRefUser.
15. Следующим шагом прибавляйте по одному зашедшему юзеру в значение переменной с помощью типа данных Увеличить число на
16. Создайте сообщение, в котором будет выводиться количество приглашенных пользователей и кто сейчас зашел по реферальной ссылке. Для этого запишите такой текст в сообщение:
По вашей ссылке вошел пользователь {{last_request.text}} По вашей ссылке пришло {{summRefUser}} пользователей.
Полностью оформленный экран будет таким:
Теперь пользователь который впервые прошел по ссылке пригласившего пользователя, будет учитываться в переменной summRefUser пригласившего, и в свою очередь тоже получит свою реферальную ссылку, по которой сможет приглашать других пользователей. Эти пользователи будут учитываться уже в его переменной summRefUser.