Как получать данные от сторонних сервисов — создаем вебхук с помощью 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) ;}Кроме рассмотренных выше примеров, этот подход можно применять для решения других задач, когда необходимо получить данные от внешних сервисов при наступлении определенного события.
Хотите узнать больше о решениях для бизнес-процессов? Подписывайтесь на нашу рассылку:
Истории бизнеса и полезные фишкиКомментарии:
Раскрутить телеграм-канал с нуля до тысячи — реально. Раскрываем пошаговый алгоритм и даем рекомендации для SMM-специалистов....
03 09 2026 22:51:50
Список курсов, книг, каналов и пабликов для работы с данными...
02 09 2026 3:36:55
Как раскрутить виртуальный магазин женской одежды. Подробно рассказываем, что делали и чего достигли...
01 09 2026 16:52:25
Лучшие плагины WordPress для SEO и продвижения сайта в поисковой системе Google и 10 советов для WordPress, которые помогут вам продвигать свой сайт...
31 08 2026 9:53:22
Здесь не нужно часами собирать семантику, прописывать уйму расширений и создавать максимально релевантные объявления под каждый товар, а потому вам нужен этот понятный и короткий мануал! Читайте дальше!...
30 08 2026 11:40:35
Как надолго завоевать доверие покупателя с помощью грамотного email-маркетинга? Примеры обращений к клиенту в рассылках, текст писем для привлечения и благодарности за покупку....
29 08 2026 11:14:39
кмс Google: как достичь поставленной цели с помощью рекламы? Делимся советам по настройке КМС-кампаний....
28 08 2026 12:32:33
Чек-лист для РРС-специалистов. Всегда быстрее учиться на опыте других людей, а не набивать шишки самостоятельно. А также советы, как исправить рекламные кампании. Обо всем читайте в этой статье!...
27 08 2026 1:10:29
5 примеров маркетингового троллинга. Сатира, ирония, пародия — все эти приемы в рекламе помогают брендам выделиться среди конкурентов. Если их правильно использовать, конечно, это отличный способ привлечь клиентов и создать запоминающийся образ бренда...
26 08 2026 5:22:54
Тематический кейс в нише «Фотография и аксессуары»: проделанные работы и полученные результаты...
25 08 2026 10:32:41
Кейсы с наибольшим количеством комментариев, репостов, оценок и дочитываний; по контекстной рекламе, поисковому продвижению, аналитике, SMM и другие. Узнать больше!...
24 08 2026 0:12:53
Поисковая реклама для службы доставки еды — пpaктические советы, как выделиться на фоне конкурентов в популярной нише. На примере харьковской доставки пиццы мы покажем, как правильно продавать еду. Читайте в статье!...
23 08 2026 21:27:56
Одно из фундаментальных обновлений Universal ***ytics...
22 08 2026 13:30:19
Давайте больше не будем сливать бюджет, выбирая неправильный параметр....
21 08 2026 17:16:29
88% времени в телефоне люди проводят в приложениях. Рассказываем, как их можно создавать без написания кода....
20 08 2026 18:58:11
Виктория Игнатьева опубликовала новый кейс по продвижению интернет-магазина детской одежды, обуви и товаров: ROMI (возврат маркетинговых инвестиций) 319%....
19 08 2026 12:10:33
Видеомаркетинг должен стать обязательной частью рекламной онлайн-стратегии, и мы собрали несколько подтверждений этому в нашей инфографике....
18 08 2026 4:43:38
Основатель сервиса мобилографии EyeEm Рамзи Ризк рассказал об особенностях своего сервиса и будущем мобильных приложений....
17 08 2026 22:36:54
Данные по 33,5 миллионов кликов в 26 тематиках и 394 городах...
16 08 2026 16:50:47
Каким правилам нужно следовать, чтобы создать эффективный рекламный ролик?...
15 08 2026 4:34:53
Пишите стоимость товара под постами. Но это не универсальный совет. Если ваша ниша с длинным циклом продаж, можно сделать исключение. Что ещё нужно знать про ответ в директ? Узнать!...
14 08 2026 4:43:27
Расскажем про ошибки интернет-магазинов, которые трудно найти соответствующими программами и сервисами проверки...
13 08 2026 22:46:48
Опрос экспертов. Как правильно искать подрядчиков, которые станут партнерами для вашего бизнеса? Как долго работать с партнерами и не испортить отношения? На что обращать внимание в первую очередь, а на что можно закрыть глаза?...
12 08 2026 4:32:19
Подробно рассказываем, как создать, внедрить и проверить XML-карту сайта....
11 08 2026 19:55:32
Всё о крупной рыбе украинского интернет-маркетинга: компании, люди, кейсы в интервью с основателем Артёмом Бородатюком....
10 08 2026 21:51:41
Подборка ненаучных наблюдений и ситуаций, в которых бывал каждый из нас...
09 08 2026 12:53:18
Бренду нужно зайти на Фейсбук? Несколько очень полезных советов об измерении эффективности SMM....
08 08 2026 6:59:20
Часто в распоряжении клиента только интерфейс конструктора сайтов, весьма ограниченный в функциональности. Тогда на помощь интернет-маркетологу приходит сервис Tag Manager, благодаря которому можно настроить необходимый код расширенной электронной торговли....
07 08 2026 14:34:47
Почти 3 миллиона клика в 24 тематиках в 15 городах Казахстана. Читайте новое исследование нашего аналитика....
06 08 2026 11:23:24
Советы специалистов по продвижению интернет-магазинов в сверхконкурентной нише одежды и обуви...
05 08 2026 1:46:44
Рассказываем, как комaнда Netpeak работала над ростом органики и повышением видимости приоритетных страниц сайта по релевантной семантике....
04 08 2026 6:13:44
Рост дохода в шесть раз, ROMI +500% за пять месяцев....
03 08 2026 13:35:57
Подробно об оплате аккаунтов и налогообложении рекламы в Украине, России, Казахстане....
02 08 2026 10:11:34
Личный опыт экс-главреда экс-блога Netpeak (сейчас — Netpeak Journal): о работе с информацией, мотивации написания, редактуре черновика, подаче информации по степени важности, выделении главного и составлении окончательной версии текста. Как сделать текст логичным и полезным? Узнайте!...
01 08 2026 15:33:58
Зачем нужны пользовательские сегменты клиентов и как их создавать — читайте в завершающей части серии «Как анализировать эффективность рекламы в Google ***ytics?»...
31 07 2026 20:49:55
Как найти релевантный сайт-донор для размещения своей ссылки...
30 07 2026 16:38:39
Проверяем, есть ли разница в ранжировании при наличии/отсутствии этих слов в метаданных. Эксперимент....
29 07 2026 6:11:43
Если хотите, чтобы кампании в контекстно-медийной сети работали эффективно, следует очистить площадки и ввести это в привычку...
28 07 2026 11:56:52
Чтобы перенаправить рекламу не на свой домен, арбитражники используют редирект в Яндексе при работе с партнерскими ссылками...
27 07 2026 23:40:14
Как правильно распределить рекламный бюджет? Читайте топ-50 самых дорогих ключевых слов Google Рекламы в Казахстане по версии Serpstat...
26 07 2026 11:40:43
Советы для фрилансеров и удаленных сотрудников: как строить рабочий процесс так, чтобы он вел к максимальной эффективности. О работе со временем, перерывами, необходимости выключать уведомления, статусе задач, празднованиях побед и организации рабочей среды...
25 07 2026 12:47:51
Правила, законы, платное и бесплатное продвижение в Telegram...
24 07 2026 16:35:33
В статье коротко о способах объединения данных из разных источников для создания отчётов...
23 07 2026 7:26:29
Самые популярные блоги Рунета по интернет-маркетингу — все RSS-фиды в одном месте...
22 07 2026 21:55:41
Первое подробное руководство по работе с оконными функциями в Google BigQuery....
21 07 2026 13:43:15
Контекстная реклама и ее эффективность: как долго длится, как измерить, что бывает, как заканчиваются деньги....
20 07 2026 16:11:25
Новости агентства Netpeak за предыдущий квартал. Появление отдела веб-аналитики. Открыли услугу «Создание и ведение блогов». Добавили мультивалютность. Глобально изменили скрипт Netpeak X-Reference. Запустили серию писем. Что еще?...
19 07 2026 13:59:57
Алексей Селезнев проанализировал более 7 миллионов кликов и посчитал, во сколько обходятся рекламодателям клики по объявлениям в разных странах и тематиках....
18 07 2026 2:59:25
Какие типы кампаний и ключевых слов стоит первыми запускать в Google Рекламе? Советы новичкам...
17 07 2026 13:25:49
Один из лучших способов выбрать подрядчика — провести брифинг для компаний. При этом важно предоставить максимум информации: откройте доступ к реальным данным по проекту. Узнать больше!...
16 07 2026 0:26:50
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::