Tipo de datos de Mensajes
Conoce los diferentes tipos de mensajes (texto, imagen, audio, video, archivo/documento, sticker y ubicación) que se pueden enviar como mensajes a través de la API de Jelou.
1. Mensaje de Texto
Un mensaje de texto es un mensaje enviado en texto plano.
Ejemplo de solicitud API (cURL)
Enviar un mensaje de texto a un usuario específico.
curl --request POST \
--url https://api.jelou.ai/v1/bots/BOT_ID/messages \
--header 'Authorization: Basic {{Base64Encoded Username:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"type": "text",
"text": "MENSAJE",
"userId": "USER_ID"
}'
2. Mensaje de Texto con Opciones
Un mensaje de texto con opciones incluye texto plano con botones de selección.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
text | Contenido del mensaje. | Sí |
buttons | Configuración de botones. | Sí |
buttons.title | Título sobre el mensaje. | No |
buttons.buttonText | Texto del botón principal. | No |
buttons.buttonText.type | Tipo de dato de visualización del botón. | Sí (si se usa buttonText ) |
buttons.buttonText.text | Texto en el botón principal (Predeterminado: "Opciones"). | Sí (si se usa buttonText ) |
buttons.options | Lista de opciones disponibles (mínimo 1, máximo 10). | Sí |
buttons.options.*.title | Título de cada opción (Máximo 24 caracteres). | Sí |
buttons.options.*.description | Descripción de la opción (Máximo 72 caracteres). | No |
buttons.options.*.payload | Texto enviado al webhook al seleccionar la opción. | No |
Ejemplo de solicitud API (cURL)
Enviar un mensaje con opciones a un usuario específico.
curl --request POST \
--url https://api.jelou.ai/v1/bots/BOT_ID/messages \
--header 'Authorization: Basic {{Base64Encoded Username:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"text": "MENSAJE",
"userId": "USER_ID",
"botId": "BOT_ID",
"type": "text",
"buttons": {
"title": "<Título Principal>",
"buttonText": {
"type": "text",
"text": "<Texto Botón Principal>"
},
"options": [
{
"title": "<Opción 1>",
"description": "<Descripción Opción 1>",
"payload": "<Texto_Retorno_1>"
},
{
"title": "<Opción 2>",
"description": "<Descripción Opción 2>",
"payload": "<Texto_Retorno_2>"
}
]
}
}'
3. Respuestas Rápidas
Un mensaje de texto, al que se le puede agregar un máximo de 3 botones de repuesta rápida, estos botones ofrecen una manera más rápida para que los usuarios seleccionen una opción de un menú.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
text | Contenido del mensaje a enviar al cliente. | Sí |
title | Título del mensaje. | No |
quick_replies | Botones de respuestas rápidas. | Sí |
quick_replies.*.title | Texto de cada botón de respuesta rápida. | Sí |
quick_replies
-> Mínimo 1 y máximo 3 botones.title
-> Opcional. Longitud máxima: 20 caracteres.quick_replies.*.title
-> No puede ser una cadena vacía y debe ser único dentro del mensaje. Longitud máxima: 20 caracteres. No permite emojis ni markdowns.
Ejemplo de solicitud API (cURL)
Enviar un mensaje de "Respuesta Rápida" a un usuario específico.
curl --request POST \
--url https://api.jelou.ai/v1/bots/BOT_ID/messages \
--header 'Authorization: Basic {{Base64Encoded Username:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"text": "MENSAJE",
"title": "<Título del mensaje>",
"quick_replies": [
{
"title": "<TÍTULO_BOTÓN_1>"
},
{
"title": "<TÍTULO_BOTÓN_2>"
},
{
"title": "<TÍTULO_BOTÓN_3>"
}
],
"userId": "USER_ID",
"botId": "BOT_ID",
"type": "quick_reply"
}'
4. Mensaje con Imagen
Un mensaje con imagen es un mensaje que incluye una imagen y un texto opcional.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("image") | Sí |
mediaUrl | URL de la imagen a enviar. | Sí |
text | Mensaje que acompaña la imagen. | No |
Ejemplo de solicitud API (cURL)
Enviar una imagen a un usuario específico.
curl --request POST \
--url https://api.jelou.ai/v1/bots/BOT_ID/messages \
--header 'Authorization: Basic {{Base64Encoded Username:Password}}' \
--header 'Content-Type: application/json' \
--data '{
"text": "MENSAJE",
"mediaUrl": "URL_MEDIA",
"userId": "USER_ID",
"botId": "BOT_ID",
"type": "image"
}'
5. Mensaje de Audio
Un mensaje de audio es un mensaje que se envía como un archivo de audio.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("audio") | Sí |
mediaUrl | URL del archivo de audio a enviar. | Sí |
Ejemplo de solicitud API (JSON)
{
"mediaUrl": "URL_MEDIA",
"userId": "USER_ID",
"botId": "BOT_ID",
"type": "audio"
}
6. Mensaje con Video
Un mensaje con video es un mensaje que se envía con un video y un texto opcional.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("video") | Sí |
mediaUrl | URL del archivo de video a enviar. | Sí |
text | Mensaje que acompaña el video. | No |
Ejemplo de solicitud API (JSON)
{
"mediaUrl": "URL_MEDIA",
"text": "MENSAJE",
"userId": "USER_ID",
"botId": "BOT_ID",
"type": "video"
}
7. Mensaje con Archivo
Un mensaje con archivo es un mensaje que se envía con un archivo y texto opcional.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("file") | Sí |
mediaUrl | URL del archivo a enviar. | Sí |
text | Mensaje que acompaña el archivo. | No |
filename | Nombre del archivo. | No |
Ejemplo de solicitud API (JSON)
{
"mediaUrl": "URL_MEDIA",
"userId": "USER_ID",
"botId": "BOT_ID",
"type": "file"
}
8. Mensaje con Sticker
Un mensaje con sticker es un mensaje que se envía con un sticker.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("sticker") | Sí |
mediaUrl | URL del archivo del sticker a enviar. | Sí |
Ejemplo de solicitud API (JSON)
{
"mediaUrl": "URL_MEDIA",
"userId": "USER_ID",
"botId": "BOT_ID",
"type": "sticker"
}
9. Mensaje con Ubicación
Un mensaje con ubicación es un mensaje que se envía con una ubicación específica.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("location") | Sí |
coordinates | Objeto que contiene la latitud y longitud de la ubicación. | Sí |
coordinates.lat | Latitud de la ubicación (número decimal). | Sí |
coordinates.long | Longitud de la ubicación (número decimal). | Sí |
Ejemplo de solicitud API (JSON)
{
"coordinates": {
"lat": "latitud",
"long": "longitud"
},
"userId": "USER_ID",
"botId": "BOT_ID",
"type": "location"
}
10. Mensaje de contacto
Un mensaje con ubicación es un mensaje que se envía con una ubicación específica.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("contacts") | Sí |
contacts | Objeto que contiene la información del contacto. | Sí |
Ejemplo de solicitud API (JSON)
{
"type": "contacts",
"userId": "USER_ID",
"contacts": [
{
"addresses": [
{
"street": "1 Lucky Shrub Way",
"city": "Menlo Park",
"state": "CA",
"zip": "94025",
"country": "United States",
"country_code": "US",
"type": "Office"
}
],
"emails": [
{
"email": "user@example.com",
"type": "Work"
}
],
"name": {
"formatted_name": "John Doe",
"first_name": "John",
"last_name": "Doe",
"middle_name": "M."
},
"phones": [
{
"phone": "+PHONE_ID",
"type": "Mobile",
"wa_id": "PHONE_ID"
}
]
}
]
}
11. Mensaje de solicitud de ubicación
Un mensaje con un botón de solicitud de ubicación hacia el usuario.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("location_request") | Sí |
text | Contenido del mensaje. | Sí |
Ejemplo de solicitud API (JSON)
{
"type": "location_request",
"userId": "USER_ID",
"text": "Hello World"
}
12. Mensaje con botón URL
Un mensaje de texto con un botón de tipo URL.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("cta_url") | Sí |
title | Cabecera del mensaje. | Sí |
text | Contenido del mensaje. | Sí |
caption | Texto de pie de página. | Sí |
parameters.url | URL del botón. | Sí |
parameters.display_text | Texto del botón. | Sí |
Ejemplo de solicitud API (JSON)
{
"type": "cta_url",
"userId": "USER_ID",
"title": "Hi",
"text": "Hello World",
"caption": "Jelou",
"parameters": {
"display_text": "Apps",
"url": "https://apps.jelou.ai"
}
}
13. Mensaje con botón de flujo
Un mensaje de texto con un botón de tipo FLOW.
Parámetros
Propiedad | Descripción | Obligatorio |
---|---|---|
type | Tipo de mensaje ("cta_url") | Sí |
title | Cabecera del mensaje. | Sí |
text | Contenido del mensaje. | Sí |
caption | Texto de pie de página. | Sí |
parameters | Contenido del botón. | Sí |
Ejemplo de solicitud API (JSON)
{
"type": "flow",
"userId": "USER_ID",
"text": "Hello World😎",
"caption": "Jelou",
"title": "Hi",
"parameters": {
"flow_id": "FLOW_ID",
"flow_cta": "FLOW_CTA",
"flow_name": "FLOW_NAME",
"flow_action_payload": {
"screen": "RECOMMEND"
},
"mode": "draft",
"flow_action": "navigate",
"flow_message_version": "3"
}
}
Tipo de datos de Medios Admitidos
Todos los enlaces a los recursos enviados a través de la API deben cumplir con los siguientes requisitos:
- La URL debe estar disponible públicamente en Internet.
- No debe requerir autenticación (tokens, cookies, etc.).
- No debe expirar rápidamente, al menos hasta después de que se haya confirmado la recepción del mensaje.
- La URL debe usar HTTPS y apuntar directamente al archivo (no a una página HTML).
- El archivo debe estar en un formato soportado por WhatsApp y respetar los límites de tamaño.
Medio | Tipo de datos Admitidos | Límite de Tamaño |
---|---|---|
Audio | audio/aac , audio/mp4 , audio/mpeg , audio/amr , audio/ogg Nota: Solo códecs opus para audio/ogg | 16MB |
Archivo | text/plain , application/pdf , application/vnd.ms-powerpoint , application/msword , application/vnd.ms-excel , application/vnd.openxmlformats-officedocument.wordprocessingml.document , application/vnd.openxmlformats-officedocument.presentationml.presentation , application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | 100MB |
Imagen | image/jpeg , image/png | 5MB |
Video | video/mp4 , video/3gp | 16MB |
Sticker | image/webp | 100KB |