La conversación es la interfaz, no la fuente de verdad
WhatsApp Business Platform conecta mensajes con backends y agentes. La conversación contiene solicitudes, selecciones, preguntas y notificaciones; el CRM controla identidad y consentimiento, catálogo controla producto, OMS controla pedido, PSP confirma pago y WMS o carrier produce eventos de fulfillment.
Cada acción necesita un identificador de negocio durable. El cliente puede comenzar en un anuncio, continuar en WhatsApp, pagar en una app bancaria, llamar y recibir un evento después. El pedido debe sobrevivir cambios de canal, webhooks duplicados, sesiones vencidas, transferencias y fallas de entrega.
Capa conversacionalMensajes, templates, UI interactiva, estados de entrega, idioma y policy del canal.
Cliente y consentimientoIdentidad CRM, vínculo telefónico, atributos verificados, categoría de opt-in, origen, fecha y supresión.
Estado comercialSnapshot de catálogo, precio, reserva, carrito, versión del pedido, payment intent, factura y reembolso.
Fulfillment y atenciónAsignación, picking, packing, envío, carrier, excepción, cola, SLA, owner y resolución.
Consentimiento y policy deben ser datos ejecutables
La policy actual de Meta exige número y opt-in antes del contacto iniciado por la empresa. Fuera de la ventana de atención de 24 horas se necesitan templates aprobados, y la automatización debe ofrecer escalamiento claro. El consentimiento no puede quedar como una nota informal del CRM.
Guarda propósito, categoría, versión del texto, origen, fecha, jurisdicción, actor y revocación. Evalúalo antes de cada envío. Separa actualizaciones de pedido, soporte, recomendaciones y promociones para que el cliente pueda detener marketing sin perder alertas de entrega.
Construye un ciclo durable entre sistemas
Ciclo del pedido en WhatsApp01 RecibirIngesta el webhookVerifica origen, conserva ID y evidencia, normaliza, deduplica y responde rápido.
02 ResolverMapea identidad y consentimientoRelaciona usuario, contacto, cuenta, idioma, opt-in, riesgo y ventana vigente.
03 EntenderClasifica intención acotadaCatálogo, consulta, carrito, checkout, pago, entrega, devolución, queja o agente.
04 CotizarCrea snapshot con precioResuelve SKU, variante, stock, impuestos, envío, descuento, expiración y versión.
05 PedirConfirma por el OMSCrea idempotentemente, reserva stock, persiste totales y publica evento.
06 PagarEspera evidencia financieraCrea intent/cobro y marca pagado solo con estado autenticado y conciliación.
07 EntregarProyecta eventos logísticosAsignar, preparar, enviar, entregar, fallar, devolver y mostrar estado verificado.
08 ResolverAutomatiza o transfiereResponde con estado actual, ejecuta acciones aprobadas y entrega excepciones con contexto.
La ingesta de webhooks debe ser idempotente y asíncrona
Recibir el webhook y procesar el negocio son responsabilidades distintas. El endpoint valida, guarda un evento mínimo e inmutable, deduplica y responde rápido. Workers normalizan schemas, ordenan, reintentan con límites, actualizan sistemas y envían mensajes.
Usa ID del proveedor, hash y clave de negocio. Registra received, normalized, routed, applied, ignored, failed y quarantined. Una redelivery devuelve el resultado previo sin crear otro carrito, pedido, ticket o reembolso.
La identidad es un grafo, no un teléfono como primary key
El número identifica un canal, no demuestra identidad legal ni ownership de cuenta. Mantén vínculos explícitos entre WABA, número comercial, usuario, contacto CRM, cuenta, sesión autenticada, pedido y conversación de agente, incluyendo origen y confianza.
Exige verificación adicional antes de mostrar direcciones, facturas o saldos y antes de realizar cambios sensibles. No solicites números completos de tarjeta, cuenta bancaria o documentos por chat. Usa journeys seguras y devuelve solo estado enmascarado.
El catálogo visible no reemplaza la verdad del servidor
Los mensajes de catálogo mejoran el descubrimiento, pero una card no es una cotización vinculante. Al seleccionar, resuelve SKU, variante, disponibilidad, región, precio, impuesto, promoción y policy. Crea snapshot con expiración y muestra cambios antes de confirmar.
El modelo no debe inventar atributos, sustituir variantes ni prometer stock. Retrieval usa campos aprobados; servicios deterministas calculan y hacen commit.
El pago lo confirma el proveedor
El mensaje “ya pagué”, una captura o el clic en un link no prueban liquidación. Crea payment intent o cobro ligado al pedido y consume webhooks autenticados o consulta la API del PSP. Concilia ID, monto, moneda, receptor, estado y tiempos antes de avanzar.
Modela iniciado, pendiente, autorizado, pagado, fallido, vencido, cancelado, reembolsado, parcial y disputado. Los eventos pueden duplicarse o llegar fuera de orden. Un retry debe reutilizar o reemplazar explícitamente el intent, nunca producir doble cobro silencioso.
Logística es una proyección de eventos
Mantén fulfillment en OMS/WMS y proyecta eventos útiles: asignado, picking, packed, entregado al carrier, en tránsito, reparto, intento, entregado, retiro disponible, devolución solicitada, recibida y reembolsada. Conserva event time, fuente, precisión y motivo.
GS1 EPCIS aporta vocabulario para qué ocurrió, cuándo, dónde y por qué. Aunque no se adopte completo, los payloads de carriers deben quedar detrás de adapters y producir eventos internos estables.
El handoff humano pertenece a la máquina de estados
Guarda motivo, prioridad, owner, cola, SLA, resumen, identidad verificada, consentimiento, carrito, pedido, pago, envío, acciones, errores y próximo paso. Así el cliente no repite todo.
Transfiere cuando el cliente lo solicita, falta identidad, policy bloquea, existe disputa financiera/logística, vulnerabilidad, baja confianza o tools fallan. Pausa writes del bot mientras el agente controla el caso y define el retorno.
Usa IA dentro de un alcance estrecho
IA puede clasificar, traducir, resumir, recuperar contenido aprobado, extraer campos, sugerir respuesta y elegir tool. No debería cambiar precio, emitir reembolso, modificar dirección o marcar un pago. APIs autenticadas aplican schema, autorización, límites y auditoría.
Protege contra prompt injection en mensajes, descripciones, notas CRM y documentos. Separa instrucciones de datos, allowlist tools, valida argumentos, oculta información sensible y evalúa el trace completo.
Define una matriz operativa
| Intención | Camino automático | Evidencia necesaria | Respuesta | Handoff |
|---|
| Consultar producto | Catálogo, disponibilidad, región y recomendación acotada. | Catálogo aprobado, idioma, stock/precio visible. | Mensaje de producto con condiciones y expiración. | Producto regulado, región sin soporte o datos conflictivos. |
| Modificar carrito | Resolver SKU/variante, cotizar, versionar y mutar idempotentemente. | Vínculo de carrito, quote, promociones y reserva. | Resumen actualizado y confirmación. | Disputa de precio, sustitución o bundle complejo. |
| Pagar pedido | Crear intent/cobro y observar eventos del proveedor. | Total, receptor, transacción y estado autenticado. | Journey segura, pendiente y recibo confirmado. | Diferencia, duplicado, fraude, disputa o incertidumbre. |
| Rastrear envío | Leer proyección OMS/WMS y adapter del carrier. | Acceso al pedido, evento, fuente y excepción. | Hito, fecha, expectativa y link aprobado. | Falla repetida, pérdida, dirección o datos stale. |
| Devolver/reembolsar | Elegibilidad, autorización, etiqueta/retiro y workflow financiero. | Item, entrega, policy, motivo y rail de pago. | Pasos, plazo, autorización y estado verificado. | Excepción, alto valor, parcialidad o queja. |
| Hablar con persona | Crear caso, congelar writes del bot y enrutar por skill. | Resumen, identidad, estado, acciones y errores. | Ownership y expectativa realista. | Inmediato; nunca fuerces otro loop. |
Observa la transacción completa
Correlaciona message ID, conversación, contacto, carrito, quote, pedido, payment intent, envío, caso, agente y trace. Mide aceptación y lag de webhook, duplicados, rechazo de template, entrega, automatización, tools, espera, confirmación financiera, excepciones y reembolsos.
Métricas de negocio incluyen conversión tras cotización verificada, pedido pagado finalizado, doble cobro evitado, resolución inicial, repetición, excepciones abiertas, opt-out, bloqueo, precisión de promesa y costo por pedido.
Prueba fallas como escenarios de ciclo completo
Prueba webhooks duplicados y desordenados, template vencido, consentimiento revocado, teléfono cambiado, contactos fusionados, precio actualizado, pérdida de stock, pago antes de respuesta, notificación tardía, intento duplicado, carrier caído, tracking stale, envío parcial y carreras bot/agente.
Usa fixtures repetibles sin datos sensibles. Comprueba estado final y eventos, no solo texto. La conciliación debe encontrar pagados no liberados, envíos no avisados, reembolsos sin confirmación y conversaciones sin owner.
Qué construiría
Construiría un adapter de WhatsApp Cloud API, inbox inmutable, servicio de identidad/consentimiento, router, adapter de catálogo, carrito/cotización, OMS, orquestador de pagos, proyección logística, gateway de tools con policy, workspace de agentes y notificaciones conscientes de templates y ventana.
El contrato central sería una API y stream del ciclo del pedido. WhatsApp, web, app, email y agentes usarían la misma máquina de estados sin duplicar lógica financiera o logística.
El principio de diseño
El comercio conversacional funciona cuando la conversación parece simple porque el backend es explícito. Identidad, consentimiento, precio, inventario, pago, logística, ownership y auditoría viven en sistemas durables. WhatsApp presenta la jornada, pero no es su única memoria.