Якщо у вас немає CRM-системи, але потрібно обробляти, аналізувати та зберігати ліди, простим рішенням буде передача лідів із сайту в Google Таблицю.

Розглянемо приклад відправки заявки на сторінці аудиту рекламних кампаній

Скріншот форми заявки з сайту

В ній є 5 полів для заповнення:
– ім’я;
– email;
– телефон;
– сайт;
– повідомлення.
Дані з цих полів будуть імпортуватися в Google Таблицю

Google Таблиця

На першому етапі необхідно створити нову таблицю. Перейдіть за посиланням і створіть пустий файл.

В першому рядку створіть заголовки таблиці у відповідності до полів форми заявки. Але поле “Імʼя” потрібно вказувати без апострофу.

Скріншот Google Таблиці для передачі лідів із сайту

Лист із цією таблицею необхідно перейменувати, наприклад на “data”.

Скріншот перейменованого аркуша

Переходимо в пункт меню “Розширення” – “Apps Script”.

Скріншот шляху налаштування скрипта для отримання лідів із сайту

Видаляємо весь наявний код і вставляємо наступний:

// Використання
// 1. В змінній SHEET_NAME вводимо нову назву аркуша
// 1. В змінній SHEET_KEY вводимо ID таблиці
var SHEET_NAME = "Аркуш1";
var SHEET_KEY = "ID-таблиці";

//2. Ввести в дію - Нове введення в дію - Веб-додаток
//
// 3. Введіть назву проекту
// Запускати додаток від мого імʼя
// Доступ до додатку є у всіх
//
// 4. Скопіюйте "URL-адресу веб-додатку" і опублікуйте його в своєму Google Tag Manager
//
// 5. Вставте назви стовців на аркуш

var SCRIPT_PROP = PropertiesService.getScriptProperties(); // клас, дозволяє зберігати дані в парах “ключ-значення”

// Якщо не хочете розкривати методи GET або POST, можете закоментувати відповідну функцію
function doGet(e){
return handleResponse(e);
}

function doPost(e){
return handleResponse(e);
}

function handleResponse(e) {
var lock = LockService.getPublicLock();
lock.waitLock(30000); // Зачекайте до 30 секунд, поки завершаться інші процеси

try {
// Запис даних - можете використовувати декілька альтернативних адресатів
var doc = SpreadsheetApp.openById(SHEET_KEY);
var sheet = doc.getSheetByName(SHEET_NAME);

// Передбачається, що заголовок знаходиться в рядку 1, але можна перепризначити header_row в даних GET / POST
var headRow = e.parameter.header_row || 1;
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow()+1; // Отримуємо наступний рядок
var row = [];
// Перебираємо стовпці заголовків
for (i in headers){
if (headers[i] == "Timestamp"){ // В особливих випадках, коли використовуєте стовпець Timestamp
row.push(new Date());
} else { // В іншрому випадку використовуємо імʼя заголовка для отримання даних
row.push(e.parameter[headers[i]]);
}
}
// Найбільш ефективно встановлювати значення у вигляді масиву []
sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
// Повертаємо успішне значення у вигляді JSON
return ContentService
.createTextOutput(JSON.stringify({"result":"success", "row": nextRow}))
.setMimeType(ContentService.MimeType.JSON);
} catch(e){
// У випадку помилки повертаємо це
return ContentService
.createTextOutput(JSON.stringify({"result":"error", "error": e}))
.setMimeType(ContentService.MimeType.JSON);
} finally { // Знімаємо блокування, щоб інші процеси могли продовжити роботу
lock.releaseLock();
}
}

В пунктах коду потрібно змінити значення
var SHEET_NAME = “Аркуш1” – замість Аркуш1 вказуємо назву листа “data”
var SHEET_KEY = “ID-таблиці” – замість ID-таблиці вказуємо ID своєї таблиці.

Скріншот унікального ID таблиці для скрипта

Копіюємо підкреслене значення між “/” і “/”
1aqXADXw6NCpABUnmokPvFxysZWQ0rJM7qlYkdoawS6A

Далі активуємо скрипт.

Скріншот налаштування скрипта передачі лідів із сайту

У новому відкритому вікні вибираємо піктограму шестерні і натискаємо “Веб-додаток”.

Скріншот налаштування скріпта як веб-додатку

В новому вікні вводимо опис, залишаємо виконувати від свого імені і змінюємо пункт “Хто має доступ” на “Усі”, далі вводимо в дію скрипт.

Скріншот налаштування запуску скріпта

В оновленому вікні натискаємо “надати доступ”. Натискаємо на свій профіль (з якого ви створили таблицю).
На слідуючому етапі потрібно натиснути кнопку “Просунутий”.

Скріншот налаштування доступів скрипта

В оновленому вікні тиснемо “Перейти до…”.

Скріншот встановлення дозволів на виконання скрипта

І натискаємо кнопку “Дозволити”.

На цьому етапі має зʼявитися вікно із даними, потрібно з нього скопіювати і зберегти посилання виду:
https://script.google.com/macros/s/AKfycbzyaXwya6k53XjQj7R1eY0yJ4uCtf2SZGuvg7HJE4medHoRdudY3uQJUSUCNUaPgOtkcA/exec

Google Tag Manager

Для того, щоб передати значення полів із сайту в таблицю необхідно спочатку ці поля вилучити, зберегти в змінній і з відправкою форми відправити в таблицю.

Створюємо нову спеціальну змінну JavaScript з кодом:

function(){
var vashePole = $('CSS-селектор').val();
return vashePole;
}

Якщо на сайті немає JQuery, то використовуємо наступний код:

function(){
var vashePole = document.querySelectorAll('CSS-селектор')[0].value;
return vashePole;
}

Замість “CSS-селектор“ потрібно вставити актуальний CSS-селектор відповідного поля форми заявки.

Скріншот копіювання CSS-селектора для налаштування передачі лідів із сайту

Називаємо змінну в відповідності до поля форми.

Скріншот налаштування змінної в GTM

Аналогічно створюємо змінні для всіх необхідних полів форми.
Вибираємо трігер, який відповідає за успішну відправку форми, або створюємо новий, наприклад при кліку на кнопку “Відправити”.

Створюємо тег відправки даних в Google Таблицю. Для цього необхідно адаптувати наступний код у відповідності “ключ-значення”
https://script.google.com/macros/s/ХХХ-змініть-посилання-на-своє-ХХХ/exec?Імя={{form_name}}&Email={{form_email}}&Телефон={{form_phone}}&Сайт={{form_site}}&Повідомлення={{form_message}}

В ключі “Імя” теж вказуємо без апострофу.
Створюємо тег “Спеціальне зображення”, в полі “URL-адреса зображення” вставляємо код, додаємо тригер.

Скріншот налаштування тегу в GTM

Якщо все налаштували вірно, то при перевірці отримуємо ліди в Google.

Скріншот отримання лідів в Google Таблиці із сайту

Передача лідів із сайту в Google Таблицю цим способом, можливо, не найкращий і не найнадійніший варіант. Але він дозволяє самостійно налаштувати імпорт і далі вже обробляти заявки, чи формувати базу, чи просто мати резервні дані.