Реферальная система в боте

Для создания реферальной системы используйте параметр ссылки диплинка как идентификатор ссылки. Это нужно для определения, по ссылке какого именно пригласившего пользователя вошел приглашенный. Для примера мы взяли параметр 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.

В начало ↑