Передача UTM - меток при подписке Senler в Автопилот

Сегодня мы научимся передавать данные при подписке на подписной Senler в Автопилот и Google Sheets. Урок бы сделан в Клубе, но добрый Андрей решил выложить решение для всех.

ПРЕДУПРЕЖДЕНИЕ! У Google-таблиц есть свои ограничения, по-моему 100 запросов за 100 секунд, поэтому есть огромный риск, что при большом наплыве данных они либо не запишутся, либо будут записаны некорректно. И ограничения тут не со стороны Автопилота, поэтому логируйте данные, как я показал в видео.

Содержание урока

Подготовка таблицы

  1. Создаём новую таблицу. Ссылка для быстрого создания таблицы

Чтобы скрипт знал, куда записывать данные, нам надо сообщить ему ID таблицы и название листа в этой таблице. Их мы будем указывать в Автопилоте.

Копируем из адресной строки браузера ID нашей таблицы. В примере ниже он выделен жирным шрифтом:

https://docs.google.com/spreadsheets/d/1xLd79xX6_4IRpphB0a1EH3OSGOlxngfhB8MEUksOe9k/edit#gid=0

В примере ID таблицы:

1xLd79xX6_4IRpphB0a1EH3OSGOlxngfhB8MEUksOe9k

Название листа и оформление таблицы оставляю на ваш вкус.

Развертывание скрипта

Открываем сайт https://script.google.com/ и выбираем «Создать проект» — откроется редактор скриптов.

Очищаем поле для кода. Вставляем в него готовый скрипт. Пример скрипта был по этой ссылке.

Сохраняем скрипт через меню Файл → Сохранить, либо комбинацией клавиш Ctrl + S.

Разворачиваем скрипт, как показано выше. Сохраняем URL на который будем отсылать запросы. Его мы будем использовать в Автопилоте в действии «Отправить GET/POST запрос».

Пример ссылки
Пример ссылки
Важно! После каждого изменения скрипта надо сохранять, а также разворачивать скрипт заново и выбирать версию «Новый». Без развёртывания все изменения скрипта недоступны при вызове Автопилотом
ПРЕДУПРЕЖДЕНИЕ! У Google-таблиц есть свои ограничения, по-моему 100 запросов за 100 секунд, поэтому есть огромный риск, что при большом наплыве данных они либо не запишутся, либо будут записаны некорректно. И ограничения тут не со стороны Автопилота, поэтому логируйте данные, как я показал в видео, либо пытайтесь настроить таймерами, но это дополнительные мили и нет 100% гарантии, что все сработает. Мы вас предупредили.

Интеграция с Senler

Ну там просто. Настраиваете вебхук по этой инструкции, создаете группу подписки и приступаете к настройке. Все получилось? Отлично, идем дальше.

Краткая инструкция по передаче меток из Senler в Автопилот

Видеодемонстрация простой передачи метки и работа с компоновщиком

Компоновщик меток находится вот здесь.

Настройка команды в Автопилоте

Важно! Показан метод работы с одной группы подписчиков с ограничением запуска команды один раз
Пример команды с записью в таблицы

Событие:

1) Чтобы реагировать на подписку добавляем событие «Подписался на группу Senler» (указать конкретную группу подписки). Например, у нас группа подписки номером 2817780

Пример события для подписки на группу senler
Пример события для подписки на группу senler

2) Опционально: для того, чтобы подписаться можно было только один раз добавляем условие «Выполнена команда»0 ровно 0 раз.

Условие для запуска команды 1 раз
Условие для запуска команды 1 раз

Если вам нужно будет отменить запуск команды, то воспользуйтесь этой командой и отдельным действием.

Действия:

1) Чтобы обновить / записать метки добавляем действие «Обновить профиль Автопилота» и в расширенных параметрах устанавливаем нужный переключатель.

Если кликнуть на ссылку «Раскрыть расширенные параметры»,

Обновление профиля Автопилота
Обновление профиля Автопилота

Варианты перезаписи параметров (переключатель):

  • Подписчику не будут сохранены (только переданы дальше) метки: — означает, что в профиле подписчика метки сохранятся не будут. Только будут обработаны для последующих действий.
  • Подписчику будут единоразово присвоены метки: — означает, что в профиле подписчика метки присвоятся один раз. И при последующих сохранениях новых меток, первые не будут перезаписаны. На данный момент — это значение по умолчанию.
  • Подписчику будут обновлены метки: — означает, что в профиле подписчика будут принудительно обновлены метки.

Ниже находятся поля для UTM-меток, которые используются для выделения источников трафика: Значения представлены переменными:
%utm_source%, %utm_medium%, %utm_campaign%, %utm_content%, %utm_term%.

2) Для того, чтобы передать ID таблицы заводим временную переменную %documentid%с идентификатором таблицы. Например:

1xLd79xX6_4IRpphB0a1EH3OSGOlxngfhB8MEUksOe9k
ID таблицы
ID таблицы

3) Для того, чтобы передать название заводим временную переменную %sheetname%с названием листа. Например:

Октябрь
Название листа
Название листа

4) Для того, чтобы передать данные заводим временную переменную %data%с нужными данными, разделенными ~~. Например, имя, фамилия, VK ID и т.д.:

%first_name%~~%last_name%~~%vk_id%~~https://vk.com/id%vk_id%~~=HYPERLINK("https://vk.com/id%vk_id%";"%first_name% %last_name%")~~utm_medium:%utm_medium%
Пример записи данных
Пример записи данных

Если вы хотите добавить кликабельную ссылку на пользователя, то вот пример:

%first_name%~~%last_name%~~%vk_id%~~https://vk.com/id%vk_id%~~=HYPERLINK("https://vk.com/id%vk_id%";"%first_name% %last_name%")

5) Чтобы попытаться обойти ограничения Гугла, действием «Отменить запущенный таймер» с названием:

Сенлер %subscription_id%

Перезапуск таймера (+1 миля к команде Автопилота) позволяет избежать ситуации когда пользователь что-то сделает и будет несколько таймеров, как показывано на видео.

Отмена таймера
Отмена таймера

6) Формируем задержку в переменной %sec% с помощью функции {rand_range} со значением:

{rand_range}10-600{/rand_range}

В примере: берем случайное значение от 10 до 600. Свои значения подбирайте самостоятельно. Промежуток указывается в секундах.

Случайная задержка
Случайная задержка

7) Опционально: после установки значения в %sec% можете выводить отладочное сообщение себе как админу, действием «Отправить сообщение в VK» с переключателем сотруднику (добавить себя) и текстом:

Клиент: %vk_link%
Секунды: %sec%
Отладочное сообщение
Отладочное сообщение

8) Чтобы передать в таймер задержку, переключаем действием: «Запустить таймер» (+1 миля к команде Автопилота) в универсальный режим (человечек справа) с названием:

Сенлер %subscription_id%

переключателем сразу и %sec% секунд.

Таймер со случайной задержкой
Таймер со случайной задержкой

9) Для отправки данных в таблицу добавляем действие «Отправить GET/POST запрос» на адрес скрипта (адрес у вас будет свой) и параметрами (в примере я их передаю переменными):

Пример запроса
Пример запроса

Параметры запроса:

documentid - id таблицы (копируется из адресной строки таблицы как на скриншоте выше)

sheetname - название листа (По умолчанию «Лист1»)

data - данные, которые мы будем записывать, разделенные двойным знаком тильды ~~

mode - режим запроса: new, edit, delete

Если не передан, то по умолчанию NEW.

Режимы запроса mode:

new - с новой строки

edit - редактирование

delete - удаление ячейки

search - поиск текста

range - ячейка, с которой мы будем записывать. Например, a3. Используется для режимов edit и delete

deleteEntireRow (число) - 1 - удаление всей строки и 0 - удаление конкретной ячейки. (используется вместе с range). Используется для режима delete

editRow (число) - 0 - перезапись всей строки (начиная с range ) и 1 - редактирование конкретной ячейки. (используется вместе с range). Используется для режима edit

Важно! Если вы указываете editRow = 1 и в data несколько значений

%first_name%~~%last_name%~~%vk_id%~~https://vk.com/id%vk_id%

то скрипт запишет в ячейку только первое значение, т.е.

%first_name%

игнорируя остальные.

FindRow (число) - 0 - вернет адрес всей строки в которой найден искомый текст (указанный в search_text ) и 1 - вернет адрес конкретной ячейки в которой найден искомый текст (указанный в search_text). Используется для режима search

Важно! Если найденных строк будет много, то скрипт вернет только первую найденную)

Cell(число) - 0 - вернет адрес всей строки в которой найден искомый текст (указанный в search_text ) и 1 - вернет адрес конкретной ячейки в которой найден искомый текст (указанный в search_text). Используется для режима search

Для получения ответа от скрипта можно себе вывести переменную %response%, которая будет содержать в себе эти данные.
Я очень рекомендую выводить себе, как сотруднику %response%, каждый раз, когда идет работа с таблицей.

Пример %response%:

{"status":"success","message":"Данные успешно записаны в лист Январь 
документа с ID 
1b7xcio6_TgpQ7VKjpoNdnXW613lwizDmCZkJH0pDDws","cell":"A6","data":["Андрей","Горячих","408053834","https://vk.com/id408053834"]}

Мы здесь видим status - success, что данные записаны корректно в ячейку A6. И да, я поправил скрипт, теперь он возвращает номер ячейки. Можно сохранять его в поле профиля игрока и использовать в других командах. Пример %response% сразу после отправки запроса

#ответ от гугла
Статус: %response.status%
Номер строки/ячейки: %response.cell%
Ссылка на таблицу: https://docs.google.com/spreadsheets/d/%documentid%/edit#gid=0

Все!
Хотя нет, если вы хотите больше мудрости от меня, то можете вступить в мой клуб.

Творческих взлётов и успешного внедрения.

Вернуться к списку инструкций
947 views·7 shares