Ir al contenido

Gestionar conversaciones de WhatsApp

La vista Operación → Conversaciones WhatsApp reúne los mensajes entrantes y salientes asociados con cada contacto. El historial se actualiza automáticamente mientras la página permanece visible.

Cuando el cliente envía un mensaje, Notify abre o renueva una ventana de servicio de 24 horas. Durante esa ventana puedes responder con:

  • texto;
  • imagen, video, audio o documento;
  • ubicación;
  • reacción.

Fuera de la ventana debes usar una plantilla aprobada. El formulario permite seleccionar una plantilla fallback: si la ventana se cierra antes de que el worker procese la respuesta, Notify envía esa plantilla en lugar del mensaje libre.

  1. Abre la conversación del contacto.
  2. Comprueba la etiqueta Ventana abierta o Ventana cerrada.
  3. Elige el tipo de mensaje.
  4. Completa el contenido requerido.
  5. Si es un mensaje libre, abre Fallback de plantilla y selecciona una plantilla aprobada cuando necesites proteger el envío frente al cierre de la ventana.
  6. Pulsa Enviar.

Para imágenes, videos, audios y documentos puedes pulsar Adjuntar archivo. Notify muestra una vista previa, sube el contenido al S3 privado y lo registra en WhatsApp antes de habilitar el envío. La URL pública queda como alternativa avanzada y no es necesaria para un archivo local.

Cuando el tipo sea Audio, pulsa Grabar audio, concede acceso al micrófono y selecciona Detener al terminar. La grabación directa requiere que el navegador produzca OGG/Opus o MP4, formatos admitidos por WhatsApp. Si el navegador sólo ofrece WebM, adjunta un archivo OGG, MP4, MP3 o AAC ya preparado.

La respuesta se coloca en la misma cola asíncrona que las demás notificaciones. Que el formulario confirme el encolado no significa que WhatsApp ya haya entregado el mensaje.

Las imágenes, audios, videos y documentos se muestran como elementos de chat, no como JSON. Al cargar un adjunto por primera vez:

  1. el navegador solicita un endpoint autenticado de Notify;
  2. Notify recupera el archivo desde WhatsApp hacia S3;
  3. el estado local cambia de pending a available;
  4. el navegador recibe una redirección temporal hacia CloudFront con firma.

La URL de CloudFront expira, pero el objeto permanece en S3. Si dos solicitudes intentan recuperar el mismo archivo, una lo procesa y la otra reintenta automáticamente.

Todas las conversaciones y mensajes están aislados por propietario. Con un número compartido de Notify, un contacto queda asociado de forma exclusiva al primer tenant que inicia o posee su conversación. Un evento entrante ambiguo no se asigna al azar.

Con un WABA propio del cliente, la conversación usa la cuenta registrada para ese tenant, pero conserva el mismo flujo operativo.

Las mismas conversaciones del panel están disponibles para sistemas externos y para Summit AI:

  • API JSON: usa una API key de Summit Notify en Authorization: Bearer <key>. Consulta la referencia del canal WhatsApp.
  • MCP: Summit AI puede invocar tools como list_conversations, get_conversation, get_conversation_messages y reply_to_conversation en el endpoint /mcp. Consulta la referencia MCP de Summit Notify.

Ambos mecanismos respetan el aislamiento por propietario y las mismas reglas de ventana de 24 horas y plantillas fallback.

  • Mensaje image/audio en vez del archivo: actualiza el frontend y realiza una recarga forzada del navegador.
  • Adjunto no disponible: verifica la configuración S3/CloudFront y el permiso social-messaging:GetWhatsAppMessageMedia.
  • 401 al abrir lookaside.fbsbx.com: ese enlace requiere autenticación; debe servirse mediante el flujo S3/CloudFront de Notify.
  • No permite texto: la ventana está cerrada o la cuenta no tiene Meta Phone Number ID.
  • Respuesta en estado pending: espera al worker y consulta el detalle de la notificación.
  • No se puede grabar: verifica el permiso del micrófono y prueba un navegador compatible con OGG/Opus o MP4.
  • Archivo rechazado: el chat admite hasta 20 MB y valida el MIME según imagen, video, audio o documento.

Consulta Supervisar entregas para interpretar estados y errores.