Интеграции

Настройка Webhooks

Получайте события кликов и сканирований QR-кодов в реальном времени — подключайте Slack, Notion, Zapier или свой бэкенд за 3 минуты.

Как это работает

LinkForge отправляет HTTPS POST-запросы на ваш endpoint каждый раз, когда происходит событие — клик по сокращённой ссылке, сканирование QR-кода или достижение порога кликов. Вы получаете JSON-пейлоад с метаданными и можете обрабатывать его в своей системе без опроса API.

Каждый запрос содержит заголовок X-LinkForge-Signature для верификации источника. Неподписанные запросы отбрасываются. Если ваш сервер отвечает кодом 2xx, событие считается доставленным. При 4xx/5xx LinkForge повторяет отправку до 5 раз с экспоненциальной задержкой (30 с, 2 мин, 10 мин, 30 мин, 2 ч), после чего записывает ошибку в лог и помечает webhook как degraded.

Типичный кейс: команда роста SaaS-стартапа FlowMetrics использует webhook для мгновенной отправки данных о кликах в ClickHouse, где строит воронку конверсии от email-рассылки до регистрации. Задержка между кликом и появлением записи в базе — менее 200 мс.

Доступные события

Выберите события, которые хотите получать. Каждое событие содержит уникальный тип в поле event и стандартный набор полей: link_id, timestamp, referer, user_agent, ip_geo.

link.click

Отправляется при каждом переходе по сокращённой ссылке. Пейлоад включает original_url, redirect_type (301/302/307), device (mobile/desktop/tablet), browser и city. Пример: клик по lf.lt/q4promo из Gmail на iPhone 15 Pro.

qr.scan

Отправляется при сканировании QR-кода, привязанного к ссылке. Дополнительно содержит qr_code_id, print_batch (если QR был частью печатной серии) и camera_app (Apple Camera, Google Lens, WeChat). Используется для трекинга офлайн-кампаний.

link.threshold

Отправляется, когда ссылка достигает заданного порога кликов (10, 100, 1 000, 10 000, 100 000). Полезно для алертов: «Ваш промо-ссылка набрала 1 000 переходов за 2 часа». Содержит threshold_value и total_clicks.

link.expired

Отправляется в момент истечения срока жизни ссылки. Содержит expired_at и final_click_count. Используйте для автоматического архивирования отчётов или уведомления клиентов через email.

Пошаговая настройка

Добавьте webhook через Dashboard → Интеграции → Webhooks. Вам понадобится публичный HTTPS-адрес и секретный ключ для подписи.

Шаг 1: Подготовьте endpoint

Создайте публичный HTTPS-маршрут, принимающий POST-запросы. Пример на Express.js:

POST /webhooks/linkforge — эндпоинт должен отвечать 200 OK в течение 5 секунд. Тело запроса — JSON с полями event, link_id, data, timestamp.

Шаг 2: Введите URL и секрет

В форме настройки укажите:

Webhook URL: https://api.yourapp.com/webhooks/linkforge

Secret: сгенерируйте строку из 32 символов (например, lf_wh_8f3a9c2e1d7b4f6a0e5c8d3b9a7f2e1c). Этот секрет используется для HMAC-SHA256 подписи каждого запроса.

Выберите события из списка: link.click, qr.scan, link.threshold, link.expired. Можно выбрать все или только нужные.

Шаг 3: Валидация подписи

Каждый запрос содержит заголовок X-LinkForge-Signature: sha256=<hex>. Вычислите HMAC-SHA256 от тела запроса с вашим секретом и сравните с полученным значением.

Пример на Python:

import hmac, hashlib
digest = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
assert hmac.compare_digest(digest, signature)

Никогда не обрабатывайте запрос без верификации подписи — это защита от подделки событий.

Шаг 4: Тест и мониторинг

Нажмите кнопку Отправить тестовый webhook — LinkForge отправит запрос с событием link.click и фиктивным ID lf_test_001. Проверьте логи вашего сервера.

После активации отслеживайте доставку в Dashboard: видно количество успешных доставок, ошибок и время последнего события. При 3+ подряд ошибках webhook помечается жёлтым, при 5+ — красным и приостанавливается.

Лог ошибок доступен в разделе «История доставок»: каждый провал содержит HTTP-статус, тело ответа от вашего сервера и timestamp. Это ускоряет отладку — в 90% случаев проблема в SSL-сертификате или отсутствии CORS.

Рекомендации по безопасности

• Используйте уникальный secret для каждого webhook — не переиспользуйте ключи между проектами.

• Ограничивайте доступ к endpoint по IP: LinkForge отправляет запросы из диапазонов 185.199.108.0/24 и 185.199.109.0/24.

• Не храните секреты в клиентском JavaScript — проверять подпись нужно на сервере.

• Включите rate limiting на endpoint: при вирусной ссылке возможны всплески до 500 событий/сек.

Добавить webhook Документация API
``` Wait, I need to remove the code block markers and just output raw HTML. Also, I used an inline style `style="margin-top: 2rem;"` — the instructions say not to invent new classes but don't explicitly forbid inline styles. However, to be safe, I should avoid inline styles since the instruction says "Use ONLY the site's existing CSS classes" — inline styles aren't classes but they're also not part of the design system. Let me remove them and rely on the existing layout. Also, I need to make sure I don't use `` tags if they're not part of the allowed classes. The instructions list specific classes but don't say I can't use standard HTML elements like ``, ``, ``, etc. Those are standard HTML, not CSS classes. I'll keep them. Let me clean up and output properly.
Интеграции

Настройка Webhooks

Получайте события кликов и сканирований QR-кодов в реальном времени — подключайте Slack, Notion, Zapier или свой бэкенд за 3 минуты.

Как это работает

LinkForge отправляет HTTPS POST-запросы на ваш endpoint каждый раз, когда происходит событие — клик по сокращённой ссылке, сканирование QR-кода или достижение порога кликов. Вы получаете JSON-пейлоад с метаданными и можете обрабатывать его в своей системе без опроса API.

Каждый запрос содержит заголовок X-LinkForge-Signature для верификации источника. Неподписанные запросы отбрасываются. Если ваш сервер отвечает кодом 2xx, событие считается доставленным. При 4xx/5xx LinkForge повторяет отправку до 5 раз с экспоненциальной задержкой (30 с, 2 мин, 10 мин, 30 мин, 2 ч), после чего записывает ошибку в лог и помечает webhook как degraded.

Типичный кейс: команда роста SaaS-стартапа FlowMetrics использует webhook для мгновенной отправки данных о кликах в ClickHouse, где строит воронку конверсии от email-рассылки до регистрации. Задержка между кликом и появлением записи в базе — менее 200 мс.

Доступные события

Выберите события, которые хотите получать. Каждое событие содержит уникальный тип в поле event и стандартный набор полей: link_id, timestamp, referer, user_agent, ip_geo.

link.click

Отправляется при каждом переходе по сокращённой ссылке. Пейлоад включает original_url, redirect_type (301 / 302 / 307), device (mobile / desktop / tablet), browser и city. Пример: клик по lf.lt/q4promo из Gmail на iPhone 15 Pro.

qr.scan

Отправляется при сканировании QR-кода, привязанного к ссылке. Дополнительно содержит qr_code_id, print_batch (если QR был частью печатной серии) и camera_app (Apple Camera, Google Lens, WeChat). Используется для трекинга офлайн-кампаний.

link.threshold

Отправляется, когда ссылка достигает заданного порога кликов (10, 100, 1 000, 10 000, 100 000). Полезно для алертов: «Ваш промо-ссылка набрала 1 000 переходов за 2 часа». Содержит threshold_value и total_clicks.

link.expired

Отправляется в момент истечения срока жизни ссылки. Содержит expired_at и final_click_count. Используйте для автоматического архивирования отчётов или уведомления клиентов через email.

Пошаговая настройка

Добавьте webhook через Dashboard → Интеграции → Webhooks. Вам понадобится публичный HTTPS-адрес и секретный ключ для подписи.

Шаг 1: Подготовьте endpoint

Создайте публичный HTTPS-маршрут, принимающий POST-запросы. Тело запроса — JSON с полями event, link_id, data, timestamp. Эндпоинт должен отвечать 200 OK в течение 5 секунд.

Шаг 2: Введите URL и секрет

Webhook URL: https://api.yourapp.com/webhooks/linkforge

Secret: сгенерируйте строку из 32 символов (например, lf_wh_8f3a9c2e1d7b4f6a0e5c8d3b9a7f2e1c). Этот секрет используется для HMAC-SHA256 подписи каждого запроса.

Выберите события из списка: link.click, qr.scan, link.threshold, link.expired. Можно выбрать все или только нужные.

Шаг 3: Валидация подписи

Каждый запрос содержит заголовок X-LinkForge-Signature: sha256=<hex>. Вычислите HMAC-SHA256 от тела запроса с вашим секретом и сравните с полученным значением.

Пример на Python:

import hmac, hashlib
digest = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
assert hmac.compare_digest(digest, signature)

Никогда не обрабатывайте запрос без верификации подписи — это защита от подделки событий.

Шаг 4: Тест и мониторинг

Нажмите кнопку Отправить тестовый webhook — LinkForge отправит запрос с событием link.click и фиктивным ID lf_test_001. Проверьте логи вашего сервера.

После активации отслеживайте доставку в Dashboard: видно количество успешных доставок, ошибок и время последнего события. При 3+ подряд ошибках webhook помечается жёлтым, при 5+ — красным и приостанавливается.

Лог ошибок доступен в разделе «История доставок»: каждый провал содержит HTTP-статус, тело ответа от вашего сервера и timestamp. Это ускоряет отладку — в 90% случаев проблема в SSL-сертификате или отсутствии CORS.

Рекомендации по безопасности

• Используйте уникальный secret для каждого webhook — не переиспользуйте ключи между проектами.

• Ограничивайте доступ к endpoint по IP: LinkForge отправляет запросы из диапазонов 185.199.108.0/24 и 185.199.109.0/24.

• Не храните секреты в клиентском JavaScript — проверять подпись нужно на сервере.

• Включите rate limiting на endpoint: при вирусной ссылке возможны всплески до 500 событий/сек.