007ASANA → TELEGRAMIntegration router
/
CORE STACKNext.js 14React 18FastAPISQLAlchemy 2SQLiteAsana APITelegram Bot APIDocker ComposeNginx● LIVE
007 / ASANA → TELEGRAM ROUTER
A
Asana → TelegramROUTER BY AI—VAI

Asana events —
straight to the right Telegram.

A routing layer between Asana and Telegram: the project selects the route, filters decide what matters, and the bot delivers the event to the right chat.

per-project routes multi-bot event filters
ROUTER / DEMO WORKSPACE● CONNECTED
ASANA PROJECTS
EVENT FILTERS
Product WebsiteRoute #01#release-room
✓
Task completed · Prepare release notesTelegram · just now
01 / PRODUCT

Not one global feed. Independent routes for every team.

Each route stores an Asana project, Telegram bot, Chat ID, active state and its own event filter policy.

ROUTE BUILDER
ACTIVE

Project sync

Projects are synchronized from the Asana API and become sources for routes.

Multiple bots

Different Telegram bots can serve teams, clients and release channels.

Event filters

Creation, comments, completion, due dates and assignees are controlled independently.

Pause without delete

Routes can be disabled and re-enabled without rebuilding the configuration.

02 / EVENT ENGINE

The webhook arrives once. The event engine takes over from there.

The router normalizes the webhook event, applies the route policy and formats the Telegram message.

EVENT TRACEroute #01
01webhook acceptedpass
02signature verifiedpass
03active route loadedpass
04done filter = onpass
05message formattedpass
06delivered → #release-room200 OK
Telegram#release-room
✓Task completed · Prepare release notes

Product Website · Asana

just now · routed by AI—VAI
03 / ARCHITECTURE

Webhook-driven routing with explicit system boundaries.

The frontend manages configuration. FastAPI receives the webhook, verifies its signature, loads route policy from storage and calls the Telegram API.

01
ASANAproject events
02
WEBHOOKsignature verify
03
FASTAPIroute lookup
04
FILTERSevent policy
05
TELEGRAMbot delivery
Asana webhook handshake

Project webhook is created against the public callback URL and initialized with the Asana hook secret.

Signature verification

Inbound webhook requests are verified before any routing work is scheduled.

Background processing

Heavy project/task/story reads and Telegram delivery are moved to a FastAPI background task.

Route persistence

SQLAlchemy models persist projects, routes, bots, settings and webhook state in SQLite.

04 / ENGINEERING STACK

The full product stack — from UI to webhook delivery.

01Next.js 14

admin workspace

02React 18

interactive UI

03Emotion + twin.macro

styling

04FastAPI

routing API

05Pydantic 2

schemas

06SQLAlchemy 2

persistence

07SQLite + aiosqlite

storage

08Asana API

projects + webhooks

09Telegram Bot API

delivery

10Docker Compose

deployment

11Nginx

reverse proxy

05 / SECURITY & DELIVERY

The webhook URL is public. The processing path is not.

Asana signatures are verified before processing; the admin API has separate token verification; payload size is bounded; secrets stay outside the frontend.

Admin authhashed secret / token verify
Webhook authHMAC signature validation
Persistent dataSQLite volume / SQLAlchemy
DeploymentDocker Compose / Nginx
06 / PRODUCT PRINCIPLE

Telegram gets only what deserves a reaction.

Asana remains the source of truth. The router is responsible only for event selection, routing and delivery.

OPEN ROUTER