Project · 2025
FlowBot
WhatsApp automation you draw instead of code

Small businesses draw their WhatsApp bot on a canvas: triggers, messages, conditions, loops, API calls, LLM agents. I wrote the engine that runs those drawings as real conversations, including the parts where the bot waits for a customer for three days and then picks up exactly where it stopped.
What's interesting about it
- Resumable graph executor: a run can pause on a node waiting for a reply, persist its state and resume on the next webhook, with a per-execution lock so two incoming messages can't race the same run.
- For-each loops fork child executions with their own variable scope; the parent completes when the last child does.
- Every node has a token cost, deducted atomically against the business's plan in one database call.
- LLM agents with RAG (Qdrant), conversation memory and Composio tools across OpenAI, Gemini, Anthropic and Groq behind one adapter.
- Real-time voice agent for WhatsApp Business calls (Pipecat: VAD, speech-to-text, LLM with tools, text-to-speech), plus voice notes via Whisper.
- Two transports: the official WhatsApp Cloud API and a self-hosted gateway for numbers that aren't on it.