События Asana —
сразу в нужный Telegram.
Routing layer между Asana и Telegram: проект определяет маршрут, фильтр решает что важно, бот доставляет событие в нужный чат.
Не один глобальный поток. Независимые маршруты для каждой команды.
Каждый маршрут хранит проект Asana, Telegram-бота, Chat ID, состояние активности и собственный набор event filters.
Синхронизация проектов
Проекты загружаются из Asana API и становятся источниками для новых маршрутов.
Несколько ботов
Разные Telegram-боты можно назначать командам, клиентам и релизным каналам.
Фильтры событий
Создание, комментарии, завершение, сроки и назначения включаются независимо.
Pause без удаления
Маршрут можно отключить и вернуть без повторной настройки webhook и Chat ID.
Webhook приходит один раз. Дальше работает event engine.
Роутер нормализует webhook event, применяет policy конкретного маршрута и формирует Telegram-сообщение.
Product Website · Asana
Webhook-driven routing с явной границей ответственности.
Frontend управляет конфигурацией. FastAPI принимает webhook, проверяет подпись, читает route policy из storage и вызывает Telegram API.
Project webhook is created against the public callback URL and initialized with the Asana hook secret.
Inbound webhook requests are verified before any routing work is scheduled.
Heavy project/task/story reads and Telegram delivery are moved to a FastAPI background task.
SQLAlchemy models persist projects, routes, bots, settings and webhook state in SQLite.
Полный стек продукта — от UI до webhook delivery.
admin workspace
interactive UI
styling
routing API
schemas
persistence
storage
projects + webhooks
delivery
deployment
reverse proxy
Webhook URL открыт миру. Логика обработки — нет.
Подпись Asana проверяется до обработки; admin API защищён отдельным токеном; payload ограничивается по размеру; секреты живут вне frontend.
Telegram получает только то, на что нужно реагировать.
Asana остаётся источником истины. Router отвечает только за выбор события, маршрута и канала доставки.
OPEN ROUTER