Настройка вебхуков
Настройка вебхуков
Пошаговая настройка вебхуков.
В этом руководстве вы настроите вебхуки для уведомлений от Agent Inbox в реальном времени: аккаунт ngrok, inbox, регистрация вебхука и простой приёмник на Python.
Требования
Перед началом убедитесь, что есть:
- Python 3.8+
- Ключ API Agent Inbox
- менеджер пакетов
pip - базовые навыки Python и терминала
Установка
Шаг 1: Аккаунт ngrok
Ngrok поднимает безопасный туннель с публичного URL на ваш локальный сервер — Agent Inbox сможет слать вебхуки на вашу машину при разработке.
1.1 Регистрация
Зайдите на ngrok.com и зарегистрируйтесь.
1.2 Установка под вашу ОС
После входа ngrok подскажет установку под вашу систему.
На macOS через Homebrew:
Затем авторизация токеном из дашборда ngrok:
Шаг 2: Inbox в Agent Inbox
Нужен ящик для входящей почты. Создайте через API:
client_id гарантирует, что повторный запуск не создаст дубликат — вернётся существующий ящик.
Шаг 3: Регистрация вебхука в Agent Inbox
3.1 Запуск туннеля ngrok
В терминале (порт 3000):
В выводе будет что-то вроде:
Скопируйте Forwarding URL (например https://your-subdomain.ngrok-free.app) — его укажете при регистрации вебхука.
Для просмотра в браузере — localhost
Для проверки страницы приёмника используйте http://127.0.0.1:3000 из строки Web Interface, а не URL ngrok. Ngrok нужен внешним сервисам вроде Agent Inbox.
Почему localhost? Safari строже Chrome/Firefox к dev-серверам через HTTPS-туннель ngrok: блокирует локальные WebSocket и часть скриптов, страница может «крутиться» из-за HMR. Это нормально для разработки. Localhost или статическая сборка обходят проблему.
3.2 Регистрация вебхука
Шаг 4: Пример приёма вебхуков
Файл webhook_receiver.py:
Запуск приёмника
- Ngrok в одном терминале.
- В другом:
- Отправьте тестовое письмо на inbox.
- Смотрите вывод в консоли.
Проверка в браузере
Откройте http://127.0.0.1:3000 — страница статуса.
Проверка настройки
- Письмо на адрес ящика (например
webhook-demo@agentinbox.space). - Консоль приёмника — должны появиться поля события.
Дальше
Расширьте receive_webhook():
- автоответы
- обработка вложений
- маршрутизация по содержимому
- связка с агентами
См. пример событийного агента.
Устранение неполадок
События не приходят
- Ngrok запущен и URL совпадает с зарегистрированным вебхуком
- Flask слушает нужный порт (3000)
- URL вебхука заканчивается на
/webhooks - Ошибки в консоли Flask и в веб-интерфейсе ngrok
Туннель ngrok обрывается
На бесплатном плане сессии ограничены (~2 часа). Перезапустите ngrok и обновите URL вебхука в Agent Inbox.
Порт занят
Выберите другой порт:
- в
app.run(port=XXXX) - в команде:
ngrok http XXXX
Скопировать в Cursor / Claude
Продакшен
- Отдельный сервер: облако (AWS, GCP, Heroku и т.д.), не ngrok.
- Проверка подписи:проверяйте запросы.
- Ошибки и ретраи: логирование, алерты.
- Асинхронность: сразу
200, тяжёлую работу — в фон. - Догрузка через API: тело вебхука ограничено 1 МБ; при превышении поля
text/htmlмогут быть опущены. Полное письмо — через Get Message. Подробнее: лимит размера полезной нагрузки. - Мониторинг: логи и алерты по сбоям доставки.
