Реферальная система
Данная реферальная система адаптирована под мессенджер Телеграм
В разделе Шаблоны выбираем "Шаблон двухуровневой реферальной программы" и нажимаем "Установить".
После установки мы видим схему шаблона (Рисунок 1)

Для начала настроим шаблон. Заходим в настройки проекта в раздел константы проекта
таблица - id вашей таблицы. Шаблон берем отсюда (выделено жирным шрифтом)
bot - логин вашего бота телеграм
ур1 - количество баллов которое надо начислять за приглашенных 1-го уровня
ур2 - количество баллов которое надо начислять за приглашенных 2-го уровня
Далее, вам необходимо запустить реферальное дерево. Запустите бота и убедитесь, что вы записались в третью строку таблицы. Если все прошло успешно и настройки верны, то вы должны увидеть вот такую картину:
После этого бот пришлет вам вашу личную реферальную ссылку, которую вы можете передавать другим людям, а они в свою очередь, после регистрации получат свою личную, по которой вам будут начисляться баллы за их приглашенных людей.
Команда “Личный кабинет” работает из любого места воронки и показывает сколько есть рефералов 1-го уровня, сколько рефералов 2-го уровня и общее количество баллов
В шаблоне есть комментарии, обращайте внимание на них. Где можно что-то менять, а где нельзя. Так же убедитесь, что таблица открыта на полный доступ для бота.

Обязательно должен быть включен переключатель "отвечать один раз", чтобы исключить дубли и перепривязку рефералов
Параметры: {"id": "#{таблица}", "find": "#{ref1}", "col": 3, "return": 1, "list_name": "Рефералка"}
Сохраняемые значения: data -> ref2; status -> status
Здесь прои сходит Здесь происходит поиск по таблице 2 уровня пригласивших. Если человек находится, то его id запоминается в переменную ref2. Если нет, значит она будет просто пустая. Так же сохраняем результат поиска в переменную status, она нам понадобится дальше
Параметры: {"id": "#{таблица}", "mapping":{"a":"#{ref1}", "c": "#{client_id}"}, "list_name": "Рефералка"}
Сохраняемые значения: number_row -> row
Здесь происходит запись в таблицу id того КТО пригласил и id того КОГО пригласили. В этом же блоке сохраняем строку, в которую записался клиент
Параметры: {"id": "#{таблица}", "write":{"b#{row}": "#{ref2}", "d#{row}":"=СЧЁТЕСЛИ(A:A;C#{row})", "e#{row}": "=СЧЁТЕСЛИ(B:B;C#{row})", "f#{row}": "=D#{row}#{ур1}+E#{row}#{ур2}"}, "list_name": "Рефералка"}
Т.к. теперь мы знаем номер строки, в которой у нас клиент, мы можем дозаписать формулы подсчета количества рефералов и формулу подсчета баллов.
Параметры: {"message": "Ув едомление1", "client_id": "#{ref1}"}
Отправляем колбек на id того, кто нас пригласил. По нему сработает блок "Уведомление 1 уровень"

После этого блока пользователь отправляется на блок ниже, где получает благодарность и рекламную информацию.
По истечении 5 секунд, если в стартовом блоке status оказалось равной 1 (найден 2 уровень), пользователь перейдет в блок КОЛБЕК 2 УРОВЕНЬ.
Параметры: {"message": "Уведомление1", "clien{"message": "Реферал2", "client_id": "#{ref2}"}
Здесь нам как раз пригодится переменная status из зеленого блока. Если в ней 1 (был найден 2 уровень) то мы отправим колбек, который запустит блок "Уведомление 2 уровень"
Параметры: {"id": "#{таблица}", "read":{"d#{row}":"f#{row}"}, "list_name": "Рефералка"}
Сохраняемые значения: D#{row} -> рефы1; E#{row} -> рефы2; F#{row} -> баланс
Отправка уведомления тому кто нас пригласил. Текст в этом блоке может быть любой.
Переменные в этом блоке менять не стоит
Параметры: {"id": "#{таблица}", "read":{"d#{row}":"f#{row}"}, "list_name": "Рефералка"}
Сохраняемые значения: D#{row} -> рефы1; E#{row} -> рефы2; F#{row} -> баланс
Уведомление 2 уровню. Пример: Вася пригласил Петю, Петя пригласил нас. В этом блоке идет уведомление Васе как раз. Текст можно поставить любой.
Переменные в этом блоке менять не стоит
Параметры: {"id": "#{таблица}", "read":{"d#{row}":"f#{row}"}, "list_name": "Рефералка"}
Сохраняемые значения: D#{row} -> рефы1; E#{row} -> рефы2; F#{row} -> баланс
Личный кабинет, в котором бот считывает данные из таблицы и отображает количество рефералов 1-го и 2-го уровней + баланс баллов. Текст может быть любой.
Переменные в этом блоке менять не стоит