EZContact
EZContact
← Volver al blog

Ya tienes un agente de IA: dale un WhatsApp para trabajar con tus clientes

Conecta tu agente de IA a WhatsApp Business mediante el servidor MCP o la API de EZContact, con equipo humano, Coexistence y reglas oficiales de Meta.

EZContact Team

Sí: puedes conectar tu agente externo a WhatsApp mediante el servidor MCP o la API de EZContact. Empieza con una lectura y valida un único envío de prueba antes de automatizar.

Con el servidor MCP y la API de EZContact, un agente externo puede usar herramientas de la cuenta para buscar contactos, revisar conversaciones, consultar métricas y enviar mensajes o plantillas. El alcance real depende de la integración, la configuración de la cuenta y las reglas de WhatsApp.

Tu agente de IA conectado mediante MCP o API a EZContact y WhatsApp Business

¿Qué significa “darle un WhatsApp” a tu agente?

No significa entregarle un teléfono ni dejarlo enviar cualquier cosa sin control. Significa darle acceso técnico a funciones específicas de la operación de WhatsApp Business dentro de EZContact.

Por ejemplo, podrías pedirle:

  • “Revisa las conversaciones abiertas y dime cuáles necesitan seguimiento”.
  • “Resume la atención de esta semana y señala los casos pendientes”.
  • “Busca a este contacto y muéstrame el contexto de su conversación”.
  • “Prepara un seguimiento para este cliente”.
  • “Envía esta plantilla aprobada cuando yo lo autorice”.

La revisión o autorización humana previa al envío debe formar parte del flujo que diseñes para tu agente. MCP y API aportan las herramientas; tu implementación define cuándo solo consultar, cuándo preparar una acción y cuándo ejecutarla.

La arquitectura: tu agente, EZContact y WhatsApp

El flujo tiene tres capas:

  1. Tu agente de IA interpreta la instrucción y decide qué herramienta necesita.
  2. EZContact expone contactos, conversaciones, estadísticas y acciones mediante MCP o API, usando una clave de acceso de la cuenta.
  3. WhatsApp Business Platform entrega y recibe los mensajes bajo las políticas de Meta.

EZContact también incorpora el inbox compartido y el handoff humano. Por eso el agente no tiene que operar solo: puede apoyar al equipo y dejar que una persona tome el control cuando el caso requiere criterio, negociación o responsabilidad.

MCP server y MCP client: no son lo mismo

EZContact puede participar en una integración MCP en dos direcciones distintas:

ModalidadQué sucedeEjemplo
EZContact como servidor MCPUn agente externo usa herramientas de EZContactTu agente revisa conversaciones y prepara un seguimiento por WhatsApp
EZContact como cliente MCPEl agente configurado dentro de EZContact consulta un servidor externoEl agente de WhatsApp consulta inventario, agenda o un sistema interno

Para darle WhatsApp a un agente que ya tienes, la primera modalidad es la relevante: el agente se conecta al servidor MCP de EZContact o integra las funciones necesarias mediante API.

La segunda modalidad resuelve otro problema: enriquecer al agente que atiende dentro de EZContact con datos vivos de tu negocio. Ambas pueden combinarse, pero cumplen funciones diferentes.

¿Qué puede hacer hoy un agente externo con EZContact?

La superficie MCP actual incluye herramientas para:

  • buscar contactos por nombre o teléfono;
  • listar y leer conversaciones;
  • consultar resúmenes y métricas de atención;
  • listar plantillas aprobadas;
  • enviar mensajes dentro de la ventana de servicio aplicable;
  • enviar plantillas de WhatsApp;
  • consultar configuración y estado operativo disponible en la cuenta.

No todos los agentes tienen que recibir todas las funciones. Antes de conectar uno, conviene definir un alcance: lectura, análisis, preparación de respuestas o ejecución de envíos.

Tutorial: primera lectura y primer envío por API/MCP

Actualización: 23 de septiembre de 2026. Puedes conectar un agente externo a WhatsApp usando el endpoint JSON-RPC de EZContact: primero descubres las herramientas autorizadas, después consultas una conversación y finalmente envías un mensaje de prueba. Esta sección documenta el contrato revisado en código; no representa una prueba de entrega en una cuenta demo.

Primero conecta, después consulta y finalmente valida un envío con EZContact

1. Prepara una prueba controlada

Necesitas una cuenta EZContact, una API key de esa empresa, un canal de WhatsApp conectado y un contacto interno que acepte participar. Para probar texto libre, ese contacto debe escribir primero al número del negocio y mantener abierta la ventana de servicio de 24 horas. No uses una lista de clientes para comprobar una integración.

El endpoint es https://app.ezcontact.ai/api/mcp.php. Es el backend de integración, no la dirección del panel. Acepta POST con JSON y autenticación X-API-Key o Authorization: Bearer. Un cliente MCP debe ser compatible con este transporte; no basta pegar una URL en cualquier aplicación y asumir que todos sus conectores funcionan igual.

Guarda la clave en el gestor de secretos de tu integración. No la incluyas en un prompt, captura o repositorio. Solicita una clave con permisos explícitos para las herramientas necesarias: una clave sin restricciones no se convierte en solo lectura porque el prompt lo diga. La lista autorizada de herramientas MCP tampoco debe confundirse con un control universal de todos los endpoints REST.

2. Comprueba qué herramientas tienes disponibles

Este ejemplo Python pide la clave de forma oculta y no la guarda en el archivo ni en el historial del shell. Ejecútalo localmente en un entorno confiable; las respuestas posteriores pueden contener información de tu cuenta.

import getpass
import json
import urllib.request

endpoint = "https://app.ezcontact.ai/api/mcp.php"
api_key = getpass.getpass("API key de tu cuenta: ")

def rpc(method, params):
    payload = {"jsonrpc": "2.0", "id": 1,
               "method": method, "params": params}
    request = urllib.request.Request(
        endpoint,
        data=json.dumps(payload).encode(),
        headers={"Content-Type": "application/json",
                 "X-API-Key": api_key},
        method="POST")
    with urllib.request.urlopen(request, timeout=30) as response:
        result = json.load(response)
    if "error" in result:
        raise RuntimeError(result["error"])
    return result["result"]

rpc("initialize", {
    "protocolVersion": "2024-11-05",
    "capabilities": {},
    "clientInfo": {"name": "prueba-interna", "version": "1.0"}
})
result = rpc("tools/list", {})
print([tool["name"] for tool in result["tools"]])

La respuesta es el catálogo autorizado para esa clave. Tu integración debe descubrir su lista real y leer cada inputSchema, no depender de una cifra fija de herramientas. Para este recorrido busca listar_conversaciones, leer_conversacion y, cuando habilites envío, enviar_mensaje.

3. Haz una lectura antes de enviar

Añade al mismo archivo esta llamada. Usa una cuenta de pruebas o limita la consulta al canal de prueba mediante canal_id:

print(rpc("tools/call", {
    "name": "listar_conversaciones",
    "arguments": {"limit": 3}
}))

Las herramientas devuelven su resultado dentro de content; revisa el texto JSON y cualquier indicador de error. Una lista vacía no significa necesariamente que la conexión falló: comprueba fechas, canal y actividad. Una clave autenticada tampoco garantiza permiso para cada herramienta.

Toma un identificador devuelto por la consulta, no uno inventado. Para leer esa conversación:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "leer_conversacion",
    "arguments": {"chat_id": 123, "limit": 5}
  }
}

123 es un marcador ilustrativo: reemplázalo por el ID de tu conversación interna. No publiques transcripciones. La primera lectura es correcta cuando reconoces el mensaje del participante y el canal esperado, no simplemente cuando recibes HTTP 200.

4. Prepara y confirma un único envío

Confirma el destinatario, el texto y el canal antes de habilitar una acción de escritura. Obtén canal_id de tu cuenta; la API REST GET /api/v1/channels.php, con autenticación Bearer, permite consultar los canales. Comprueba que el seleccionado tenga platform: "whatsapp"; no confundas el ID de una conversación con el de un canal.

Este es un cuerpo de solicitud ilustrativo, no un envío ya realizado:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "enviar_mensaje",
    "arguments": {
      "telefono": "NUMERO_INTERNO_CON_CODIGO_DE_PAIS",
      "mensaje": "Prueba interna de conexión con EZContact.",
      "canal_id": 456
    }
  }
}

Reemplaza ambos marcadores y envía solamente al participante de la prueba. Selecciona el canal explícitamente para no depender del predeterminado. Fuera de la ventana de 24 horas, corresponde una plantilla aprobada y el consentimiento aplicable, no intentar repetidamente el mismo texto libre.

5. Verifica el resultado y el control humano

Distingue tres hitos: solicitud aceptada, mensaje visible en el inbox y entrega al teléfono del participante. Una respuesta con success: true y message_id no demuestra por sí sola que el destinatario lo recibió. Revisa también chat_id, el registro en el inbox y la confirmación del participante.

Si la conexión se corta después de enviar, verifica el resultado antes de reintentar: repetir una solicitud puede duplicar el mensaje. No conviertas un timeout en un bucle de envíos.

ResultadoSiguiente revisión
HTTP 401Clave vigente y header de autenticación
Herramienta ausente o denegadaPermisos de la clave y tools/list
Lectura vacíaEmpresa, fechas y canal correctos
Envío rechazadoError devuelto, estado del canal y ventana de servicio
Solicitud aceptada sin recepciónInbox, identificador del mensaje y estado de entrega

Por último, define quién responde: agente externo, agente de EZContact o persona. La pausa del agente interno no demuestra que tu integración externa también se detenga; programa esa coordinación y pruébala. El inbox unificado y el handoff humano mantienen visible la operación, pero no sustituyen las reglas de tu integración.

Prueba terminada: lectura del contacto correcto, un único mensaje recibido y un responsable humano capaz de continuar. Crea tu cuenta o contacta al equipo para validar el transporte y los permisos de tu agente.

Pon a tu WhatsApp a trabajar con EZContact

Agente de IA que conoce tu negocio, inbox unificado y handoff humano cuando haga falta. Sin flujos complicados: lo configuras con un solo prompt.