Клиент — SaaS для записи на услуги. Интеграции разрослись: 5 webhook от платёжки, CRM, SMS-шлюза — каждый в отдельный скрипт на VPS, логи разрозненны, дубли событий создавали двойные сделки в AmoCRM. Задача: единый webhook-hub на Python — одна точка POST, верификация подписи, идемпотентность, маршрутизация в CRM / Telegram / email по правилам. Audit log всех событий. Реализация: • FastAPI endpoints /webhook/{source} с HMAC-проверкой; • idempotency key (event_id) в Redis — duplicate → 200 без повторной обработки; • rule engine YAML: event type → actions (crm.update, telegram.notify, email.send); • async workers для тяжёлых действий; • PostgreSQL: raw payload, processed_at, error, retry_count; • admin UI (minimal): replay event, disable source, stats; • alert Telegram при error rate > 5%. Стек: Python, FastAPI, Redis, PostgreSQL, AmoCRM API, aiogram, SendGrid, Docker. Приёмка: 1000 replay событий, 0 duplicate CRM deals. Итог: интеграции в одном месте; время добавления нового источника — часы, не недели. NDA: SaaS не публикуется.