Как получать данные от сторонних сервисов — создаем вебхук с помощью Google Apps Scripts

При внедрении бизнес-процессов важно получать данные от внешних сервисов при наступлении того или иного события — это может быть передача данных из CRM-систем, сервисов оплаты, систем аналитики, интернет-магазинов. В большинстве таких случаев вам нужен вебхук.
Вебхук (webhook) — механизм получения уведомлений о происходящих в системе событиях с помощью функций обратных вызовов. Когда случается интересующее клиента событие, сервер отправляет HTTP-запрос на URL-адрес, предоставленный клиентом для приема вебхуков.Если вам нужно оперативно обработать полученные через вебхук данные, можно воспользоваться настройкой вебхука в Google Apps Scripts.
Вначале необходимо создать новый проект. Сделать это можно несколькими способами:
- Перейти в панель создания скриптов и кликнуть «Создать проект».
- Создать пустую таблицу Google Spreadsheets и выбрать в меню «Инструменты» — «Редактор скриптов».
Дайте название вашему проекту. По умолчанию вам будет предоставлен файл Код.gs и создана пустая функция myFunction(). В этой среде будем обpaбатывать данные, полученные от внешней системы. Как же наш код примет эти данные? Для этого мы развернем скрипт как веб-приложение, которому будет выделен публичный веб-адрес.
В меню выбираем «Опубликовать» — «Развернуть как веб-приложение».
Указываем текущую версию нашего приложения, например, v1.0. Выполнение скрипта оставляем из-под нашего аккаунта. В поле “Who has access to the app” выбираем “Anyone, even anonymous”:
Жмем Deploy. Копируем сгенерированный URL.
Обратите внимание, что были сгенерированы два URL-адреса: текущий URL нашего веб-приложения, который заканчивается сегментом /exec и тестовый URL под анкором latest code, который заканчивается сегментом /dev. Первый URL — рабочий, который и будет играть роль вебхука.
Любые изменения в скрипте потребуют повторного деплоя с указанием новой версии. Если же вы хотите наблюдать за результатом своих изменений, не меняя каждый раз версию скрипта, используйте тестовый URL, который будет всегда запускать последний сохраненный код.
Наше приложение развернуто, и мы можем принимать данные извне. Однако, если вы откроете URL в браузере, вы столкнетесь с ошибкой: «Не удалось найти функцию скрипта: doGet».
Так происходит, потому что в нашем скрипте пока нет функций, которые перехватывали бы полученные данные. Для этого в GAS предусмотрено два зарезервированных метода: doGet() и doPost(), которые отвечают за получение значений, отправленных с помощью GET и POST запросов соответственно.
Оба метода принимают переменную «e», благодаря которой можно получить доступ к значениям.Формат, в котором эта переменная предоставляет данные — JSON. С полным перечнем доступных полей можно ознакомиться в документации в разделе Request Parameters. Нас интересует поле e.parameter, через которое мы и будем получать значения необходимых параметров. Возникает вопрос: к каким переменным обращаться?
Набор параметров, который внешняя система будет отправлять на ваш URL, зачастую предусмотрен самой системой и приведен в документации по использованию вебхуков. Если вы не желаете получать абсолютно все возможные переменные, некоторые сервисы позволяют вам выбирать интересующие поля из общего множества.
Например, при настройке вебхука в сервисе UptimeRobot на мой URL будут отправлены данные:
В итоге, внутри метода doGet(e) я могу обратиться к любому из вышеперечисленных полей: e.parameter.monitorUrl, e.parameter.alertType, e.parameter.alertDetails и так далее. Всё это работает и для метода doPost(e).
Есть объект parameter, а есть объект parameters. Отличие в том, что каждый ключ в parameters содержит соответствующий массив значений, в то время как каждый ключ в parameter — только единичную величину.
Получив доступ к данным, можем обработать их или отправить через API в другие сервисы. Рассмотрим разные способы отправки.
Вывод данных в таблицу Google Spreadsheets
Если хотим анализировать данные в таблице, можем записывать их в документ при каждом обращении к вебхуку с помощью класса SpreadsheetApp.
function doGet(e) { writeToGoogleSpreadsheet(e.parameter) ;}function writeToGoogleSpreadsheet(params) { var spreadsheet = SpreadsheetApp.openById(\"id_of_my_google_spreadsheet\") ; var sheetData = spreadsheet.getSheetByName(\\\'Data\\\') ; sheetData.appendRow([ params.monitorURL, params.alertType, params.alertDetails ]) ;}Настройка оповещений через бота Telegram
Как создать чат-бот для Telegram-канала — инструкция для администраторов Этот способ удобен тем, что будет уведомлять вас о совершенной конверсии или наступлении другого события в режиме реального времени с помощью
Чтобы создать своего бота, просто напишите пользователю @BotFather и следуйте его инструкциям. Как только вы создали бота и получили свой ключ (токен) авторизации, переходите в раздел документации Bot API, чтобы выполнить необходимые настройки. Для отправки сообщений нам понадобится api-метод sendMessage(), который принимает следующие параметры: chat_id (в данном случае ваш персональный ID в телеграм), text — передаваемое сообщение и (опционально) parse_mode — формат, в котором отправляем сообщение. Бот @my_id_bot подскажет ваш персональный айди.
function doGet(e) { sendToTelegram(e.parameter) ;} function sendToTelegram(params) { var token = \"your_telegram_bot_token\"; var telegramUrl = \"https://api.telegram.org/bot\" + token; var id = \"your_telegram_chat_id\"; var text = \"<pre>\" + params.monitorUrl + \" \" + params.alertDetails + \"pre>\"; var url = telegramUrl + \"/sendMessage?chat_id=\" + id + \"&parse_mode=html&text=\" + text; var response = UrlFetchApp.fetch(encodeURI(url)) ;}Отправка данных на почту
С помощью класса MailApp легко отправить данные и на свой электронный ящик. Подробнее о возможностях класса читайте в документации.
function doGet(e) { sendMail(e.parameter) ;}function sendMail(params) { var emailAddress = \"my-account@gmail.com\"; var message = \"Domain \" + params.monitorUrl + \" \" + params.alertDetails; var subject = \"Alert: problem with domain \" + params.monitorUrl; MailApp.sendEmail(emailAddress, subject, message) ;}Кроме рассмотренных выше примеров, этот подход можно применять для решения других задач, когда необходимо получить данные от внешних сервисов при наступлении определенного события.
Хотите узнать больше о решениях для бизнес-процессов? Подписывайтесь на нашу рассылку:
Истории бизнеса и полезные фишкиКомментарии:
Голосуй за первых лиц маркетинга ecommerce-проектов Украины...
16 03 2026 14:53:32
Функционал для специалистов и новичков: как настраивать особые правила. Знания, которые помогают предотвратить грубые ошибки в рекламе товаров и услуг. Читать дальше!...
15 03 2026 15:36:30
Значит так, делаем из лимонов лимонад — «выжимаем» максимум из ошибки 404...
14 03 2026 16:31:36
Полтора года работы и 32 тысячи привлеченных подписчиков. Рассказываем о плюсах и минусах продвижения телеграм-канала....
13 03 2026 0:31:51
Как и зачем отслеживать конверсии с тегом Google Рекламы...
12 03 2026 23:14:33
У каждого сайта в топе есть страница, о существовании которой знают только роботы и... SEO-специалисты. Это robots.txt или индексный файл....
11 03 2026 11:12:56
Что нам дают знания о статистике контента в социальных сетях и какими сервисами анализировать данные...
10 03 2026 23:38:46
Как определить, что SEO-продвижение не будет в тягость, что и кого читать начинающему специалисту...
09 03 2026 12:10:27
Бренду нужно зайти на Фейсбук? Несколько очень полезных советов об измерении эффективности SMM....
08 03 2026 2:17:54
Как сделать так, чтобы статусы автоматически трaнcлировались в Twitter...
07 03 2026 18:16:44
Как жить с налогом на Google, Facebook и другие международные сервисы — объясняем детали....
06 03 2026 5:13:46
Четыре способа исключить нерелевантные места размещения видеорекламы, а также полезные списки минус-слов и детских YouTube-каналов....
05 03 2026 4:37:18
Как стать востребованным сео оптимизатором: 35+ ссылок для обучения и совершенствования своих знаний, а также советы...
04 03 2026 20:54:57
Ошибка, которая может привести к полной потере контроля над вашим сайтом. Рассказываем, что это такое, какие могут быть причины поломки и как исправить. Узнать больше!...
03 03 2026 4:27:38
Организаторам мероприятий, коллегам из PR-сферы и невестам о том, как делегировать важные мероприятия внешнему подрядчику...
02 03 2026 21:59:32
Айти эксперт Женя Розинский о том, почему нацию айти развивают продуктовые бизнесы, а не outsourcing сервисы...
01 03 2026 1:17:46
Что нужно делать на старте работ с интернет-магазином и как минимизировать риски для бизнеса онлайн, используя такие инструмента как SEO, PPC и Email-маркетинг — советы от эксперта. Читать дальше!...
28 02 2026 6:46:39
Настройка целей в Google ***ytics, а также отслеживание событий....
27 02 2026 21:36:43
3 часто задаваемых вопроса о раскрутке сайтов об эффективной организации SEO своими силами, способах проверки оптимизации сайта и о том, как быстро можно увидеть эффект от SEO. Узнайте больше!...
26 02 2026 17:38:42
Всё, что вы хотели знать о функциях вычисляемых полей, но боялись спросить....
25 02 2026 4:34:14
Рассказываем о приемах, которые помогут вам заинтересовать читателей рассылки....
24 02 2026 12:53:48
Отныне мы можем настраивать показы рекламы на мужчин и женщин определенной возрастной группы....
23 02 2026 2:16:18
Cтоимость просмотра в Google Ads дешевле как минимум в два раза по сравнению со Smart TV...
22 02 2026 1:35:33
Упущенная семантика — это ключевые фразы, которые успешно используют в SEO и PPC ваши основные конкуренты, но не используете вы. Как найти упущенную семантику? Читайте кейс сервиса Prodvigator....
21 02 2026 8:22:35
Выдержка из интервью Дэнни Салливаном с представителями компаний Google и Bing...
20 02 2026 22:49:40
Как поможет Regex Engines в работе с Google ***ytics и преимущества использования Regex в Диспетчере тегов Google. Узнать больше....
19 02 2026 8:51:23
«Случайный» посетитель потому, что может уйти (не сделав покупку) и не вернуться, не стать клиентом. Пуш-уведомления позволяют посетителю сразу стать подписчиком: ему предлагают подписаться на рассылку. Как это использовать? Читайте!...
18 02 2026 18:31:37
Публикуем тему с закрытого аналитического форума Netpeak про «звездочки» как инструмент оценки релевантности контента....
17 02 2026 5:45:25
Как за полгода обновить корпоративный блог, зачем это может быть нужно. О том, как начинали с сегментации, внедряли SEO-рекомендации, оптимизировали ЧПУ, трaнcлитерацию, пагинацию и структуру блога вплоть до конкретной работы со статьями, рейтингами и их страницами...
16 02 2026 21:34:34
Человеку стало плохо, он теряет сознание. Те, кто рядом, хотят помочь, но не знают, как это сделать. Давайте разбираться....
15 02 2026 4:16:26
О неправильных тpaктовках отчета по времени загрузки страниц сайта в ***ytics...
14 02 2026 10:25:35
Не путайте с контент-менеджером, пожалуйста....
13 02 2026 23:59:10
Как настроить эксперимент на сайте без сторонней помощи...
12 02 2026 5:50:55
Менеджмент и лидерство: 4 разных типа руководства организацией и нескучные иллюстрации в стиле South park....
11 02 2026 13:34:28
Вести бизнес в интернете с помощью развлекательного сайта, СМИ, узкоспециализированного портала вполне реально. Правда, нужно знать, как на них заpaбатывать....
10 02 2026 17:11:33
В течение месяца нам удалось наладить рассылку с новой платформы....
09 02 2026 0:11:29
Подборка корпоративных медиа, попав на страницы которых, не хочется их покидать....
08 02 2026 0:54:18
Давайте больше не будем сливать бюджет, выбирая неправильный параметр....
07 02 2026 3:35:24
Рост дохода в шесть раз, ROMI +500% за пять месяцев....
06 02 2026 23:22:15
Где и как разработчик может подобрать ответственных удаленщиков, как составить техническое задание, чем контролировать качество работы...
05 02 2026 22:50:33
Начинаем работать с облачным сервисом хранения Google BigQuery...
04 02 2026 1:46:57
03 02 2026 14:59:29
Данные о стоимости клика в наиболее популярных рекламных интернет-площадках страны....
02 02 2026 21:27:23
Ошибки, которые допускают новички и теряют деньги, трафик, клиентов....
01 02 2026 2:16:58
Анализ содержимого сайта показывает: Url разные, а контент страниц одинаковый. Думаете, ничего страшного? Но одинаковый контент может попасть под фильтры поисковых систем. Чтобы этого не произошло, надо знать, как избавляться от внутренних дублей...
31 01 2026 6:31:42
Делайте анализ ссылочной массы хотя бы раз в месяц — и будет вам счастье....
30 01 2026 1:16:33
Почему синергия штатных специалистов и рекламное дело агентства SEO/PPC выгодна бизнесу...
29 01 2026 8:45:33
Данные, приведенные в исследовании, помогут в составлении медиапланов по продвижению в интернете. Понимания стоимость конверсии и необходимое количество конверсий, вы можете прогнозировать, сколько денег на рекламу нужно выделить....
28 01 2026 16:42:20
Одесса. Конференция «Контекстная реклама 2013». Самые полезные настройки рекламной кампании....
27 01 2026 11:40:32
Создаем список тем, которые заинтересуют пользователя — для этого используем простые сервисы по типу Вордстат. Также изучаем деятельность конкурентов. Узнать больше!...
26 01 2026 10:36:54
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::