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

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

Чому ми використовуємо підхід 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-логіку.

Крок 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 })
});
}
Крок 4. Перевірте тригер і сценарій
Після вставки коду потрібно створити тригер на подію відправки форми, дати скрипту права доступу й протестувати весь ланцюжок: нова заявка → повідомлення в Telegram або Slack → натискання кнопки → зміна статусу в таблиці.
Важливо тестувати не лише “ідеальний” сценарій, а й дрібниці: що буде, якщо менеджер натисне кнопку двічі, якщо таблицю перейменували, якщо в полі запиту багато тексту або якщо в каналі кілька відповідальних осіб.

Як це працює в реальному бізнесі
Уявімо простий сценарій. Клієнт залишає звернення через Google Форму. Дані потрапляють у таблицю, а менеджер миттєво отримує повідомлення в Telegram. Він натискає кнопку “Взяти в роботу”, і статус у таблиці одразу змінюється на “В роботі”. Команда бачить, що лід уже підхоплений, а керівник у будь-який момент відкриває таблицю й бачить актуальну картину без дзвінків і уточнень.
Такий підхід добре масштабується: сьогодні це заявка з сайту, завтра — сервісний запит, післязавтра — заявка з реклами. А далі до цього ж ланцюжка можна підключати розподіл звернень, пріоритети, AI-класифікацію тексту й автоматичні відповіді.
Що це дає бізнесу
Головна перевага — не “красива автоматизація”, а реальна економія часу. Команда менше перемикається між вкладками, заявки не губляться, а людський фактор зменшується. Для малого бізнесу це швидкий спосіб запустити підтримку або обробку лідів без окремої дорогої CRM, а для операційного менеджера — простий інструмент контролю статусів у реальному часі.
Якщо ж потрібна складніша логіка — наприклад, AI-пріоритезація заявок, розподіл між відділами, аналітика або багатокрокова CRM на базі Google Таблиць — це вже має сенс робити як окрему систему.
Останні статті

Автопілот для Gmail: Як навчити пошту саму сортувати важливі листи за допомогою ШІ
Ранок із 50+ листами — це не “організована комунікація”, а міні-лотерея. Більшість повідомлень — шум: розсилки, автоматичні підтвердження, квитанції, другорядні апдейти.…

Прощавай, ручне копіювання: Як за допомогою ШІ зібрати дані з будь-якого сайту за 2 хвилини
Потрібно виписати ціни 50 товарів із сайту конкурента? Зібрати заголовки з блогу? Витягнути список контактів із відкритого каталогу? Робити це руками через нескінченні C…

Ваш особистий Telegram-асистент: Як за 15 хвилин створити бота для нотаток у Google Таблиці
Записувати витрати, ідеї чи короткі службові нотатки прямо в таблицю з телефону — це один із тих дрібних процесів, які майже всі ненавидять. Маленькі клітинки, незручний…

Автономні LLM-агенти в Google Workspace: Автоматична відповідь на Email через Node.js
У відділах продажу й сапорту email дуже швидко перетворюється на окремий фронт операційного навантаження. Листів багато, формулювання різні, частина звернень повторюєтьс…

Мікроавтоматизація без SaaS: створюємо bookmarklet для YouTube, який додає десятки відео в чергу однією кнопкою
Коли треба переглянути 20–50 відео по темі, ручне додавання кожного ролика в YouTube queue починає дратувати набагато сильніше, ніж здається на старті. Начебто це всього…

Stateless-автоматизація: Розгортання Google Apps Script як Webhook-сервера
Коли в компанії з’являється кілька CRM, форм, платіжних сервісів і внутрішніх таблиць, дуже швидко виростає “зоопарк” інтеграцій. Один сценарій забирає лід із форми, дру…