Inspiration
The inspiration for Flow came from watching my sister, an enterprise account executive, literally juggle three devices during a single client negotiation. She was on WhatsApp with the CTO (who preferred mobile), Slack with her solutions architect (discussing technical requirements), and her browser researching competitor pricing, all while scrambling to find a previous conversation thread that had critical pricing information.
She lost the deal. The competitor moved faster.
We realized that context-switching isn't just annoying, it's expensive. According to Harvard Business Review, sales professionals spend 2.5 hours per day searching for information across disconnected tools. For enterprise deals worth hundreds of thousands, that friction costs millions.
We built Flow to eliminate that friction: an AI assistant that lives where salespeople already work, remembers everything, and connects dots automatically.
What it does
Flow is an AI-powered sales assistant that helps enterprise account executives win deals by providing contextual intelligence across WhatsApp, Slack, and browser extensions.
Key capabilities:
· WhatsApp Integration: Deal updates, competitor alerts, and next-step recommendations on mobile · Slack Bot: Rich team collaboration with interactive buttons, deal dashboards, and channel intelligence · Browser Extension: Automatically detects competitor site visits, captures context, and suggests actions · HubSpot CRM Sync: Real-time deal data, contact information, and activity tracking · Cross-Platform Memory: Conversations persist across all platforms, start discussing a deal on WhatsApp, continue in Slack with full context · Proactive Alerts: Notifies teams when competitors change pricing, launch features, or when stakeholders show buying signals · Automated Workflows: Generate proposals, schedule meetings, and create battlecards with one click
Example workflow:
- Sarah gets a WhatsApp message from a prospect asking about pricing
- Flow instantly provides deal context, competitor intel from recent browser activity, and suggests talking points
- In Slack, Flow shares an updated battlecard with the deal team
- When Sarah visits CompetitorX's website, Flow offers to generate a competitive analysis
- The team wins the deal, faster, with better intelligence
How we built it
Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ WhatsApp │ │ Orchestrator │ │ Slack │
│ Bot │────▶│ (FastAPI) │◀────│ Bot │
└─────────────────┘ └────────┬─────────┘ └─────────────────┘
│
┌──────▼──────┐
│ Airia │
│ Agent │
└─────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ HubSpot │ │ Browser │ │ Custom │
│ CRM │ │Extension│ │ APIs │
└─────────┘ └─────────┘ └─────────┘
Technology Stack
Component Technology Purpose Backend API Python FastAPI Async request handling, webhook processing, orchestrator AI Orchestration Airia AI Agents Core intelligence, context aggregation, tool execution Database PostgreSQL + Redis Cross-platform state, session caching, rate limiting CRM Integration HubSpot API (Private App) Real-time deal data, contacts, activities WhatsApp Meta WhatsApp Business API Message sending/receiving, media handling Slack Slack Bolt SDK Events, interactive components, rich formatting Browser Extension Vanilla JS, Manifest V3 Page tracking, context menu, popup UI Containerization Docker, docker-compose Development/production parity
Key Technical Components
- Airia Agent Configuration We built a custom Airia agent with a sophisticated system prompt and 8 tools:
Tools:
- get_deal_details: Fetches deal data from HubSpot
- analyze_competitor: Researches competitor moves
- generate_proposal: Creates customized proposals
- schedule_meeting: Books meetings with stakeholders
- notify_team: Sends alerts to Slack/WhatsApp
- track_competitor: Sets up competitor monitoring
- create_workflow: Builds custom API workflows
- summarize_activity: Condenses recent deal activity
- Context Aggregator A Python service that gathers intelligence from all sources before calling Airia:
async def aggregate_context(user_id, platform, message):
return {
"recent_conversations": await get_conversations(user_id),
"active_deals": await get_deals(user_id),
"browser_activity": await get_browser_activity(user_id),
"team_context": await get_group_context(message),
"message": message
}
- Cross-Platform Identity Resolution Mapping users across WhatsApp (phone), Slack (user ID), and browser (extension ID) required a robust system:
CREATE TABLE user_platforms (
user_id UUID,
platform VARCHAR(50),
platform_user_id VARCHAR(255),
metadata JSONB
);
Challenges we ran into
- WhatsApp Business API Approval (3 days lost)
The biggest roadblock was getting our business portfolio verified. The "Oracle69" portfolio wasn't initially verified, blocking token generation. We had to:
· Submit business verification documents · Wait 48 hours for review · Re-generate tokens after verification
Solution: Created a mock WhatsApp handler that simulated responses while waiting, allowing frontend development to continue.
- Cross-Platform Context Normalization
Each platform provided data in completely different formats. WhatsApp sends phone numbers, Slack sends user IDs, browser extensions send URLs with metadata.
Solution: Built a normalization layer that transforms all inputs into a consistent schema before sending to Airia.
- WhatsApp Rate Limiting
WhatsApp has strict limits (80 messages per second per phone number). During testing, we hit limits and got temporarily blocked.
Solution: Implemented a queuing system with Redis and exponential backoff:
async def send_with_backoff(message, max_retries=5):
for attempt in range(max_retries):
try:
return await client.send(message)
except RateLimitError:
await asyncio.sleep(2 ** attempt) # Exponential backoff
- Group Chat Privacy
In WhatsApp groups and Slack channels, not everyone has permission to see sensitive deal data.
Solution: Built a permission-aware response system:
async def handle_group_message(group_id, message, user_id):
deal = await get_group_deal(group_id)
if deal and user_id not in deal.authorized_users:
return public_response("I'll share deal details with authorized team members only.")
- Browser Extension Manifest V3
Chrome's new Manifest V3 changed how extensions work, particularly around background scripts.
Solution: Redesigned using service workers and declarativeNetRequest for competitor domain matching.
- Demo Video Length (4 minutes is tight!)
Condensing all features into 4 minutes was brutal. Our first cut was 8 minutes.
Solution: Scripted a single compelling narrative (the Acme Corp deal) and cut ruthlessly. The final video follows one deal from WhatsApp alert → Slack collaboration → browser research → closed won.
Accomplishments that we're proud of
· Fully functional cross-platform agent in just 20 days—WhatsApp, Slack, and browser extension all working together · Real CRM integration with HubSpot (not mock data)—judges can see live deal updates · Group chat intelligence that respects privacy while providing value · Proactive competitor alerts triggered by browser activity · Permission-aware responses in shared channels · 4-minute demo video that tells a compelling story (not just feature dump) · Published Airia Community agent with 8 custom tools · Successfully navigated WhatsApp Business API approval (not for the faint-hearted!)
What we learned
Technical Lessons
· WhatsApp Business API is powerful but finicky - Permanent tokens through System Users are essential · Airia's tool-calling architecture is brilliant - Started with 3 tools, ended with 8 as we discovered more use cases · PostgreSQL JSONB fields are underrated - Storing platform metadata in JSONB gave us flexibility without migrations · Webhook debugging is its own skill - ngrok and detailed logging saved us countless hours
Product Lessons
· Start with one complete workflow - Focusing on the "Acme Corp deal cycle" made everything clearer · Salespeople need proactive assistance - The most appreciated feature was proactive competitor alerts · Group chats are where deals happen - Supporting WhatsApp groups and Slack channels became essential · Context is everything - The magic isn't in answering questions, but in connecting dots across platforms
What's next for Flow
Immediate Roadmap
· Salesforce integration (beyond HubSpot) · Meeting transcription analysis (Zoom/Teams integration) · Deal health scoring using historical win/loss data · Mobile app (beyond WhatsApp, for richer interactions) · Email integration (Outlook/Gmail)
Future Vision
We envision Flow becoming the operating system for revenue teams—intelligence that flows across the entire sales tech stack:
· CRM (deals, contacts) · Communication (Slack, Teams, WhatsApp) · Email (Outlook, Gmail) · Calendar (meeting intelligence) · Documents (proposals, contracts) · Video calls (transcript analysis)
Market Potential
· TAM: 6.5 million sales professionals in the US alone · ROI: 2+ hours saved per day per salesperson · Enterprise value: Faster deal cycles, higher win rates, better forecast accuracy
Links
· GitHub Repository: github.com/Oracle69digitalmarketing/Flow · Airia Community Agent: airia.ai/community/flow
Built with ❤️ for the Airia AI Agents Hackathon (Track 1: Airia Everywhere)
Built With
- airia
- chrome-extention-api
- docker
- fastapi
- gemini-api
- hubspot-api
- postgresql
- redis
- slack-bot-sdk
- whatsapp-business-api
Log in or sign up for Devpost to join the conversation.