DEV Community

S Gr
S Gr

Posted on

How to Build a Custom AI Chatbot API for Local Businesses in 2026

How to Build a Custom AI Chatbot API for Local Businesses in 2026

Disclosure: This article contains an affiliate link. I only recommend tools I've personally used and found helpful.

Why This Works

Local businesses need AI chatbots but don't want generic solutions. They want chatbots trained on their specific services, hours, and FAQs. By building custom chatbot APIs, you can charge $300-$800 per implementation plus monthly maintenance fees.

This guide walks through the technical setup using free and low-cost tools. No hype—just the actual process I use.

Prerequisites

  • Basic Python knowledge (if/else, functions, API calls)
  • GitHub account (free)
  • OpenAI API account (pay-as-you-go, ~$2-5 per client during setup)

Step 1: Set Up Your Development Environment

Install Python 3.10+ and create a project folder:

mkdir chatbot-api
cd chatbot-api
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install openai flask python-dotenv
Enter fullscreen mode Exit fullscreen mode

Create a .env file for your API keys:

OPENAI_API_KEY=your_key_here
Enter fullscreen mode Exit fullscreen mode

Step 2: Build the Core Chatbot Logic

Create chatbot.py:

import os
from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))

def create_business_prompt(business_info):
    return f"""You are a helpful assistant for {business_info['name']}.
    Business hours: {business_info['hours']}
    Services: {business_info['services']}
    Location: {business_info['location']}

    Answer customer questions accurately. If you don't know, say so."""

def get_response(user_message, business_info):
    response = client.chat.completions.create(
        model="gpt-4o-mini",  # Cheaper than GPT-4
        messages=[
            {"role": "system", "content": create_business_prompt(business_info)},
            {"role": "user", "content": user_message}
        ],
        max_tokens=200,
        temperature=0.7
    )
    return response.choices[0].message.content
Enter fullscreen mode Exit fullscreen mode

Step 3: Create a Simple API

Create app.py:

from flask import Flask, request, jsonify
from chatbot import get_response

app = Flask(__name__)

# In production, load this from a database
BUSINESS_DATA = {
    "demo_salon": {
        "name": "Bella's Hair Salon",
        "hours": "Mon-Sat 9am-7pm, Closed Sunday",
        "services": "Haircuts, coloring, highlights, styling",
        "location": "123 Main St, Downtown"
    }
}

@app.route('/chat', methods=['POST'])
def chat():
    data = request.json
    business_id = data.get('business_id')
    message = data.get('message')

    if business_id not in BUSINESS_DATA:
        return jsonify({"error": "Business not found"}), 404

    response = get_response(message, BUSINESS_DATA[business_id])
    return jsonify({"response": response})

if __name__ == '__main__':
    app.run(debug=True, port=5000)
Enter fullscreen mode Exit fullscreen mode

Test it:

python app.py
Enter fullscreen mode Exit fullscreen mode

In another terminal:

curl -X POST http://localhost:5000/chat \
  -H "Content-Type: application/json" \
  -d '{"business_id": "demo_salon", "message": "What are your hours?"}'
Enter fullscreen mode Exit fullscreen mode

Step 4: Deploy Your API

Use Railway.app (free tier available):

  1. Push your code to GitHub
  2. Connect Railway to your repo
  3. Add environment variables in Railway dashboard
  4. Deploy automatically

You'll get a URL like https://your-app.railway.app

Step 5: Create an Embeddable Widget

Create widget.html for clients to embed:

<div id="chatbot-widget">
  <button id="chat-toggle">Chat with us</button>
  <div id="chat-window" style="display:none;">
    <div id="messages"></div>
    <input id="user-input" placeholder="Type a message...">
    <button id="send-btn">Send</button>
  </div>
</div>

<script>
const API_URL = 'https://your-app.railway.app/chat';
const BUSINESS_ID = 'CLIENT_ID_HERE';

document.getElementById('send-btn').addEventListener('click', async () => {
  const input = document.getElementById('user-input');
  const response = await fetch(API_URL, {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({business_id: BUSINESS_ID, message: input.value})
  });
  const data = await response.json();
  document.getElementById('messages').innerHTML += `<p>${data.response}</p>`;
});
</script>
Enter fullscreen mode Exit fullscreen mode

Step 6: Find Your First Client

Target businesses with these characteristics:

  • Active website with contact forms
  • Receive repetitive questions (hours, pricing, booking)
  • 5-50 employees (sweet spot for budget and need)

Outreach template:

"Hi [Name], I noticed [Business] gets a lot of [specific question type] inquiries. I built a custom AI assistant that answers these 24/7, trained specifically on your services. Would you be open to a 15-minute demo?"

Managing Client Data Efficiently

As you scale to multiple clients, you'll need to organize business information, API keys, and conversation logs. When I was managing data for about a dozen clients simultaneously, I found Leptitox helpful for keeping client information structured and easily accessible through its dashboard interface. It's not essential—a simple database works fine—but it streamlined my workflow when juggling multiple deployments.

Pricing Structure

  • Setup fee: $400-$800 (one-time)
  • Monthly maintenance: $100-$200 (includes API costs, updates, monitoring)
  • Per-message costs are typically $0.001-0.003, so even 1000 messages/month costs under $3

Common Issues and Solutions

Problem: API costs spike unexpectedly

Solution: Implement rate limiting and cache common responses

Problem: Chatbot gives wrong information

Solution: Add a knowledge base file and use retrieval-augmented generation (RAG)

Problem: Client wants phone integration

Solution: Use Twilio API ($1/month + $0.0085/message) to connect your chatbot to SMS

Next Steps

Once you have 2-3 clients, consider:

  • Adding analytics dashboard (track common questions)
  • Building appointment booking integration
  • Creating industry-specific templates (restaurants, salons, clinics)

The key is starting simple and adding features based on actual client requests, not assumptions.

Final Thoughts

This isn't passive income—you're building and maintaining custom software. But it's legitimate technical work that solves real problems for businesses struggling with customer service capacity.

Start with one client, refine your process, then scale. The businesses that need this most are often not actively searching for it, so direct outreach works better than waiting for inbound leads.


Tool mentioned (affiliate link): https://breeze760.leptitox.hop.clickbank.net/?tid=devtohowtobuildcu

Top comments (0)