a Spanish online fitness coach
Dormant Meta leads: a WhatsApp agent for a fitness coach
The problem
The client arrived with a heavy backlog of leads accumulated in Meta Leads Centre. They came from lead-form ad campaigns for boot camps and coaching, spread across several regions in Spain and Latin America. Every campaign added new contacts every day, and the coach read them from his phone whenever he could.
The bottleneck was the reply. Leads went cold in less than a day because nobody wrote back in time. Answering one by one on WhatsApp was not viable: the pace of advertising was ahead of the pace of a single human, and every day the coach was losing most of the opportunities he had already paid for.
There was a second, quieter problem. The coach did not know which market deserved more investment. Some markets gave cheap leads and others gave expensive ones, and that was the only read available. Nobody had looked at real conversion per region yet.
Our approach
We built a WhatsApp AI agent on Twilio that replies to new leads within seconds in the coach’s voice. The agent asks about experience, goal, city and budget, classifies the conversation, routes serious leads to the coach and archives cold ones. Node.js and PostgreSQL on the backend, deployed on Coolify over Hetzner.
On top of the agent we built a custom dashboard in Next.js 15. One screen shows the live agent state, active conversations, the current batch of leads and the funnel moving in real time. Another screen shows the history: the entire pre-agent inbox, cleaned and categorised by campaign and region.
That historical view was what surfaced the important read. One market was converting noticeably better than the other, by several multiples. The coach had been spending as if both markets were equivalent, and the numbers said otherwise. With that read he was able to rebalance ad spend and feed the agent the traffic that actually responded.
The agent did not work on the first try. It took several rounds of iteration: each week we read the real conversations with the coach, marked where the agent sounded forced, where it lost the lead, where it over- or under-qualified, and came back the following week with tighter prompts and a tighter flow. That cycle is what finally set the voice.
Stack



What we learned
Speed of reply matters more than quality of reply, as long as quality clears a minimum bar. A decent message in thirty seconds beats a perfect message the next day. That was the first lesson and the one that moved the funnel the most.
The dashboard ended up mattering more than the agent itself. The agent moved leads, yes, but what actually changed the coach’s business was seeing the difference between markets on a single screen. Without that view nobody would have rebalanced the ad budget, and without the rebalance the agent would have been working against badly allocated traffic.
Iterating in production with the client reading the real conversations beats any plan written up front. The rounds were not a sign of bad initial design, they were the design: each round taught us something about the business we would not have pulled out of a discovery meeting.