Автоматическая передача регистраций из 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/AKfycbxCFHgi5wkTWLTNL7slsLhWYiaOAw54bdANtcW_KdHSivXSDjkPOjNrx_BU8Eb-YDrS/exec
🚀 Следующий шаг — создаем пустую google-таблицу!
!!! И сразу важный момент - табличка должна быть доступна по ссылке, и доступ должен быть как Редактор.
Сразу лучше сделать чтобы не забыть.
Далее нужно скопировать из ссылки на таблицу ее идентификатор. Он находится прямо от значения /d/ и до значения /edit
https://docs.google.com/spreadsheets/d/1NiGzOFeVGp5BGvGfgGR_9K3jjrq4Z0RrQ4mOwY9yqwI/edit?gid=0#gid=0
Это будет значение для параметра SSID 1NiGzOFeVGp5BGvGfgGR_9K3jjrq4Z0RrQ4mOwY9yqwI
В самой таблице делаю поля, которые я хочу получить из геткурса.
У меня это 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/AKfycbwhMgbqtg74TBX3Y5azSn661M80siMIT4lOr66R7mdL-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-канал — там есть полезные лайфхаки для продвижения. 🚀