X-On-Behalf-Of y ambos escriben eventos de auditoría JSONL asociados al mismo response_id y conversation_id.
Para el patrón básico de solicitud, consulta generar una respuesta.
Si necesitas crear o gestionar un ID de conversación reutilizable por usuario final, consulta gestionar conversaciones.
Arquitectura
Mensaje del usuario final en WhatsApp -> El webhook de WhatsApp recibe el mensaje -> tu servidor llama amka1.llm.responses.create con store: true
-> tu servidor registra el objeto de respuesta completo almacenado y el response_id
-> tu servidor envía la respuesta de vuelta a WhatsApp
-> tu aplicación web solicita el mismo response_id desde tu backend
-> tu backend llama a mka1.llm.responses.get
-> tu backend registra la recuperación web contra el mismo response_id y conversation_id
Mantén tu clave de API en el servidor. El navegador debe llamar a tu ruta backend, no directamente a la API MKA1.
Usa un solo ID de usuario final en ambos canales
El valor deX-On-Behalf-Of es la clave que une los canales a nivel de usuario final.
Utiliza el mismo ID de usuario final estable en ambos entornos.
También debes usar la misma clave de API MKA1 compartida en ambos entornos.
Ejemplos:
- El webhook de WhatsApp asigna un número de teléfono a
user_123. - La sesión web para la misma persona también se resuelve como
user_123. - Ambos entornos se autentican con la misma clave de API MKA1.
X-On-Behalf-Of cambia entre canales, los registros ya no son auditables como una sola conversación de usuario final.
Si la clave de API cambia entre canales, las solicitudes pertenecen a diferentes usuarios de la API MKA1 incluso cuando X-On-Behalf-Of coincide.
Entorno WhatsApp: almacena la respuesta y regístrala
Comienza con un único wrapper SDK compartido que ambos entornos utilicen. Esto mantiene la autenticación, la creación de conversaciones, la recuperación y creación de respuestas consistente entre canales.- WhatsApp es el canal de entrada.
- La solicitud se almacena con
store: true. - El objeto de respuesta completo se registra en un formato abierto.
- El registro incluye
response_id,conversation_idyend_user_id.
Entorno web: recupera la misma respuesta almacenada
La aplicación web debe llamar a tu propio backend. Ese backend puede recuperar la misma respuesta conmka1.llm.responses.get y registrar la recuperación como un evento de segundo canal.
- La aplicación web es un canal separado de WhatsApp.
- Recupera la misma respuesta MKA1 almacenada por
response_id. - Registra esa recuperación en el mismo flujo de auditoría JSONL.
- El objeto recuperado sigue manteniendo el mismo enlace de usuario final y conversación.
Exportación de auditoría unificada en formato abierto
Ejemplo de exportación:Requisito de autenticación para registros compartidos
Para esta demostración multicanal, todo lo siguiente debe coincidir entre los entornos de WhatsApp y web:- la misma clave de API MKA1
- el mismo ID de usuario final
X-On-Behalf-Of - el mismo
response_idalmacenado - el mismo
conversation_idcuando uses conversaciones