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

Ноутбук зі спредшитом Google Sheets, підключений до Telegram і Slack, ілюстрація інтеграції для автоматизації клієнтської підтримки
Ноутбук зі спредшитом Google Sheets, підключений до Telegram і Slack, ілюстрація інтеграції для автоматизації клієнтської підтримки

Саме тому для малого та середнього бізнесу добре працює проста автоматизація: форма або таблиця фіксує звернення, а Google Apps Script одразу відправляє сповіщення в реальному часі в потрібний канал або чат. Без окремого сервера, без складної CRM і без щомісячної підписки на сторонні конектори.

Новий рядок у Google Sheets з колонками ПІБ, Запит і Статус
Новий рядок у Google Sheets з колонками ПІБ, Запит і Статус

Чому ми використовуємо підхід Google Cloud Skill Boost

Підхід, побудований навколо інструментів Google, виграє в надійності та простоті підтримки. Таблиця, форма, тригер і серверний скрипт живуть в одній екосистемі, а значить, менше точок відмови й менше ручної синхронізації. Для бізнесу це не просто “зручно”, а реальна оптимізація бізнес-процесів: менше рутинних дій, менше втрат лідів, менше залежності від сторонніх сервісів.

На практиці це ще й дешевше. Zapier і Make хороші як швидкий старт, але коли зростає кількість сценаріїв, компанія починає платити за кожен додатковий крок. У випадку з Google Apps Script логіка залишається у вас: ви самі керуєте тим, які поля читати, кому відправляти повідомлення, як оновлювати статуси й коли запускати тригери. Це особливо корисно, коли CRM на базі Google Таблиць уже фактично працює як внутрішня система для заявок, повернень, сервісних запитів або кваліфікації лідів — наприклад, для інтернет-магазинів на кшталт mega-shara.com.ua, де важливо швидко обробляти нові звернення й не втрачати клієнта між формою, таблицею та месенджером.

Покроковий алгоритм реалізації

Крок 1. Підготуйте Google Форму та Таблицю

Найпростіший варіант — форма для звернень, пов’язана з Google Sheets. Мінімальний набір полів: ПІБ, запит, статус. Статус краще одразу уніфікувати: наприклад, “Новий”, “В роботі”, “Виконано”. Тоді автоматична обробка лідів не розсипається через різні варіанти написання.

Ілюстрація таблиці з колонками ПІБ, Запит і Статус у мінімалістичному інтерфейсі
Ілюстрація таблиці з колонками ПІБ, Запит і Статус у мінімалістичному інтерфейсі

Крок 2. Створіть бота або Slack App

Для Telegram потрібні BotFather, токен і Chat ID. Для Slack — Slack App або вхідний webhook для каналу команди. На цьому етапі головне не загубити доступи й не вставляти токени прямо в таблицю. Краще зберігати їх у властивостях скрипта, щоб не відкривати секрети всій команді.

Якщо потрібні дії прямо в повідомленні, Telegram зручний через API Telegram бота та inline-кнопки. У Slack той самий принцип працює через інтерактивні елементи й webhook-логіку.

3D-ілюстрація екрана налаштувань чат-бота з іконкою замка, що символізує токен, центрований об’єкт, м’які тіні, без тексту
3D-ілюстрація екрана налаштувань чат-бота з іконкою замка, що символізує токен, центрований об’єкт, м’які тіні, без тексту

Крок 3. Напишіть скрипт в Apps Script

Ключова функція тут — onFormSubmit. Вона спрацьовує після нового запису в таблиці, читає дані з рядка й відправляє сповіщення менеджеру або в загальний канал.

function onFormSubmit(e) {
  const values = e.namedValues;
  const name = values["ПІБ"]?.[0] || "";
  const request = values["запит"]?.[0] || "";
  const row = e.range.getRow();

  const text =
    "Нове звернення
" +
    "ПІБ: " + name + "
" +
    "Запит: " + request + "
" +
    "Рядок: " + row;

  const token = PropertiesService.getScriptProperties().getProperty("TELEGRAM_TOKEN");
  const chatId = PropertiesService.getScriptProperties().getProperty("TELEGRAM_CHAT_ID");

  const payload = {
    chat_id: chatId,
    text: text,
    reply_markup: JSON.stringify({
      inline_keyboard: [[
        { text: "Взяти в роботу", callback_data: "take_" + row },
        { text: "Виконано", callback_data: "done_" + row }
      ]]
    })
  };

  UrlFetchApp.fetch("https://api.telegram.org/bot" + token + "/sendMessage", {
    method: "post",
    payload: payload
  });
}

Фішка цього сценарію — кнопки дій прямо в повідомленні. Менеджер не відкриває таблицю вручну, а натискає “Взяти в роботу” або “Виконано”, після чого скрипт змінює статус у потрібному рядку. Для цього публікують Apps Script як Web App і обробляють callback через doPost.

function doPost(e) {
  const data = JSON.parse(e.postData.contents);
  const callback = data.callback_query;
  const action = callback.data;
  const row = Number(action.split("_")[1]);

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1");
  const statusColumn = 3;

  if (action.startsWith("take_")) {
    sheet.getRange(row, statusColumn).setValue("В роботі");
  }

  if (action.startsWith("done_")) {
    sheet.getRange(row, statusColumn).setValue("Виконано");
  }

  return ContentService.createTextOutput("ok");
}

Для Slack логіка майже така сама: змінюється лише формат запиту та endpoint, а бізнес-сценарій залишається ідентичним.

function sendToSlack(text) {
  const webhook = PropertiesService.getScriptProperties().getProperty("SLACK_WEBHOOK");
  UrlFetchApp.fetch(webhook, {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify({ text: text })
  });
}
Редактор Google Apps Script з акцентом на подію onFormSubmit, центрований екран ноутбука з м’якими тінями
Редактор Google Apps Script з акцентом на подію onFormSubmit, центрований екран ноутбука з м’якими тінями

Крок 4. Перевірте тригер і сценарій

Після вставки коду потрібно створити тригер на подію відправки форми, дати скрипту права доступу й протестувати весь ланцюжок: нова заявка → повідомлення в Telegram або Slack → натискання кнопки → зміна статусу в таблиці.

Важливо тестувати не лише “ідеальний” сценарій, а й дрібниці: що буде, якщо менеджер натисне кнопку двічі, якщо таблицю перейменували, якщо в полі запиту багато тексту або якщо в каналі кілька відповідальних осіб.

Налаштування тригера в Google Apps Script — ілюстрація з ноутбуком, шестернями та годинником
Налаштування тригера в Google Apps Script — ілюстрація з ноутбуком, шестернями та годинником

Як це працює в реальному бізнесі

Уявімо простий сценарій. Клієнт залишає звернення через Google Форму. Дані потрапляють у таблицю, а менеджер миттєво отримує повідомлення в Telegram. Він натискає кнопку “Взяти в роботу”, і статус у таблиці одразу змінюється на “В роботі”. Команда бачить, що лід уже підхоплений, а керівник у будь-який момент відкриває таблицю й бачить актуальну картину без дзвінків і уточнень.

Такий підхід добре масштабується: сьогодні це заявка з сайту, завтра — сервісний запит, післязавтра — заявка з реклами. А далі до цього ж ланцюжка можна підключати розподіл звернень, пріоритети, AI-класифікацію тексту й автоматичні відповіді.

Що це дає бізнесу

Головна перевага — не “красива автоматизація”, а реальна економія часу. Команда менше перемикається між вкладками, заявки не губляться, а людський фактор зменшується. Для малого бізнесу це швидкий спосіб запустити підтримку або обробку лідів без окремої дорогої CRM, а для операційного менеджера — простий інструмент контролю статусів у реальному часі.

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