1. Регистрация пользователя
2. Покупка через каталог без начисления бонусов
3. Блок на начисление бонусов по своей реферальной ссылке
4. Единоразовое спецпредложение за заказ по реферальной ссылке друга и закрытие доступа для его повторного использования
5. Последующее начисление бонусов рефереру за все покупки реферала
6. Начисление бонусов на первоначального реферера при покупке по другой реферальной ссылке
ПОДГОТОВКА ЛИЧНОГО КАБИНЕТА
1. Создаем страницу для регистрации пользователей в группу
Добавляем форму с любыми нужными вам полями, но обязательно должны быть:1. Поле для email
2. Cкрытое поле, которое задает название форме, например:
Имя переменной → formname
Значение → reg
2. Создаем страницу с каталогом товаров и корзиной
Добавим меню для навигации ME901, каталог ST305N и корзину ST100.Для ST305N будем использовать Collabza чуть позже.
Добавляем корзине ST100 любые нужные вам поля, но обязательно должно быть скрытое поле, которое задает название форме, например:
Имя переменной → formname
Значение → buy
3. Создаем страницу для бонусной системы
Добавляем 4 блока: TX01, TX01, ST305N и CL46. Позже настроим их с помощью Collabza. ST305N можно настроить в таком виде:4. Подключаем Webhook к Tilda
Заходим / регистрируемся в Make и создаём новый сценарий.Добавляем модуль Webhook:
Нажимаем на большой «+»
Через поиск находим модуль Webhook → Custom Webhook → Add (даём любое имя)
Копируем ссылку → нажимаем «ОК»
Добавляем интеграцию с Tilda:
Настройки сайта → Формы → Другое → Webhook:
WEBHOOK URL → ссылка, которую скопировали из Make
Передавать данные по товарам массивом → включаем
Название в списке → любое
5. Подключаем личный кабинет
Добавляем группу для личного кабинета:Настройки сайта → Личный кабинет → Управление пользователями.
Создаем группу с помощью кнопки в левом меню, даём любое название.
Подключаем доступные для группы страницы во вкладке «Страницы».
Добавляем личный кабинет для форм:
Настройки сайта → Формы → Другое → Личный кабинет → выбираем созданную группу.
6. Подключаем созданную форму регистрации к Webhook’у и личному кабинету
В подключенных сервисах должно быть так:Переходим на страницу с формой регистрации → настраиваем Контент созданной формы:
Прием данных из форм → выбираем подключения Webhook’а и личного кабинета.
Теперь, при отправке формы регистрации пользователь сразу будет попадать в нужную группу личного кабинете, а также, мы сможем настроить его попадание в Airtable.
7. Подключаем созданную корзину к Webhook’у
Переходим на страницу с корзиной → настраиваем Контент корзины:Прием данных из форм → выбираем подключения Webhook’а.
Добавляем соединение платежной системы.
8. Добавляем промокод
Он будет нужен для списания накопленных баллов.Настройки сайта → Платежные системы → Платежные сервисы → Промокоды → Добавить промокод:
Промокод → BONUS (если дадите другое название, то будьте внимательными на этапе создания формулы для столбца «Списать бонусы»)
Скидка → 1 (с помощью скрипта будет меняться на накопленные пользователем бонусы)
БОНУСНАЯ СИСТЕМА
Готовый пример базы данных можно найти тут: https://airtable.com/shrmOmJTvCmX2XDZX.Если создаете базу данных сами, то обращайте особенное внимание на выделенное красным цветом, так как это у вас будет отличаться.
В каждой таблице мы рекомендуем создать вид «Collabza» и настраивать интеграции именно на него (чтобы запретить ставить в нем ненужные фильтры)
БД «Пользователи» в Airtable
Email:Тип поля: Email
Имя → тип поля: Single line text
id:
Тип поля: Formula
Formula: RECORD_ID()
Реферальная ссылка:
Тип поля: Formula
Formula: "**Ваша реферальная ссылка:** <https://cuteanimals.tilda.ws/catalog?utm_source=" & RECORD_ID() & "&utm_medium=referral&utm_campaign=friends>"
Покупки:
Тип поля: Link to another record: Покупки
Покупки друзей:
Тип поля: Link to another record: Покупки
Бонусы начислены:
Тип поля: Rollup
Покупки друзей → Бонусы начислить → conditions: Оплата is Да
Formula → SUM(values)
Бонусы списаны:
Тип поля: Rollup
Покупки друзей → Бонусы списать → conditions: Оплата is Да
Formula → SUM(values)
Бонусы:
Тип поля: Formula
Formula: {Бонусы начислены}-{Бонусы списаны}
Бонусы вывод:
Тип поля: Formula
Formula: "**За все время накоплено:** "&{Бонусы начислены}&" руб.<p>**Сейчас доступно:** "&{Бонусы}&" руб."
Списать бонусы:
Тип поля: Formula;
Formula: '<script>\nfunction applyBonus() {\n $(".t-btn__bonus").remove();\n promo={promocode: "BONUS", discountsum: Math.min(window.tcart.amount - 1,' & {Бонусы} & ')};\n tcart__addPromocode(promo);\n} \n$(document).ready(function () {\n $(\'<div onclick="applyBonus();" class="t-btn t-btn__bonus" style="width: 100%;">Списать бонусы (доступно ' & {Бонусы} &')</div>\').insertBefore(".t706 .t-form__submit");\n});\n</script>'
id друга:
Тип поля: long text
Cпецпредложения:
Тип поля: Link to another record: Спецпредложения
Использовал:
Тип поля: Multiple select
Options: добавляем все id из Спецпредложения
Заполняем таблицу:
Регистрируем аккаунты в группу в Tilda и вносим их почты в столбец с email.
БД «Спецпредложения» в Airtable
Спецпредложение:Тип поля: Single line text
Пользователи:
Тип поля: Link to another record: Пользователи
Email:
Тип поля: Lookup: Email из Пользователи
Товары:
Тип поля: Link to another record: Товары
id:
Тип поля: Formula;
Formula: RECORD_ID()
Заголовок:
Тип поля: Single line text
Описание:
Тип поля: Long text
Кнопка:
Тип поля: Formula
Formula: “Перейти к спецпредложению”
Ссылка:
Тип поля: Formula
Formula: “https://cuteanimals.tilda.ws/catalog?utm_source="&RECORD_ID()&"&utm_medium=referral&utm_campaign=special”
Заголовок заглушка:
Тип поля: Long text
Описание заглушка:
Тип поля: Long text
Кнопка заглушка:
Тип поля: Formula
Formula: "Перейти в каталог"
Ссылка заглушка:
Тип поля: Formula
Formula: "https://cuteanimals.tilda.ws/catalog"
Заполняем таблицу:
Спецпредложение → Название спецпредложения
Товары → товары, на которые будет действовать акция
Заголовок и описание → соответствующие спецпредложению
Заголовок заглушка и описание заглушка → соответствующие спецпредложению
БД «Товары» в Airtable
Название:Тип поля: Single line text
Описание:
Тип поля: Long text
Фото:
Тип поля: Attachment
Стоимость:
Тип поля: Number
Спецпредложение:
Тип поля: Link to another record: Спецпредложения
Email по ссылке друга:
Тип поля: Lookup
Спецпредложение → Email → conditions: Спецпредложение is По ссылке друга
Стоимость по ссылке друга:
Тип поля: Formula
Formula: {Стоимость}/2
Покупки:
Тип поля: Link to another record: Покупки
БД «Покупки» в Airtable
order_id:Тип поля: Single line text
Оплата:
Тип поля: Single select → options: Да, Нет
Нужно самостоятельно настроить сценарий в Make, который при получении подтверждения оплаты от платежной системы будет менять значение на «Да».
Покупатель:
Тип поля: Link to another record: Пользователи
Имя (from Покупатель):
Тип поля: Lookup: Имя из Покупатель
Имя покупателя:
Тип поля: Formula
Formula: ARRAYJOIN({Имя (from Покупатель)})
Бонусы списать:
Тип поля: Number
Друг:
Тип поля: Link to another record: Пользователи
Email друга:
Тип поля: Lookup: Email из Друг
Бонусы начислить:
Тип поля: Number
Товар:
Тип поля: Link to another record: Товары
Дата создания:
Тип поля: Formula
Formula: DATETIME_FORMAT(SET_LOCALE(SET_TIMEZONE({Created time},'Europe/Moscow'), 'ru'), 'll')
Created time:
Тип поля: Created time: friendly
1. Создаём сценарий в Make для добавления новых пользователей в Airtable
Включаем RUN ONCE в сценарии с вебхуком, подключенным к Tilda, и заполняем созданную нами форму регистрации → в «пузырьке» возле вебхука смотрим информацию, которую получили.всё верно, то выполняем следующие шаги.
1. Добавляем router (находится в Tools)
2. Добавляем модуль для предотвращения дубля и устанавливаем фильтр:
+ Add another module → Airtable: Search records:
Создаём соединением и выбираем нужную таблицу
Formula → ‘lower(Email из Wenhook’а)’=lower({Email})
Жмем на связь между Поиск дублей и Router:
Label → Создание пользователей
Condition → formname из Wenhook’а equal to reg
3. Добавляем модуль для добавления пользователя в Airtable:
+ Add another module → Airtable: Upsert a record:
Record ID → id из модуля Поиск дублей
Email → Email из Wenhook’а
Имя → Name из Wenhook’а
Добавляем модуль Commit → Сохраняем сценарий → Нажимаем RUN ONCE и проверяем как идут данные.
2. Создаем интеграцию для отображения реферальной ссылки в личном кабинете
Мы уже добавили блок TX01 для страницы с бонусной системой на этапе подготовки. Теперь создадим для него интеграцию в Collabza.Нажимаем СОЗДАТЬ ИНТЕГРАЦИЮ в ЛК Collabza и заполняем форму:
Значение AirTable API key копируем со страницы https://airtable.com/account.
Значение AirTable base ID находим на странице https://airtable.com/api. Обратите внимание, что точка в конце к base ID не относится.
Название таблицы (листа) в Airtable → Пользователи
Название вида таблицы в Airtable → Collabza
Кому доступны данные → только авторизованные, которые есть в списке
Название поля в таблице для определения тех, кому доступны данные → Email, так как мы хотим, чтобы каждый пользователь видел только свою реферальную ссылку
Указываем название, чтобы ориентироваться в настроенных интеграциях
ID блока на Tilda копируем из нижней части раздела Настройки нашего блока TX01 на странице для бонусной системы
В качестве типа блока выбираем TX01: Текст"
ТЕКСТ → Реферальная ссылка (название поля, которое формулой создает ссылку)
Копируем сформированный скрипт → вставляем его в контент блока T123 → Опубликовываем страницу и проверяем.
3. Создаем интеграцию для страницы бонусной системы - блок ST305n
Нам нужно, чтобы конкретное спецпредложение показывалось только тем, кто содержится в столбце Пользователи, а тем, у кого нет доступа, показывалась заглушка, поэтому будем настраивать интеграцию с разделением по списку.Значения AirTable API key и AirTable base ID как и в прошлой интеграции
Название таблицы (листа) в Airtable → Спецпредложения
Название вида таблицы в Airtable → Collabza
Кому доступны данные → только авторизованные, разделение по списку;
Название поля в таблице для определения тех, кому доступны данные → Email, так как именно в этом столбце содержится email из столбца Пользователи
Даем любое понятное название интеграции.
ID блока на Tilda → block id блока для спецпредложений
Тип блока на Tilda → ST305N: Карточки продуктов с кнопками + Popup с подробной информацией
Для интеграции с разделение по списку нужно прописывать названия столбцов в Airtable в таком формате: Название столбца, доступного по email|Название столбца, содержащего информацию для тех, кто не входит в список email. Заполняем только четыре нужных поля:
Заголовок → Заголовок|Заголовок заглушка
Описание (кратко для карточек) → Описание|Описание заглушка
Название кнопки → Кнопка|Кнопка заглушка
Ссылка для кнопки и карточки товара → Ссылка|Ссылка заглушка
Копируем сформированный скрипт → вставляем его в контент блока T123 (размещенный под ST305N) → Опубликовываем страницу и проверяем.
Если доступа нет:
Если доступ есть:
3. Подготавливаем страницу с каталогом для Collabza
На этапе подготовки мы добавили меню для навигации, каталог и корзину. Теперь надо продублировать блок ST305N один раз — должно получиться 2 блока с карточками товаров друг за другом. Можно добавить в Контент старую цену, чтобы показать, что скидка есть.Далее добавляем мультилендинг: скрыть / показать блок по параметру в URL. Настраиваем его таким образом, чтобы первый каталог отображался, когда нет параметров, а второй, когда utm_source=recUHav9rUpUMAIN7. Это мы делаем для того, чтобы человек, который хочет использовать спецпредложение, видел только каталог с ценами по конкретному спецпредложению.
4. Создаем интеграцию для первого каталога
Этот каталог будет показывать всем авторизованным пользователям при переходе на страницу с каталогом не через спецпредложение.Значения AirTable API key и AirTable base ID как и в прошлой интеграции.
Название таблицы (листа) в Airtable → Товары
Название вида таблицы в Airtable → Collabza
Кому доступны данные → только авторизованным
Даем любое понятное название интеграции.
ID блока на Tilda → block id блока для спецпредложений
Тип блока на Tilda → ST305N: Карточки продуктов с кнопками + Popup с подробной информацией
Список изображений → столбец, содержащий фото
Заголовок → столбец, содержащий название товара
Описание (кратко для карточек) → столбец, содержащий краткое описание;
Стоимость услуги/товара → столбец, содержащий стоимость продукта
Копируем сформированный скрипт → вставляем его в контент блока T123 (размещенный под ST305N) → Опубликовываем страницу и проверяем.
5. Создаем интеграцию для второго каталога
Этот каталог будет показывать каталог со скидками только таким авторизованным пользователям, которые:1. Перешли по ссылке спецпредложения (с utm)
2. Есть в списке тех, кому доступно спецпредложение (столбец Email из Пользователи)
Если же на эту ссылку попал человек, которому недоступно данное предложение, то ему будет показываться каталог с обычными ценами, поэтому снова будем использовать интеграцию с разделением по списку.
Значения AirTable API key и AirTable base ID как и в прошлых интеграциях
Название таблицы (листа) в Airtable → Товары
Название вида таблицы в Airtable → Collabza
Кому доступны данные → только авторизованные, разделение по списку;
Название поля в таблице для определения тех, кому доступны данные → Email по ссылке друга, так как именно в этом столбце содержится email из столбца Спецпредложение, который определяет пользователей с доступом к акции
Даем любое понятное название интеграции.
ID блока на Tilda → block id блока для спецпредложений
Тип блока на Tilda → ST305N: Карточки продуктов с кнопками + Popup с подробной информацией
Список изображений → столбец, содержащий фото
Заголовок → столбец, содержащий название товара
Описание (кратко для карточек) → столбец, содержащий краткое описание
Стоимость услуги/товара → Стоимость по ссылке друга|Стоимость
Копируем сформированный скрипт → вставляем его в контент блока T123 (размещенный под ST305N) → Опубликовываем страницу и проверяем.
6. Создаем интеграцию для списания баллов в корзине
1. Добавляем блок T123 в самый низ страницы с каталогами2. Создаем новую интеграцию в Collabza
Значения AirTable API key и AirTable base ID как и в прошлых интеграциях.
Название таблицы (листа) в Airtable → Пользователи
Название вида таблицы в Airtable → Collabza
Кому доступны данные → только авторизованные, которые есть в списке
Название поля в таблице для определения тех, кому доступны данные → Email, так как мы хотим, чтобы каждый пользователь видел и мог списать только свои баллы
ID блока на Tilda → block id нижнего блока T123 на странице с каталогами
Тип блока на Tilda → T123: HTML-код
HTML-код → Списать бонусы (столбец со скриптом для списания бонусов)
Копируем сформированный скрипт → вставляем его в контент блока T123 (на который создавали интеграцию) → Опубликовываем страницу и проверяем.
7. Настраиваем поиск покупателя и товара в Make
1. Добавляем модуль для поиска покупателя и устанавливаем фильтрЖмем на Router → Airtable: Search records:
Выбираем соединением и выбираем нужную таблицу (Пользователи)
Formula → ‘lower(ma_email из Wenhook’а)’=lower({Email})
Жмем на связь между Поиск покупателя и Router:
Label → Создание покупки
Condition → formname из Wenhook’а equal to buy
2. Добавляем модуль для поиска товара и добавляем router
+ Add another module → Airtable: Search records:
Выбираем соединением и выбираем нужную таблицу (Товары)
Formula → ‘payment.products[ ]: name’={Название}
Добавляем router (находится в Tools) и соединяем с Поиск товара
7. Настраиваем создание покупки, если пользователь покупал через обычный каталог или перешел по своей реферальной ссылке
1. Добавляем модуль создания покупкиЖмем на Router → Airtable: Create a record:
Выбираем соединением и выбираем нужную таблицу (Покупки)
order_id → payment: orderid из Webhook’а
Оплата → Нет
Товар → ID из модуля Поиск товара
Покупатель → ID из модуля Поиск покупателя
Бонусы списать → payment: discount из Webhook’а
2. Добавляем фильтр
Нам нужно, чтобы бонусы начислялись только за покупки друзей, а не за покупки самого же пользователя, поэтому устанавливаем такой фильтр:
Жмем на связь между Создание покупки и Router:
Label → По своей ссылке или пусто
Condition:
ID из модуля Поиск покупателя equal to utm_source из Webhook’а
or
utm_source из Webhook’а equal to
3. Добавляем модуль Commit → Сохраняем сценарий → Нажимаем RUN ONCE и проверяем как идут данные.
8. Настраиваем создание покупки, если пользователь первый раз покупает по реферальной ссылке
1. Добавляем модуль поиска другаЖмем на Router → Airtable: Search records
Выбираем соединением и выбираем нужную таблицу (Пользователи)
Formula → ‘utm_source из Webhook’а’={id}
2. Добавляем фильтр
Нам нужно, чтобы на этот сценарий попадали те, кто впервые после перехода по реферальной ссылке совершают покупку.
Жмем на связь между Поиск друга и Router:
Label → Первый раз по ссылке друга
Condition:
id друга из модуля Поиск покупателя equal to
and
utm_source из Webhook’а not equal to
and
utm_source из Webhook’а not equal to ID из модуля Поиск покупателя
3. Добавляем модуль создания покупки
+ Add another module → Airtable: Create a record:
Выбираем соединением и выбираем нужную таблицу (Покупки)
order_id → payment: orderid из Webhook’а
Оплата → Нет
Бонусы начислить → round(payment.amount из Webhook’а / 10)
Товар → ID из модуля Поиск товара
Покупатель → ID из модуля Поиск покупателя
Друг → ID из модуля Поиск друга
Бонусы списать → payment: discount из Webhook’а
4. Добавляем модуль создания покупки
+ Add another module → Airtable: Update a record:
Выбираем соединением и выбираем нужную таблицу (Пользователи)
Record ID → ID из модуля Поиск покупателя
id друга → ID из модуля Поиск друга
Спецпредложения → deduplicate(add(ifempty(`Спецпредложения` из модуля Поиск покупателя; emptyarray); recUHav9rUpUMAIN7))
5. Добавляем модуль Commit → Сохраняем сценарий → Нажимаем RUN ONCE и проверяем как идут данные.
9. Настраиваем создание покупки, если пользователь уже имеет назначенного друга или если покупка по спецпредложению
1. Добавляем модуль создания покупкиЖмем на Router → Airtable: Create a record;
Выбираем соединением и выбираем нужную таблицу (Покупки)
order_id → payment: orderid из Webhook’а
Оплата → Нет
Бонусы начислить → round(payment.amount из Webhook’а / 10)
Товар → ID из модуля Поиск товара
Покупатель → ID из модуля Поиск покупателя
Друг → id друга из модуля Поиск покупателя
Бонусы списать → payment: discount из Webhook’а
2. Добавляем фильтр
Нам нужно, чтобы по этому сценарию шли только пользователи с назначенным другом ИЛИ те, кто покупают по спецпредложению.
Жмем на связь между Создание покупки и Router:
Label → По ссылке друга или спецпредложение
Condition:
ID из модуля Поиск покупателя equal to utm_source из Webhook’а
and
utm_source из Webhook’а not equal to
and
id друга из модуля Поиск покупателя not equal to
or
utm_campaign из Webhook’а equal to special
3. Добавляем модуль поиска спецпредложения
+ Add another module → Airtable: Search records:
Выбираем соединением и выбираем нужную таблицу (Спецпредложения)
Formula →’utm_source из Webhook’a’={id}
4. Настраиваем фильтр для поиска спецпредложения
Нам нужно, чтобы поиск спецпредложения производился только если utm, с которой произошла покупка, оказалась не частью реферальной ссылки, а частью ссылки с акцией.
Жмем на связь между Создание покупки и Поиск спецпредложения:
Label → Не друг
Condition:
utm_source из Webhook’а not equal to id друга из модуля Поиск покупателя
5. Добавляем модуль для удаления использованного спецпредложения у пользователя
+ Add another module → Airtable: Update a record:
Выбираем соединением и выбираем нужную таблицу (Пользователи)
Record ID → ID из модуля Поиск покупателя
Спецпредложения → remove(`Спецпредложения` из модуля Поиск покупателя; utm_source из Webhook’а)
Использовал → add(ifempty(`Использовал` из модуля Поиск покупателя; emptyarray) utm_source из Webhook’а)
6. Настраиваем фильтр для удаления спецпредложения
Жмем на связь между Поиск спецпредложения и Удаление спецпредложения:
Label → Спецпредложение
Condition:
ID из модуля Поиск спецпредложения equal to
7. Добавляем модуль Commit → Сохраняем сценарий → Нажимаем RUN ONCE и проверяем как идут данные.
10. Тестируем Make
Должен получиться вот такой сценарий, который:1. При регистрации через форму в Tilda добавляет пользователя в Airtable
2. Если пользователь совершает покупку через обычный каталог (при этом не переходил по ссылкам с utm), то создает покупку без начисления бонусов
3. Если пользователь перешел по своей реферальной ссылке и совершил покупку, то создает покупку без начисления бонусов
4. Если пользователь перешел по реферальной ссылке своего друга и совершил покупку, то создает покупку, добавляет id друга к покупателю и начисляет бонусы другу
5. Если пользователь перешел по реферальной ссылке другого человека (не друга) и совершил оплату, то создает покупку и начисляет бонусы другу, который его привел изначально
6. Если пользователь покупает просто через каталог, но уже совершал оплату по реферальной ссылке друга, то создает заказ и начисляет бонусы
7. Если пользователь покупает по спецпредложению, то создает покупку и закрывает доступ для повторного использования спецпредложения
11. Создаем интеграцию для вывода информации по бонусам на странице с бонусной системой
Аналогично тому как настраивали блок TX01 с реферальной ссылкой, только столбец не Реферальная ссылка, а Бонусы вывод.12. Создаем интеграцию с таблицей для вывода истории начисления баллов за приглашение друзей
1. Настраиваем контент таблицыШапка таблицы → Даем название трем столбцам таблицы через точку с запятой
Содержимое таблицы → Добавляем три любые записи через точку с запятой
Ширина колонок → 30%;40%;30%
2. Создаем новую интеграцию в Collabza
Значения AirTable API key и AirTable base ID как и в прошлых интеграциях
Название таблицы (листа) в Airtable → Покупки
Название вида таблицы в Airtable → Collabza
Кому доступны данные → только авторизованные, которые есть в списке
Название поля в таблице для определения тех, кому доступны данные → Email друга, так как мы хотим, чтобы каждый пользователь видел только те записи, которые относятся к приглашенным им друзьям
ID блока на Tilda → block id таблицы на странице с бонусной системой
Тип блока на Tilda → CL46: Таблица
Содержимое таблицы: Дата создания;Имя покупателя;Бонусы начислить
Копируем сформированный скрипт → вставляем его в контент блока T123 (на который создавали интеграцию) → Опубликовываем страницу и проверяем.
Страница с бонусной системой должна выглядеть так:
Добавляйтесь в чат сообщества https://t.me/collabza_chat, - там всегда рады помочь!