Как получать данные от сторонних сервисов — создаем вебхук с помощью 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) ;}Кроме рассмотренных выше примеров, этот подход можно применять для решения других задач, когда необходимо получить данные от внешних сервисов при наступлении определенного события.
Хотите узнать больше о решениях для бизнес-процессов? Подписывайтесь на нашу рассылку:
Истории бизнеса и полезные фишкиКомментарии:
Как с помощью Google Tag Manager отслеживать исходящие ссылки на сайте и загрузки файлов с него...
23 07 2026 15:29:45
Результаты четвертого опроса среди IT-специалистов по уровню зарплат интернет-маркетологов с интересными итогами от количества участников до самой высокооплачиваемой должности и среднего опыта в рынке. Узнайте больше!...
22 07 2026 21:30:44
Мнение Сергея Петренко, CEO компании Odesseya....
21 07 2026 5:49:36
Наибольший эффект по продвижению сайта при минимальных затратах — именно таков принцип SEO growth hacking. Как найти кратные точки роста, читайте статье....
20 07 2026 10:22:18
UTM-метки позволяют эффективно отслеживать источники трафика. Но составлять их нужно правильно. Как именно, давайте разбираться....
19 07 2026 21:31:33
Обычно SaaS-бизнесы начинают привлечение лидов с запуска рекламы на Facebook. Но наш опыт говорит о том, что это не самые подходящие каналы. Более высокие результаты можно получить на LinkedIn....
18 07 2026 4:31:16
На отклонение исходящих ссылок после загрузки файла может уйти достаточно много времени: от нескольких недель до нескольких месяцев...
17 07 2026 8:49:23
Кейс по росту органического трафика на сайте интернет-магазина на платформе Summer Cart....
16 07 2026 6:58:39
Чем шокировала, радовала и удивляла реклама в социальных сетях и контекстная в Google в апреле 2021 года...
15 07 2026 15:20:54
7 советов для оптимизации вашего профиля в Google Мой Бизнес....
14 07 2026 22:34:28
Что нужно сделать, чтобы превью веб-страниц в социальных сетях стало магнитом для пользователей?...
13 07 2026 13:35:33
Что нового, Netpeak? Новые стратегии контекстной рекламы и email-маркетинга, новая рубрика в блоге, а также о специфике работы отдела продаж Netpeak в карантин и о законах построения партнерской программы — всё читайте в материале!...
12 07 2026 3:14:17
Старт любых активностей в сфере email-маркетинга — разработка стратегии...
11 07 2026 21:53:10
Айти эксперт Женя Розинский о том, почему нацию айти развивают продуктовые бизнесы, а не outsourcing сервисы...
10 07 2026 11:11:46
Мы собрали топ обидных промахов в сборе семантики, влияющих на качество и эффективность продвижения проекта...
09 07 2026 5:35:12
Как пользоваться выбором высокочастотных фраз для метатегов, чисткой мусорных фраз и как расставлять приоритеты для навигационных запросов с указанием определенного направления...
08 07 2026 10:52:12
Примеры странной, классной и непонятной рекламы в соцсетях из моей ленты за февраль 2021 года...
07 07 2026 21:15:41
Сколько прибыли вы не получили в Google Ads из-за нехватки бюджета или низкого рейтинга ключевых слов. Метод покажется сложным, но в дальнейшем вы сможете бесплатно обновлять данные и контролировать потери показов и дохода по всем рекламным кампаниям...
06 07 2026 17:14:20
В течение 2016 года Алексей Селезнев собирал данные о стоимости клика в разрезе разных стран, регионов и тематик. Итоги исследования, тренды и прогнозы читайте в этой статье....
05 07 2026 2:15:37
Для эффективного ведения контекстной рекламы необходимо отслеживать продажи. Как сделать это с помощью Google Tag Manager расскажем в этой статье...
04 07 2026 7:40:38
Как использовать сервис Serpstat для оптимизации кампаний по контекстной рекламе...
03 07 2026 8:18:14
Объясняем по пунктам, как создать и правильно настроить DSA c таргетингом на фид и содержание сайта...
02 07 2026 10:39:46
Есть восхитительная возможность продвинуть видео на YouTube с минимальными финансовыми потерями!...
01 07 2026 20:35:36
Образец чек-листа по созданию форм заказа на сайте интернет-магазина...
30 06 2026 15:43:10
Как специалисту с нуля обучиться контекстной рекламе и совмещать работу с хобби...
29 06 2026 11:54:18
Если вы автор телеграм-канала, то стоит задуматься об альтернативных контент-платформах. Мнение...
28 06 2026 17:36:25
Улучшайте свой уровень английского. Упражнения для В1 — Intermediate («Средний+»). Узнать больше!...
27 06 2026 17:12:44
Новое исследование стоимости клика в Казахстане в четвертом квартале 2018 года...
26 06 2026 10:44:37
Не путайте с контент-менеджером, пожалуйста....
25 06 2026 4:35:15
Как правильно группировать ключевые фразы для релевантности рекламных кампаний...
24 06 2026 7:25:36
Узнаем расширенную информацию о посещениях сайта с помощью языка R — кейс Netpeak...
23 06 2026 7:21:59
Как получить трафик из песочниц контента в популярных изданиях....
22 06 2026 15:51:37
Низкочастотные, низкоконкурентные, Long Tail и другие термины, которые нужно знать и понимать....
21 06 2026 9:14:41
Как найти продавцов для маркетплейса с помощью рекламы в Google, Facebook, TikTok и Viber....
20 06 2026 17:41:57
RFM — это аббревиатура слов Recency, Frequency, Money — новизна, частота, деньги. То есть считаем, как давно клиент купил товар в последний раз, сколько всего покупок он сделал и сколько денег принес нам за все время заказов....
19 06 2026 1:21:20
Обзор главных преимуществ, которые дают облачные академии бизнесу....
18 06 2026 13:12:17
Эффективное PPC благодаря правильной аналитике....
17 06 2026 9:47:44
Почему нельзя просто взять и перевести. В худшем случае специализированный текст на иностранном языке должен стать для переводчика дорожной картой, в лучшем — источником вдохновения. Почему? Читайте об этом!...
16 06 2026 7:31:15
Триггер — способ ненавязчивого воздействия на потенциального клиента путем использования психологических приемов в текстах, заголовках и остальном контенте...
15 06 2026 6:27:16
Причины, по которым имеет смысл работать в офисе хотя бы несколько дней в неделю, а может и больше. Конечно, только если эпидемиологическая ситуация не заставляет оставаться дома. Берегите себя....
14 06 2026 16:52:43
Что же такое эти authority и чем они лучше и полезнее, к примеру, чем Page Rank?...
13 06 2026 0:40:28
При создании проекта и выбора доменного имени важно взвесить плюсы и минусы использования домена с историей...
12 06 2026 15:56:51
История для заказчиков, которые самостоятельно запускают рекламу...
11 06 2026 3:39:42
В помощь контент-маркетологам, редакторам, авторам и бизнесу: идеи, которые учитывают фактор SEO. Переупакуйте статьи, заметки, любые другие посты — угодите читателям и поисковикам. Узнать больше!...
10 06 2026 20:44:40
Доля органического трафика увеличилась с 14% до 44%, а небрендового — на 184%....
09 06 2026 16:19:22
Главная цель инфлюенс-маркетинга — теплый и близкий контакт с аудиторией. Клиентам нравится ассоциировать продукты с живыми, знакомыми им людьми — пускай и только по интернету. Читать дальше....
08 06 2026 5:41:44
Занимайтесь оптимизацией определенной категории товаров за полгода до скачка спроса....
07 06 2026 4:10:55
Публикуем рецензию на новое издание Брайана Клифтона. Несмотря на узкую специализацию, эта книга стала бестселлером на Amazon и уже переведена на 5 разных языков. Стоит отметить, что две предыдущие редакции «Google ***ytics для профессионалов» успешно ис...
06 06 2026 4:22:43
Оживший бар. О том, как один украинский бренд за полтора месяца получил более 4 000 фанов!...
05 06 2026 14:28:42
Ежегодно в конце ноября начинается ажиотаж вокруг «огромных» скидок на Черную пятницу. Во всем мире этого дня ждут и готовятся покупать выгоднее. Но так ли это на самом деле?...
04 06 2026 5:17:31
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::