Envía mensajes HSM personalizados a destinatarios individuales usando la API de WhatsApp
WhatsApp API permite a las compañías automatizar y personalizar la comunicación con sus clientes, facilitando interacciones eficientes, escalables y enriquecidas con contenido multimedia. Es ideal para gestionar consultas, enviar notificaciones y ofrecer respuestas inmediatas a través de AI Agents.
Recuerda que, para enviar mensajes a través de WhatsApp, debes usar plantillas previamente aprobadas por META.Cada plantilla tiene limitaciones específicas según su formato y contenido, como la longitud del mensaje o el tipo de información permitida. Asegúrate de revisar estas restricciones antes de utilizarlas para garantizar su correcto envío.Considera que:
No se permiten URLs, emojis ni archivos multimedia dentro de los mensajes de autenticación.
Los parámetros deben tener un máximo de 15 caracteres.
En esta sección, compartimos ejemplos de solicitudes para los diferentes tipos de plantillas. Estos ejemplos proporcionan una guía clara para que puedas sustituir fácilmente los valores con tus propios datos.
Si el nombre de una plantilla o un botón dentro del JSON es distinto a la plantilla ya aprobada, incluso por una tilde, el envío fallará. La precisión es clave para garantizar la funcionalidad.
Usa plantillas con variables para enviar mensajes adaptados a las necesidades de cada usuario (por ejemplo, recordatorios de pagos o actualizaciones de pedidos).
Al ser un envío individual, el número de teléfono a quien le llegará el mensaje deberá estar en el formato correcto para que el envío sea exitoso.Se debe omitir el signo +, incluir el código de país, solo pueden ingresar caracteres numéricos. Los guiones o espacios no son aceptados.
Para usuarios de Ecuador: Se debe omitir el signo ”+” y el primer 0 del número telefónico para poder ser ingresado de manera correcta.
Cada mensaje puede estar asociado a un skill específico que define cómo se debe manejar la respuesta del usuario. Esto es útil para crear interacciones más complejas y dirigidas, como menús interactivos o encuestas.
Puedes usar la siguiente estructura en el campo buttonPayloads cuando tu plantilla incluya botones de respuesta rápida usando skills; esto te permitirá activar flujos adicionales dentro de la conversación según la acción seleccionada por el usuario.
En este caso, cada botón debe tener las claves type, action y skillId. La clave action define el texto que aparecerá en el botón, mientras que skillId indica el ID del skill que el botón activará.
Actions Payload
Redirigen a los usuarios a skills específicos según su elección o interacción.Las plantillas permiten las siguientes configuraciones:
Esta función se utiliza para guardar información adicional en la caché para utilizarla posteriormente. Dependerá de la configuración deseada para la plantilla. Si se envía una URL, puede ser utilizada por un skill para redirigir esa URL con fines de marketing.Todos los parámetros a almacenar en caché deben ir en setMemoryParams con sus respectivos campos clave-valor.
{ "message": ["The Bot could not be found at the moment."], "statusMessage": "failed", "status": 0, "error": { "code": "E1019", "key": "BOT_NOT_FOUND", "description": "Error to be thrown when trying to get a Bot.", "developerMessages": { "es": "El botId no se encuentra en la base de datos o ha sido eliminado.", "en": "The botId is not found in the database or has been deleted." }, "clientMessages": { "es": "El Bot no se pudo encontrar por el momento.", "en": "The Bot could not be found at the moment." } }}
422 - Unprocessable Entity
Copy
Ask AI
{ "message": ["Los valores ingresados no son correctos."], "statusMessage": "failed", "status": 0, "error": { "code": "E0422", "key": "VALIDATOR_ERROR", "description": "Error to be thrown when cannot process request because of incoming values", "developerMessages": { "es": "Los valores del request no son correctos para ser procesados.", "en": "The request values are not correct for processing." }, "clientMessages": { "es": "Los valores ingresados no son correctos.", "en": "The values entered are not correct." } }, "validationError": { "parameters": [ { "en": "The number of parameters is incorrect.", "es": "El número de parámetros es incorrecto." } ] }}
500 - Internal Server Error
Copy
Ask AI
{ "message": ["We are having trouble processing your request. Please try again later."], "statusMessage": "failed", "status": 0, "error": { "code": "E0000", "key": "UNKNOWN_ERROR", "description": "Error to be thrown when it couldn't be determined the reason of failure", "developerMessages": { "es": "Error inesperado occurido, revisar logs.", "en": "Unexpected error occurred, check logs." }, "clientMessages": { "es": "Estamos teniendo problemas procesando la solicitud. Por favor intenta mas tarde.", "en": "We are having trouble processing your request. Please try again later." } }}
No existe un límite actual definido para el número de caracteres por mensaje; sin embargo hay que estar pendientes sobre el tamaño de los archivos que forman parte del mensaje; tales como: imagen, video o documento. Estos se comparten en mediaUrl.En Jelou, tenemos las siguientes limitaciones de tamaño y formato a seguir:
DOCUMENTO: Hasta 15MB - Formato: .pdf
VIDEO: Hasta 15MB - Formato: .mp4
IMAGEN: Hasta 5MB - Formatos: .jpg, .jpeg, .png
¿Cómo se consume la API?
Los cURLs tanto de envío masivo como de envío 1-1 pueden ser consumidos en cualquier cliente HTTPS como Insomnia o Postman. Basta con crear una petición HTTPS a través del cURL (simplemente pegándolo), luego cambiamos los datos y ejecutamos.Este es un ejemplo con basic-auth: