Mark Anthony MainaMark Anthony MainaRevOps & Automation Book a free call
Home Services
RevOps & Funnel FixingMarketing AutomationAI Sales AgentsSEOCRO & Landing PagesWebsites that SellAnalytics & Tracking
Work & results How I work About Book a free call
Mark Anthony Maina/Work/AI WhatsApp Sales Agent
Case study · Ecommerce retailer · Nairobi

An AI salesperson that replies in seconds, from the real stock system.

A Nairobi ecommerce retailer sells mostly through WhatsApp. I built an AI sales agent that answers customers in natural Kenyan English from the live Odoo catalogue, captures orders, and knows when to call a human.

Hours→secsfirst response time
24/7coverage without extra staff
2-waycatalogue sync with Odoo
6funnel stages tracked, click to paid
CustomerWhatsApp Evolution APIwebhook Claude agentPHP 8 · MySQL Reply / orderin seconds CatalogueOdoo JSON-RPC n8n schedulerfollow-ups Escalatehuman + alert every chat tagged by sales stage and source · abandoned chats swept on a schedule

The situation

A Nairobi ecommerce retailer sells mostly through WhatsApp. Customers find a product on the website, tap WhatsApp, and ask the same questions: is it in stock, how much, how fast can you deliver? Answering all of that by hand meant slow replies at busy times and none overnight.

What I built

An AI sales agent that answers the store’s WhatsApp in natural Kenyan English, from the live catalogue, and hands over to a human when it should.

CustomerWhatsApp Evolution APIwebhook Claude agentPHP 8 · MySQL Reply / orderin seconds CatalogueOdoo JSON-RPC n8n schedulerfollow-ups Escalatehuman + alert every chat tagged by sales stage and source · abandoned chats swept on a schedule
  • Replies in seconds in the business’s own tone, 24/7
  • Product catalogue synced both ways with Odoo over JSON-RPC: prices, stock, SKUs and images always current
  • Every customer categorised by sales stage, so the team sees who is browsing and who is ready to pay
  • Captures orders and alerts admins instantly
  • Escalates anything it can’t answer to a human, with the full conversation
  • n8n runs scheduled follow-ups and marks abandoned chats for a nudge
  • Ships with a self-diagnosis health page so problems get caught, not discovered by customers

The result

First reply to a WhatsApp enquiryhours → seconds
Human, busy day~3 hoursAI agentseconds
Human figure is a typical 3-hour wait (estimate)

First response went from hours to seconds, and routine questions (price, stock, delivery) are handled without anyone picking up a phone. The team spends its time on the conversations that need a person.

Measuring what it sells

Because every WhatsApp conversation is exportable, this is one of the few funnels where the chat stage is fully measurable. I’ve set it up as a tracked funnel: sessions, WhatsApp clicks, agent conversations, qualified, order intent, paid. Each conversation carries its source, so we can see which pages and campaigns produce paying customers, not just chats.

Stack: PHP 8.1 · MySQL · Evolution API · Claude · n8n · Odoo JSON-RPC.
Contact

Let’s talk about your numbers.

Tell me what you sell and where you think it’s going wrong. I’ll reply within one working day, and the first call is free. If I’m not the right person for it, I’ll tell you who is.

Get a free 20-minute call

No pitch deck. We look at your funnel together and I tell you the first thing I’d fix.

Opens your email app with everything filled in. Nothing is stored on this site.