DEV Community

vmodal_ai
vmodal_ai

Posted on

Building a WhatsApp AI Agent with RAG for Automated Customer Support


Businesses are increasingly using WhatsApp as a primary communication channel for customer support, sales, and service automation. However, managing thousands of customer conversations manually can be time-consuming and expensive.

By combining WhatsApp Cloud API, AI Agents, and Retrieval Augmented Generation (RAG), developers can build intelligent WhatsApp assistants that understand customer questions, retrieve accurate information from company documents, and automatically generate helpful responses.

Unlike traditional chatbots that rely on predefined rules, an AI agent powered by RAG can answer dynamic questions using real business data such as product catalogs, FAQs, policies, order information, and internal documentation.

In this tutorial, we will build the architecture of a WhatsApp AI Agent using:

  • WhatsApp Cloud API
  • FastAPI backend
  • Large Language Models (LLMs)
  • Retrieval Augmented Generation (RAG)
  • Vector Database

How a WhatsApp AI Agent with RAG Works

The complete workflow looks like this:

Customer
   |
   | WhatsApp Message
   |
WhatsApp Cloud API
   |
Webhook Server
   |
AI Agent
   |
RAG Pipeline
   |
Vector Database + Business Data
   |
Generated Response
   |
Customer receives reply
Enter fullscreen mode Exit fullscreen mode

The customer sends a WhatsApp message. The webhook receives the request, the AI agent understands the user's intent, retrieves relevant information using RAG, and generates an accurate response.


Step 1: Setup WhatsApp Cloud API

Meta provides WhatsApp Cloud API that allows applications to send and receive WhatsApp messages programmatically.

After creating a Meta developer application, enable the WhatsApp product.

You will receive:

  • Phone Number ID
  • WhatsApp Business Account ID
  • Access Token

These credentials allow your backend application to communicate with WhatsApp servers.


Step 2: Create a Webhook Server

WhatsApp uses webhooks to notify your application whenever a customer sends a message.

For this example, we will use Python FastAPI.

Install dependencies:

pip install fastapi uvicorn openai requests
Enter fullscreen mode Exit fullscreen mode

Create a webhook endpoint:

from fastapi import FastAPI, Request

app = FastAPI()


@app.post("/webhook")
async def webhook(request: Request):

    data = await request.json()

    print(data)

    return {
        "status": "received"
    }
Enter fullscreen mode Exit fullscreen mode

Run the server:

uvicorn main:app --reload
Enter fullscreen mode Exit fullscreen mode

Your backend can now receive WhatsApp events.


Step 3: Extract Incoming WhatsApp Messages

WhatsApp sends message information through webhook payloads.

Example:

{
 "messages": [
   {
    "from": "923001234567",
    "text": {
       "body": "What are your delivery options?"
    }
   }
 ]
}
Enter fullscreen mode Exit fullscreen mode

Extract the customer message:

message = data["messages"][0]["text"]["body"]

sender = data["messages"][0]["from"]
Enter fullscreen mode Exit fullscreen mode

Now we can process the customer's question.


Step 4: Connect an AI Agent

The next step is connecting an AI model that can understand and generate natural language responses.

Example using OpenAI:

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY"
)


def ask_ai(question):

    response = client.chat.completions.create(
        model="gpt-4.1-mini",
        messages=[
            {
              "role": "system",
              "content":
              "You are a helpful customer support assistant."
            },
            {
              "role": "user",
              "content": question
            }
        ]
    )

    return response.choices[0].message.content
Enter fullscreen mode Exit fullscreen mode

Example:

Customer:

Do you deliver to Helsinki?
Enter fullscreen mode Exit fullscreen mode

AI Response:

Yes, we provide delivery services across Finland.
Enter fullscreen mode Exit fullscreen mode

Step 5: Add RAG for Business-Specific Answers

A general AI model does not know your private business information.

For example, it does not know:

  • Your product prices
  • Delivery areas
  • Return policies
  • Company FAQs
  • Internal documentation

This is where Retrieval Augmented Generation (RAG) becomes important.

RAG allows the AI agent to search your own knowledge base before generating an answer.

The workflow:

Business Documents

        ↓

Create Embeddings

        ↓

Store in Vector Database

        ↓

Customer Question

        ↓

Retrieve Relevant Information

        ↓

AI Generates Final Answer
Enter fullscreen mode Exit fullscreen mode

Popular vector databases:

  • ChromaDB
  • Pinecone
  • Weaviate
  • FAISS

Example:

Customer:

What is your refund policy?
Enter fullscreen mode Exit fullscreen mode

Instead of guessing, the AI retrieves:

Refunds are available within 30 days with a valid receipt.
Enter fullscreen mode Exit fullscreen mode

Then it generates the final response.

This makes the chatbot more accurate and reduces incorrect AI-generated answers.


Step 6: Send AI Response Back to WhatsApp

After generating the response, send it back using WhatsApp Cloud API.

Example:

import requests


def send_message(phone, text):

    url = (
    "https://graph.facebook.com/v20.0/"
    "PHONE_NUMBER_ID/messages"
    )

    headers = {
        "Authorization":
        "Bearer ACCESS_TOKEN",
        "Content-Type":
        "application/json"
    }

    payload = {
        "messaging_product": "whatsapp",
        "to": phone,
        "text": {
            "body": text
        }
    }

    requests.post(
        url,
        headers=headers,
        json=payload
    )
Enter fullscreen mode Exit fullscreen mode

The complete automation flow:

Customer Message

        ↓

WhatsApp Cloud API

        ↓

FastAPI Webhook

        ↓

AI Agent + RAG

        ↓

Generate Response

        ↓

WhatsApp Reply
Enter fullscreen mode Exit fullscreen mode

Making the WhatsApp AI Agent More Powerful

A production AI assistant usually includes additional capabilities.

Conversation Memory

The agent can remember previous messages.

Example:

User:
My order number is 12345

Later:

Where is my order?
Enter fullscreen mode Exit fullscreen mode

The AI understands the previous context.


Function Calling

AI agents can perform real actions:

  • Check order status
  • Create bookings
  • Search inventory
  • Generate invoices
  • Create support tickets

Example:

Customer:
Where is my package?

AI:
Checking your order status...
Enter fullscreen mode Exit fullscreen mode

Human Support Handoff

A good AI system should know when human assistance is required.

Example:

Customer:
I want to report a payment problem.

AI:
I will connect you with our support team.
Enter fullscreen mode Exit fullscreen mode

Real-World Use Cases

WhatsApp AI Agents with RAG can automate:

  • Customer support
  • E-commerce assistants
  • Restaurant ordering
  • Appointment booking
  • Banking FAQs
  • Travel assistance
  • Product recommendations

Conclusion

Building a WhatsApp AI Agent with RAG combines messaging automation with the intelligence of modern AI systems.

The key components are:

  • WhatsApp Cloud API for communication
  • Webhooks for receiving messages
  • AI Agents for reasoning and conversation
  • RAG for accessing company knowledge
  • Vector databases for efficient information retrieval

With this architecture, developers can create scalable WhatsApp assistants that provide accurate, personalized, and automated customer experiences.

Top comments (0)