How to Build a WhatsApp Bot Business in 3 Days
Monetize8 min read·April 18, 2026·--

How to Build a WhatsApp Bot Business in 3 Days

A step-by-step guide to creating and selling WhatsApp automation bots for African SMEs — with real cost breakdowns and client acquisition strategies.

@
@kivorablog
April 18, 2026
Share

The 3-Day Sprint


Most people overthink starting a WhatsApp bot business. They research for weeks, compare platforms, watch tutorials, and never ship. This guide is the antidote: a focused 3-day sprint that gets you from zero to a deployable bot with a paying client pipeline.


Day 1: Pick your niche and set up the stack.

Day 2: Build and deploy a working bot.

Day 3: Get your first client.


No fluff. Let's go.




Day 1: Pick a Niche and Set Up


Choose One Industry


Don't build a "general purpose" bot. Pick one vertical and own it. Here are the easiest entry points in African markets:


NicheWhy It WorksAvg Monthly Fee
RestaurantsHigh message volume, simple FAQ patterns₦40,000 – ₦80,000
Clinics & pharmaciesAppointment scheduling, drug availability queries₦50,000 – ₦100,000
Real estateLead qualification, property listings₦60,000 – ₦120,000
Hair salons & barbersAppointment booking, price lists₦30,000 – ₦60,000
Online storesOrder tracking, delivery updates₦50,000 – ₦90,000

Recommendation for Day 1: Pick restaurants. Everyone eats. Every restaurant gets the same 10 questions. The bot writes itself.


Set Up Your Stack (30 Minutes)


ToolPurposeCost
Meta Business ManagerWhatsApp Business API accessFree
Node.js + ExpressBot serverFree
Railway.appHostingFree ($5 credit/month)
SupabaseDatabase for sessions/configFree
Ngrok (dev only)Tunnel localhost to internetFree

mkdir wa-bot-sprint && cd wa-bot-sprint
npm init -y
npm install express dotenv axios

Create .env:


PORT=3000
VERIFY_TOKEN=my_webhook_verify_token
WA_PHONE_NUMBER_ID=your_phone_number_id
WA_ACCESS_TOKEN=your_access_token

Get your credentials from business.facebook.com → WhatsApp → API Setup.




Day 2: Build and Deploy


The Core Webhook


Meta's WhatsApp Cloud API sends messages to your webhook. Here's the minimum viable bot:


// server.js
require('dotenv').config()
const express = require('express')
const axios   = require('axios')
const app     = express()

app.use(express.json())

// Meta verification endpoint
app.get('/webhook', (req, res) => {
  const mode = req.query['hub.mode']
  const token = req.query['hub.verify_token']
  const challenge = req.query['hub.challenge']

  if (mode === 'subscribe' && token === process.env.VERIFY_TOKEN) {
    res.status(200).send(challenge)
  } else {
    res.sendStatus(403)
  }
})

// Message handler
const FAQ = {
  menu: {
    triggers: ['menu', 'food', 'what do you have', '1'],
    reply: '🍽️ *Our Menu*

*Main*
Jollof Rice + Chicken — ₦4,500
Fried Rice + Fish — ₦4,000
Pepper Soup — ₦5,000

*Drinks*
Fresh Juice — ₦1,500
Soft Drinks — ₦500

Reply *ORDER* to order or *HOURS* for opening times.'
  },
  hours: {
    triggers: ['hours', 'open', 'time', '2'],
    reply: '⏰ *Opening Hours*

Mon–Sat: 11am–10pm
Sun: 12pm–9pm

14 Awolowo Road, Ikoyi, Lagos.

Reply *MENU* to see our menu.'
  },
  order: {
    triggers: ['order', '3'],
    reply: 'To place an order, please send:
1. Your name
2. Your order items
3. Delivery address

We will confirm within 10 minutes! 🚀'
  }
}

app.post('/webhook', async (req, res) => {
  const data = req.body

  if (data.object !== 'whatsapp_business_account') {
    return res.sendStatus(404)
  }

  for (const entry of data.entry || []) {
    for (const change of entry.changes || []) {
      const messages = change.value?.messages
      if (!messages) continue

      for (const msg of messages) {
        if (msg.type !== 'text') continue

        const from = msg.from
        const text = msg.text.body.toLowerCase().trim()

        // Match FAQ
        let reply = 'Hello! 👋 How can I help?

*1* or MENU — View menu
*2* or HOURS — Opening times
*3* or ORDER — Place order'

        for (const [key, faq] of Object.entries(FAQ)) {
          if (faq.triggers.some(t => text.includes(t))) {
            reply = faq.reply
            break
          }
        }

        // Send reply
        await axios.post(
          `https://graph.facebook.com/v19.0/${process.env.WA_PHONE_NUMBER_ID}/messages`,
          {
            messaging_product: 'whatsapp',
            to: from,
            type: 'text',
            text: { body: reply }
          },
          {
            headers: {
              Authorization: `Bearer ${process.env.WA_ACCESS_TOKEN}`,
              'Content-Type': 'application/json'
            }
          }
        )
      }
    }
  }

  res.sendStatus(200)
})

app.listen(process.env.PORT, () => console.log('Bot live!'))

Deploy to Railway


npm install -g @railway/cli
railway login
railway init
railway up

Set your environment variables in Railway dashboard, then update the webhook URL in Meta Business Manager to point to https://your-app.railway.app/webhook.




Day 3: Get Your First Client


The Walk-In Method


Walk into 5 restaurants today. Ask one question: "How many WhatsApp messages do you get per day?"


When they say 30–100 (they always do), say: "I built something that answers those automatically. Can I show you?"


Message your bot from their phone. Let them see it respond instantly. That demo closes.


The DM Method


Hi [Name], I noticed [Restaurant] uses WhatsApp for
orders. I built an auto-responder that handles menu
queries, orders, and hours — 24/7. It's already running.
Can I show you a 30-second demo?

Pricing for First Client


ApproachPriceWhy
Free trial + paid₦0 for 7 days, then ₦50,000/monthReduces risk for them
Discount launch₦30,000/month (first 3 months)Gets a case study fast
Standard₦60,000/month with 3-month minimumProfessional from day one

Our recommendation: Use the free trial approach. A working demo that the owner has already tested is the easiest sale you will ever make.




Real Cost Breakdown


ItemMonthly Cost (NGN)Monthly Cost (USD)
Railway hosting₦0 – ₦8,000$0 – $5
WhatsApp API messages (500 convos/day)₦15,000 – ₦45,000$10 – $30
Supabase (free tier)₦0$0
Domain (optional)₦1,500$1
**Total****₦16,500 – ₦54,500****$11 – $36**

Revenue from 1 client: ₦50,000–₦80,000/month.

Profit margin at 1 client: 50–70%.




Scaling Beyond Day 3


MilestoneWhat to DoWhen
3 clientsBuild a client portal for self-service updatesWeek 3
5 clientsMove to a multi-tenant Supabase setupMonth 2
10 clientsHire a junior dev for maintenanceMonth 4
15+ clientsConsider Botpress/Typebot for visual bot managementMonth 6

The 3-day sprint is just the start. But nothing happens until you ship Day 2 and sell Day 3. Go.

Read more on Kivora Blog

Read more on Kivora Blog

Get started →