Inspiration

Sales teams get messages on WhatsApp, HubSpot, email, and more. Conversations and follow-ups get scattered, and deals stall. In markets like Nigeria and Cameroon, WhatsApp drives a lot of sales. We wanted one AI agent that could manage all these channels and keep the pipeline in one place.

What it does

DealPulse is an AI sales agent that: ->Unifies channels — Syncs HubSpot deals and creates deals from WhatsApp, Messenger, and Instagram ->Drafts replies — Airia + Claude generate context-aware, culturally-tailored messages ->Human-in-the-loop — Review and approve messages before sending ->Detects risk — Highlights stalled deals (7+ days) and cold deals (14+ days) ->Tracks activity — Logs agent actions and links them back to HubSpot

How we built it

We built it with Next.js 14 (App Router), Supabase (PostgreSQL), Airia for AI orchestration, Claude for drafting, Twilio for WhatsApp, and HubSpot for CRM. The app runs on Vercel. Flow: incoming WhatsApp message → Twilio webhook → Next.js API → Airia agent (Input Variables: prospectName, channel, research, previousMessages) → draft reply → dashboard approval → Twilio send. Deals stay in one pipeline regardless of channel.

Challenges we ran into

  1. Agent activity not showing — agent_activities inserts used dealId instead of deal_id and failed silently; we fixed the column mapping and error handling.
  2. Webhook calling localhost on Vercel — Without NEXT_PUBLIC_APP_URL, the webhook hit localhost; we now fall back to VERCEL_URL.
  3. Airia “I need more info” — The agent used Input Variables, but we only sent userInput; we updated the payload to send prospectName, channel, research, previousMessages.
  4. Approve & send not working — Errors were not surfaced; we added recipient fallbacks, error handling, and visible error messages in the UI.

Accomplishments that we're proud of

->End-to-end WhatsApp integration with live AI replies ->Single pipeline for HubSpot and messaging channels ->Human-in-the-loop approval for responsible AI usage ->Region-aware replies (e.g. Nigeria, Cameroon) ->Working Airia Input Variables integration ->Deploy-ready app running on Vercel

What we learned

->Airia’s Input Variables API and how to map our context to each variable ->Twilio WhatsApp webhooks (form-urlencoded vs JSON) ->Handling Postgres column naming (snake_case vs camelCase) in serverless ->Debugging webhooks in production (URLs, env vars, error handling)

What's next for DealPulse

->Conversation history — Store past messages and pass them to the agent ->Stage automation — Suggest or move deals based on agent activity ->More channels — Messenger and Instagram webhooks in production ->Analytics — Response time, conversion, and engagement metrics ->Templates — Business-initiated messages outside the 24-hour window

Built With

Share this project:

Updates