Автоматическая передача регистраций из GetCourse в Google-таблицы через скрипт
Иногда требуется регистрации в геткурс передавать другим сотрудникам - маркетологам или таргетологам для дальнейшей работы с ними.
Но 100 раз на день делать выгрузку из геткурса в эксель - мягко говоря не очень-то и удобно тех.специалисту геткурс.
Давать доступы другим сотрудникам к платформе - тоже не выход.
И возникает необходимость автоматической выгрузки регистраций из GetCourse в Google-таблицы.
Есть более удобное решение — Google-скрипты! 💡 Они позволяют автоматизировать процесс, записывать данные в любой лист, а если структура таблицы изменится, достаточно просто обновить поля в запросе.
Теперь давай разберёмся, как это настроить. 🔧 Мы не будем глубоко погружаться в код, а рассмотрим базовый вариант — как передавать данные о регистрациях в таблицу 📋. Это избавит тебя от постоянных ручных выгрузок и ускорит работу. 🚀
🚀 Создание скрипта: первый шаг к автоматизации
Для передачи данных из GetCourse в Google-таблицы нам понадобится Google Apps Script. Если у тебя есть аккаунт в Google (а он точно есть 😏), можешь сразу переходить по ссылке script.google.com
Новый проект открылся, можно его как-то назвать, а можно оставить как есть.
Переходим в раздел Код.gs, в правой части стираем то, что там есть.
Дальше нужно просто скопировать код, который я даю ниже и вставить его вместо функции, которую мы стерли.
/** * Добавление строки в Гугл-таблицу.
*
* Скрипт вызывается GET или POST запросом с параметрами:
* SSID: идентификатор таблицы
* SHEET: имя или индекс листа, по умолчанию лист с индексом 0
* DATA: набор данных, разделенных запятой
*
* Больше скриптов для Геткурса здесь: https://t.me/pro_getcourse
*/
function doGet(request){
return doRequest(request)
}
function doPost(request){
return doRequest(request)
}
function doRequest(request) {
try {
const sheet = findSheet(request)
const DATA = request.parameter['DATA']
if( !DATA ) throw {code: 'DATA_NOT_DEFINED', message: 'No DATA'}
const data = [...DATA.matchAll(/(?:"(.*?)"|([^,]*))(?:,?|$)/g)]
.filter(m => m[0])
.map(m => (m[1] ?? m[2] ?? '').trim())
const lock = LockService.getScriptLock()
lock.waitLock(60000)
sheet.appendRow(data)
lock.releaseLock()
return sendResult()
} catch ( error ) {
console.log(error)
return sendError(error)
}
}
function findSheet(request) {
const SSID = request.parameter['SSID']
if( !SSID ) throw {code: 'SSID_NOT_DEFINED', message: 'SSID is not defined'}
const SHEET = request.parameter['SHEET'] || '0'
if( !SHEET ) throw {code: 'SHEET_NOT_DEFINED', message: 'SHEET is not defined'}
let ss
try {
ss = SpreadsheetApp.openById(SSID)
if( !ss ) throw ''
} catch ( e ) {
console.log(e)
throw {code: 'SSID_NOT_FOUND', message: `SpreadSheet is not found: ${SSID}`}
}
let sheet = ss.getSheetByName(SHEET) ?? ss.getSheets()?.[parseInt(SHEET)]
if( !sheet ) throw {code: 'SHEET_NOT_FOUND', message: `Sheet is not found: ${SHEET}`}
return sheet
}
function sendResult(res) {
return json({success: 1, data: res})
}
function sendError(error) {
return json({success: 0, error})
}
function json(res) {
return ContentService.createTextOutput(JSON.stringify(res)).setMimeType(ContentService.MimeType.JSON)
}Далее сохраняем его по кнопке сохранения - выделила красным.
🚀 Запускаем скрипт в работу
Теперь скрипт нужно развернуть, чтобы он начал работать. Это похоже на включение программы — пока мы его не активируем, он просто «лежит» в редакторе и ничего не делает.
При развертывании скрипт запускается в специальной среде, где он сможет принимать и обрабатывать запросы. После этого GetCourse сможет передавать ему данные, а он — записывать их в таблицу.
🔥 Важные моменты, которые нужно учесть!
📌 Описание можно оставить пустым. Оно нужно только, если в будущем будешь вносить изменения в скрипт и захочешь записывать, что именно поменялось. Но это не обязательно, так что пока просто пропускаем.
📌 Запускай веб-приложение от своего имени. Когда GetCourse будет отправлять данные, он сам по себе не авторизован. А вот если скрипт выполняется от твоего аккаунта, запрос пройдёт без проблем.
📌 Доступ должен быть открыт для всех. По той же причине — скрипт должен работать с внешними запросами, иначе GetCourse не сможет к нему обратиться.
💡 Не переживай, это безопасно! Доступ к скрипту получит только тот, у кого есть ссылка. Посторонние люди её не знают, так что кроме тебя и GetCourse никто воспользоваться этим не сможет. 🚀
Теперь просто нажимаем «Начать развертывание»!
Если ты делаешь это в первый раз, Google попросит предоставить доступ. Это нужно, чтобы скрипт мог добавлять данные в таблицу от твоего имени — ведь мы указали, что он будет работать именно от твоего аккаунта.
Просто подтверждаем разрешения нажав Предоставить доступ, затем выбираем наш аккаунт.
Потом вылетит предупреждение - но не пугаемся! Мы доверяем сами себе и нажимаем Advanced
После жмем Go to (название вашего проекта)
Тут снова не стоит заморачиваться — ты просто даёшь разрешение своему же скрипту, а не какому-то стороннему приложению. Всё остаётся внутри твоего аккаунта 😉 В общем, все разрешаем - Allow.
После что-то появится на экране - здесь можно просто закрыть это окно. Это глюк.
Ссылку URL обязательно скопировать! Например в текстовый файл, мы будем добавлять к ней параметры.
https://script.google.com/macros/s/AKycbprtCFHgi5wkTWLTNL7slsLhWYiaOAw54bdANtcW_KdHSivXSDjkPOjNrx_BU8Eb-YDrS/exec
🚀 Следующий шаг — создаем пустую google-таблицу!
!!! И сразу важный момент - табличка должна быть доступна по ссылке, и доступ должен быть как Редактор.
Сразу лучше сделать чтобы не забыть.
Далее нужно скопировать из ссылки на таблицу ее идентификатор. Он находится прямо от значения /d/ и до значения /edit
https://docs.google.com/spreadsheets/d/1NrtghiGzOFeVGp5BGvGfgGR_9K3jjrq4Z0RrQ4mOwY9yqwI/edit?gid=0#gid=0
Это будет значение для параметра SSID 1NiGzOFeVGp5BGvGfgGR_9K3jjrq4Z0RrdfdQ4mOwY9yqwI
В самой таблице делаю поля, которые я хочу получить из геткурса.
У меня это ID, Имя, Фамилия, Email, Телефон, Город, Дата регистрации в геткурсе, Дата добавления в группу и UTM-метки
Все эти показатели нужно написать как переменные геткурса - и это будет Параметр 3
Дата регистрации в геткурсе - {object.created_at}
Дата добавления в группу - {object.today}
UTM-метки - {object.create_session.utm_source},{object.create_session.utm_medium},{object.create_session.utm_campaign},{object.create_session.utm_content},{object.create_session.utm_term},{object.create_session.utm_group},{object.create_session.clickid}
Параметр 1 https://script.google.com/macros/s/AKfycbwhMffdgbqtg74TBX3Y5azSn661M80siMIT4lOr66R7mdL-hZ_LpC3wQ7b0xBYyoH73K4B/exec?
После него ставим ? без пробелов
Пишем SSID= и далле Параметр 2 SSID=18dm6v2fYVWDCilYhP5HY7DUTXW0ND8riZtgn2jLP0Oc
Пишем &DATA= и далле Параметр 3
&DATA={object.id},{object.first_name},{object.last_name},{object.email},{object.phone},{object.city},{object.created_at},{object.today},{object.create_session.utm_source},{object.create_session.utm_medium},{object.create_session.utm_campaign},{object.create_session.utm_content},{object.create_session.utm_term},{object.create_session.utm_group},{object.create_session.clickid}
https://script.google.com/macros/s/AKfycbwhMgbqtg74TBX3Y5azSn661M80siMIT4lOr66R7mdL-hZ_LpC3wQ7b0xBYyoH73K4B/exec?SSID=18dm6v2fYVWDCilYhP5HY7DUTXW0ND8riZtgn2jLP0Oc&DATA={object.id},{object.first_name},{object.last_name},{object.email},{object.phone},{object.city},{object.created_at},{object.today},{object.create_session.utm_source},{object.create_session.utm_medium},{object.create_session.utm_campaign},{object.create_session.utm_content},{object.create_session.utm_term},{object.create_session.utm_group},{object.create_session.clickid}
🚀 Финальный шаг — подключаем скрипт к GetCourse
Осталось последнее — добавить всё это в процесс в GetCourse, чтобы данные начали передаваться автоматически. Почти финишная прямая! 🏁
Создаем процесс по пользователям.
Пишем название процесса, выбираем параметр Периодическая проверка, условие - Добавление в группу (ставим группу, куда идут регистрации), и выставляем период с какой даты и времени начинать и заканчивать проверку - Сохранить.
У нас всего 3 этапа: Начало работы, блок Операция - вызвать url - Завершить процесс.
URL - вставляем подготовленную ссылку https://script.google.com/macros/s/AKfycbwhMgbqtg74TBX3Y5azSn661M80siMIT4lOr66R7mdL-hZ_LpC3wQ7b0xBYyoH73K4B/exec?SSID=18dm6v2fYVWDCilYhP5HY7DUTXW0ND8riZtgn2jLP0Oc&DATA={object.id},{object.first_name},{object.last_name},{object.email},{object.phone},{object.city},{object.created_at},{object.today},{object.create_session.utm_source},{object.create_session.utm_medium},{object.create_session.utm_campaign},{object.create_session.utm_content},{object.create_session.utm_term},{object.create_session.utm_group},{object.create_session.clickid}
После этого запускаем процесс.
🎉 Всё готово!
Теперь скрипт запущен, доступы настроены, и GetCourse сможет автоматически передавать регистрации в Google-таблицы. Больше никаких ручных выгрузок — всё работает само!
Осталось только протестировать процесс, убедиться, что данные приходят корректно, и наслаждаться автоматизацией. 🚀
Пробуй, экспериментируй, а если будут вопросы — пиши! ✉
И, кстати, заходи на мой Telegram-канал — там есть полезные лайфхаки для продвижения. 🚀