Интеграции: вебхуки и Google Таблицы
На этой странице
Интеграции в меню сайта передают то, что происходит на сайте, в другие инструменты в тот же момент:
- Вебхуки отправляют новые заявки, новых подписчиков и оплаченные заказы в любое приложение, которое их принимает: Zapier, Make, n8n, Pabbly, вашу CRM или ваш собственный сервер.
- Google Таблицы добавляют каждую новую заявку строкой в таблицу, без подключения аккаунта Google к Closer.
У каждого сайта свои интеграции. На один сайт можно добавить до 5 адресов (вебхуки и таблицы вместе).
Вебхуки
Вебхук — это адрес (URL), который Closer вызывает с данными о событии. Большинство сервисов автоматизации дают такой адрес: в Zapier это триггер Webhooks by Zapier → Catch Hook, в Make — модуль Webhooks → Custom webhook, в n8n — узел Webhook.
Добавить вебхук
- Откройте Интеграции.
- Вставьте адрес в поле Адрес вебхука. Он должен начинаться с
https://. - Отметьте нужные события:
- Новая заявка: посетитель отправил контактную форму (или квиз с формой).
- Новый подписчик: кто-то подписался через форму рассылки.
- Новый заказ: заказ в вашем магазине оплачен.
- Нажмите Добавить вебхук.
- Closer один раз показывает секрет подписи (
whsec_…). Скопируйте его и сохраните в принимающем приложении, если хотите проверять, что запросы действительно приходят от Closer. Если вы его потеряли, нажмите Новый секрет; старый сразу перестанет работать. - Нажмите Отправить тест. Принимающее приложение получит пробное событие (с
"test": true), а результат появится в Журнале доставки.
Позже можно включать и выключать события, нажимая на них, приостановить вебхук переключателем или Убрать его.
В целях безопасности Closer обращается только к публичным интернет-адресам. Адреса в частных или внутренних сетях (например,
localhost,10.x.x.x,192.168.x.x) отклоняются.
Что отправляет Closer
Каждый запрос — это POST с телом в формате JSON:
{
"id": "1f6c2a9e-…",
"event": "inquiry.created",
"created_at": "2026-10-22T09:30:00+00:00",
"test": false,
"site": { "id": 12, "name": "My site", "url": "https://mysite.closer.li" },
"data": { … }
}
event — это inquiry.created, subscriber.created или order.paid. Что содержится в data:
| Событие | Поля в data |
|---|---|
inquiry.created |
id, created_at, language, page (откуда отправлена форма, напр. /contact), name, email, fields (список key, label, value для каждого поля формы), quiz (ответы и результат или null) |
subscriber.created |
id, email, name, language, source (форма), created_at |
order.paid |
id, code, email, name, language, items (id, name, price), subtotal, discount, coupon_code, total, currency, mode (test, live или free), paid_at |
Суммы указаны в центах (минимальных единицах валюты): 4500 при "currency": "EUR" означает 45,00 €.
Заголовки, которые отправляются с каждым запросом:
X-Closer-Event: название события.X-Closer-Delivery: уникальный id события. Повторные попытки того же события сохраняют этот id, поэтому дубликаты можно игнорировать.X-Closer-Signature:t=1761125400,v1=5d41…, гдеt— время отправки (секунды Unix), аv1— HMAC-SHA256 отt + "." + исходное тело, вычисленный с вашим секретом подписи.
Чтобы проверить запрос, вычислите такой же HMAC со своим секретом и сравните его с v1, а запросы, у которых t старше нескольких минут, отклоняйте. На PHP:
[$t, $v1] = sscanf($_SERVER['HTTP_X_CLOSER_SIGNATURE'], 't=%d,v1=%s');
$body = file_get_contents('php://input');
$valid = hash_equals(hash_hmac('sha256', $t.'.'.$body, $secret), $v1) && abs(time() - $t) < 300;
Повторные попытки и журнал доставки
Принимающий адрес должен ответить статусом 2xx в течение 15 секунд. Если этого не произошло (ошибка, тайм-аут, 500), Closer пробует ещё два раза: примерно через 30 секунд и примерно через 5 минут. Перенаправления не выполняются, поэтому указывайте конечный адрес.
Журнал доставки показывает последние 50 запросов сайта: время, событие, адрес, номер попытки (1/3, 2/3, 3/3), код статуса, которым ответил адрес, и ошибку, если она была.
Google Таблицы
Каждая новая заявка становится строкой в Google Таблице: Дата, Страница, Имя, Email, затем по столбцу на каждое другое поле формы (по его названию). Для новых полей автоматически появляются новые столбцы. Всё работает через небольшой скрипт Google Apps Script, который вы добавляете в свою таблицу, поэтому Closer никогда не нужен доступ к вашему аккаунту Google.
Настройка (около 3 минут)
- Создайте новую таблицу в Google Таблицах (быстрее всего открыть
sheets.new). Заявки попадают на её первый лист. - В таблице откройте Расширения → Apps Script (Extensions → Apps Script).
- Удалите пример кода в редакторе. В Closer в разделе Google Таблицы нажмите Скопировать скрипт и вставьте его в редактор Apps Script. Нажмите Сохранить (значок дискеты).
- Нажмите Начать развертывание → Новое развертывание (Deploy → New deployment). Нажмите на шестерёнку рядом с Выберите тип (Select type) и выберите Веб-приложение (Web app). Укажите:
- Запуск от имени (Execute as): От моего имени (Me)
- У кого есть доступ (Who has access): Все (Anyone)
- Нажмите Развернуть (Deploy). Google попросит предоставить доступ скрипту: выберите свой аккаунт. Если появится «Приложение не проверено Google», нажмите Дополнительные настройки → Перейти на страницу (ваш проект) (Advanced → Go to …) и Разрешить (Allow). Это ваш собственный скрипт, работающий в вашем аккаунте.
- Скопируйте URL веб-приложения (Web app URL). Он выглядит так:
https://script.google.com/macros/s/…/exec. - В Closer вставьте его в поле URL веб-приложения и нажмите Подключить. Closer сразу отправит тестовую строку; проверьте, что она появилась в таблице (её можно удалить).
Кнопкой Отправить тестовую строку можно в любой момент проверить подключение. Переключатель приостанавливает таблицу, а кнопка с корзиной отключает её.
Держите URL веб-приложения в секрете: любой, у кого он есть, может добавлять строки в эту таблицу. Если он утёк, создайте новое развертывание в Apps Script и подключите новый URL.
Полезно знать
- В таблицу попадают только заявки. Для подписчиков и заказов используйте вебхук (например, в Zapier или Make — они тоже умеют записывать в Google Таблицы).
- Если позже вы измените скрипт, используйте Начать развертывание → Управление развертываниями → Изменить → Новая версия (Deploy → Manage deployments → Edit → New version), чтобы URL остался прежним.
- Текст, который начинается как формула (
=,+,-,@), записывается как обычный текст, поэтому данные из формы не могут запустить формулу в вашей таблице. - Каждая строка добавляется в момент поступления заявки. Неудачные попытки повторяются так же, как у вебхуков, и отображаются в Журнале доставки.
- Заявки сверх месячного лимита вашего тарифа сохраняются во Входящих, но не передаются в интеграции.
Не нашли ответ?
Напишите нам, и мы ответим в течение одного рабочего дня.