Automatización e IASep 13, 2026

Creando un agente de ventas avanzado con LangGraph, Python y WhatsApp Cloud API

The Bluechat Team

Creando un Agente de Ventas Avanzado con LangGraph, Python y WhatsApp Cloud API

Los chatbots tradicionales basados en árboles de decisión de palabras clave son incapaces de entender el contexto o guiar una venta compleja. En este tutorial avanzado para desarrolladores, aprenderás a implementar un agente de ventas basado en grafos de estado con LangGraph, Python y FastAPI, integrado con la API Oficial de WhatsApp a través de Bluechat.

1. ¿Por qué LangGraph para automatización conversacional en WhatsApp?

A diferencia de las cadenas rígidas en LangChain, LangGraph introduce ciclos de ejecución, estados persistentes y evaluación de herramientas (Tool Calling). Esto permite que la Inteligencia Artificial tome decisiones dinámicas: consultar stock en tiempo real, cotizar productos según la moneda del usuario o transferir el control a un vendedor humano en Bluechat.

2. Arquitectura del backend en Python

Componente Tecnología Función principal
Orquestación de IA LangGraph / LangChain Grafo de estado conversacional y razonamiento autónomo
Servidor Web HTTP FastAPI / Uvicorn Recepción de webhooks y emisión de llamadas REST
Canal WhatsApp Oficial Bluechat REST API Conexión verificada con la infraestructura de Meta Cloud API
Memoria RAG (Vectorstore) Qdrant / Pinecone / Chroma Búsqueda semántica en el catálogo de productos de la empresa

3. Código fuente del agente conversacional en Python

El siguiente servidor FastAPI expone el webhook para Bluechat y ejecuta el grafo de estado:

from fastapi import FastAPI, Request
import requests
from langgraph.graph import StateGraph, END
from typing import TypedDict, List

class AgentState(TypedDict):
    messages: List[str]
    customer_phone: str
    conversation_id: int

app = FastAPI()

def sales_agent_node(state: AgentState):
    user_message = state["messages"][-1]
    # Lógica de razonamiento del LLM (ej. GPT-4o o Claude 3.5 Sonnet)
    ai_response = f"Entiendo que buscas información sobre '{user_message}'. ¿Te gustaría agendar una demo técnica hoy?"
    return {"messages": state["messages"] + [ai_response]}

workflow = StateGraph(AgentState)
workflow.add_node("agent", sales_agent_node)
workflow.set_entry_point("agent")
workflow.add_edge("agent", END)
compiled_graph = workflow.compile()

@app.post("/webhook/bluechat")
async def handle_webhook(request: Request):
    payload = await request.json()
    if payload.get("event") == "message_created" and payload.get("message_type") == "incoming":
        conv_id = payload["conversation"]["id"]
        text = payload["content"]
        
        result = compiled_graph.invoke({
            "messages": [text],
            "customer_phone": payload["sender"]["phone_number"],
            "conversation_id": conv_id
        })
        
        final_reply = result["messages"][-1]
        
        # Enviar respuesta mediante la API de Bluechat
        requests.post(
            f"https://app.bluechat.lat/api/v1/accounts/1/conversations/{conv_id}/messages",
            json={"content": final_reply, "message_type": "outgoing"},
            headers={"api_access_token": "TU_BLUECHAT_API_KEY"}
        )
    return {"status": "success"}

4. Preguntas frecuentes sobre LangGraph en WhatsApp

¿Cómo transfiere el agente la conversación a un humano?

Cuando LangGraph detecta intención de cierre o solicitud explícita de un humano, emite una llamada a la API de Bluechat para cambiar el estado de la conversación a `open` y asignarla a un equipo comercial.

¿Es seguro para datos corporativos sensible?

Sí. Ejecutar tu backend en Python dentro de tu propio servidor garantiza que los datos de tus clientes nunca pasen por intermediarios no autorizados.

Conecta tus agentes de IA a WhatsApp con Bluechat

Infraestructura oficial de WhatsApp Cloud API por $19 USD / mes.

Empezar gratis en Bluechat →