Saltar al contenido principal

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

PropiedadDescripciónObligatorio
textContenido del mensaje.
buttonsConfiguración de botones.
buttons.titleTítulo sobre el mensaje.No
buttons.buttonTextTexto del botón principal.No
buttons.buttonText.typeTipo de dato de visualización del botón.Sí (si se usa buttonText)
buttons.buttonText.textTexto en el botón principal (Predeterminado: "Opciones").Sí (si se usa buttonText)
buttons.optionsLista de opciones disponibles (mínimo 1, máximo 10).
buttons.options.*.titleTítulo de cada opción (Máximo 24 caracteres).
buttons.options.*.descriptionDescripción de la opción (Máximo 72 caracteres).No
buttons.options.*.payloadTexto 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

PropiedadDescripciónObligatorio
textContenido del mensaje a enviar al cliente.
titleTítulo del mensaje.No
quick_repliesBotones de respuestas rápidas.
quick_replies.*.titleTexto de cada botón de respuesta rápida.
  • 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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("image")
mediaUrlURL de la imagen a enviar.
textMensaje 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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("audio")
mediaUrlURL del archivo de audio a enviar.

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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("video")
mediaUrlURL del archivo de video a enviar.
textMensaje 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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("file")
mediaUrlURL del archivo a enviar.
textMensaje que acompaña el archivo.No
filenameNombre 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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("sticker")
mediaUrlURL del archivo del sticker a enviar.

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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("location")
coordinatesObjeto que contiene la latitud y longitud de la ubicación.
coordinates.latLatitud de la ubicación (número decimal).
coordinates.longLongitud de la ubicación (número decimal).

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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("contacts")
contactsObjeto que contiene la información del contacto.

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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("location_request")
textContenido del mensaje.

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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("cta_url")
titleCabecera del mensaje.
textContenido del mensaje.
captionTexto de pie de página.
parameters.urlURL del botón.
parameters.display_textTexto del botón.

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

PropiedadDescripciónObligatorio
typeTipo de mensaje ("cta_url")
titleCabecera del mensaje.
textContenido del mensaje.
captionTexto de pie de página.
parametersContenido del botón.

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.
MedioTipo de datos AdmitidosLímite de Tamaño
Audioaudio/aac, audio/mp4, audio/mpeg, audio/amr, audio/ogg
Nota: Solo códecs opus para audio/ogg
16MB
Archivotext/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.sheet100MB
Imagenimage/jpeg, image/png5MB
Videovideo/mp4, video/3gp16MB
Stickerimage/webp100KB