Send a message

Permite enviar mensajes.

Send a message

POST /v2 /contact/{identifier}/message

Sends a message to a specific contact through specific channel. If channelId is not specified, the message will be sent through last interacted channel. Note that for custom payload message type only supported for Telegram, Facebook, Viber and Line, channelId must be specified in order to send a custom payload message. Example for identifier - id:123 | email:[email protected] | phone:+60121233112

Path Parameters

Name
Type
Description

identifier*

String

Headers

Name
Type
Description

Token*

Bearer token

Request Body

Name
Type
Description

Request*

Json

{
  "messageId": 0
}

Request examples

curl --request POST \
  --url https://api.chatapi.net/v2/contact/identifier/message \
  --header 'Authorization: Bearer 123456789012345678901234567890' \
  --header 'Content-Type: application/json' \
  --data '{
  "channelId": 0,
  "message": {
    "type": "text",
    "text": "Message text",
    "messageTag": "ACCOUNT_UPDATE/POST_PURCHASE_UPDATE/CONFIRMED_EVENT_UPDATE"
  }
}'

Algunos ejemplos para Whatsapp

Envío de plantilla de WhatsApp solo texto

Esta solicitud envía un mensaje template solo texto directamente al contacto.

Ejemplo de solicitud

curl --request POST \
  --url https://api.chatapi.net/v2/contact/identifier/message \
  --header 'Authorization: Bearer 123456789012345678901234567890' \
  --header 'Content-Type: application/json' \
  --data '{
	"channelId": 0,
	"message": {
		"type": "whatsapp_template",
		"template": {
			"name": "bug_fixed",
			"languageCode": "es",
			"components": [
				{
					"type": "body",
					"text": "¡Buenas noticias! 😀. Hemos arreglado el error que reportaste, por favor haz algunas pruebas y cuéntanos cómo funcionó."
				}
			]
		}
	}
}'

Formato del arreglo components

Campo
Tipo
Obligatorio
Valor de ejemplo

type

String

Si

body

text

String

Si

Este es un mensaje template

Envío de plantilla de WhatsApp con parámetros

Esta solicitud envía un mensaje template con parámetros directamente al contacto.

Ejemplo de la petición

curl --request POST \
  --url https://api.chatapi.net/v2/contact/identifier/message \
  --header 'Authorization: Bearer 123456789012345678901234567890' \
  --header 'Content-Type: application/json' \
  --data '{
	"channelId": 0,
	"message": {
		"type": "whatsapp_template",
		"template": {
			"name": "account100",
			"languageCode": "es",
			"components": [
				{
					"type": "body",
					"text": "Hola, {{1}}, tu cuenta ha alcanzado {{2}} de tu límite de contactos. Para evitar perder conversaciones, aumenta tu límite de contactos {{3}}. Siéntase libre de comunicarse con cualquier pregunta.",
					"parameters": [
						{
							"type": "text",
							"text": "Parámetro 1"
						},
						{
							"type": "text",
							"text": "Parámetro 2"
						},
						{
							"type": "text",
							"text": "Parámetro 3"
						}
					]
				}
			]
		}
	}
}'

Formato del arreglo components

Campos
Tipo
Obligatorio
Valor de ejemplo

type

String

Si

body

text

String

Si

Esto es un mensaje template

parameters

Array

Si

Abajo los detalles del arreglo

Arreglo parameters

Campos
Tipo
Obligatorio
Valores de ejemplo

type

String

Si

text

text

String

Si

Admite cualquier valor de texto sin formato, campos estándar, campos personalizados

Envío de plantilla de WhatsApp con encabezado

Esta solicitud envía un mensaje template con encabezado directamente al contacto.

Ten en cuenta que esta funcionalidad solo está disponible para 360 Dialog y Vonage.

Ejemplo de la petición

curl --request POST \
  --url https://api.chatapi.net/v2/contact/identifier/message \
  --header 'Authorization: Bearer 123456789012345678901234567890' \
  --header 'Content-Type: application/json' \
  --data '{
	"channelId": 0,
	"message": {
		"type": "whatsapp_template",
		"template": {
			"name": "account_update_en",
			"languageCode": "es",
			"components": [
				{
					"type": "header",
					"format": "text",
					"text": "El equipo de Ecuabots está aquí para usted"
				},
				{
					"type": "body",
					"text": "Hola, tu cuenta ha sido actualizada."
				},
				{
					"type": "footer",
					"text": "Que tenga un lindo día"
				},
				{
					"type": "buttons",
					"buttons": [
						{
							"type": "url",
							"text": "Visítanos",
							"url": "https://www.ecuabots.com/"
						}
					]
				}
			]
		}
	}
}'

Formato del arreglo components

Campos
Tipo
Obligatorio
Valor de ejemplo

type

String

Si

header

format

String

Si

Consulte la tabla de formato de texto O imagen/documento/video

Text Format

Campos
Tipo
Ogligatorio
Valores de ejemplo

text

String

Si

Texto header

parameters

Array

No

Tenga en cuenta que solo necesitamos incluir la matriz de parámetros si el texto del encabezado contiene parámetros. { type: "text", text: "parámetro1 ó @contact.field ó @field.custom_field" }

Imagen / Documento / Video

Campos
Tipo
Obligatorio
Valor de ejemplo

parameters

Array

Si

Ver abajo el Objeto parámetro

Parameter Object

Campos
Tipo
Obligatorio
Valor de ejemplo

type

String

Si

imagen ó video ó documento

image OR document OR video

Object

Si

Ver detalle abajo

Objeto Imagen / Documento / Video

Campos
Tipo
Obligatorio
Valor de ejemplo

link

String

Si

https://ecuabots.com/img/animated-logo.jpg

filename

String

No

sample.jpg

Envío de plantilla de WhatsApp con botones CTA

Esta solicitud envía un mensaje template con botones CTA directamente al contacto.

Ejemplo de petición

curl --request POST \
  --url https://api.chatapi.net/v2/contact/identifier/message \
  --header 'Authorization: Bearer 123456789012345678901234567890' \
  --header 'Content-Type: application/json' \
  --data '{
	"channelId": 0,
	"message": {
		"type": "whatsapp_template",
		"template": {
			"name": "delivery_order",
			"languageCode": "en",
			"components": [
				{
					"type": "header",
					"format": "image",
					"parameters": [
						{
							"type": "image",
							"image": {
								"link": "https://picsum.photos/200/300"
							}
						}
					]
				},
				{
					"type": "body",
					"text": "Hola, {{1}} tu pedido {{2}} está en camino. Para realizar un seguimiento de su entrega, simplemente haga clic en el enlace o las actualizaciones del socio de entrega.",
					"parameters": [
						{
							"type": "text",
							"text": "abc"
						},
						{
							"type": "text",
							"text": "abc"
						}
					]
				},
				{
					"type": "footer",
					"text": "Para más consultas, simplemente responda a este mensaje."
				},
				{
					"type": "buttons",
					"buttons": [
						{
							"type": "url",
							"text": "Seguimiento de su paquete",
							"url": "https://www.ecuabots.com/"
						},
						{
							"type": "phone_number",
							"text": "Servicio al cliente",
							"phone_number": "+593997333444"
						}
					]
				}
			]
		}
	}
}'

Formato del arreglo components

Campos
Tipo
Obligatorio
Valores de ejemplo

type

String

Si

buttons

button

Array

Si

Ver objeto Button

Objeto Button

Campos
Tipo
Obligatorio
Valores de ejemplo

type

String

Si

url

text

String

Si

Texto del botón

url

String

Si

Si el tipo de botón es "url", entonces debemos incluir esto: https://ecuabots.com

phone_number

String

Si

Si el tipo de botón es "phone_number", entonces debemos incluir esto: +593994334567

parameters

Array

Si

Si el tipo de botón es "url" y contiene parámetros, entonces debemos incluir el texto del parámetro { type: "text", text: "button_parameter_text" }

Envío de plantilla de WhatsApp con respuestas rápidas

Esta solicitud envía un mensaje template con respuestas rápidas.

Ejemplo de la petición

curl --request POST \
  --url https://api.chatapi.net/v2/contact/identifier/message \
  --header 'Authorization: Bearer 123456789012345678901234567890' \
  --header 'Content-Type: application/json' \
  --data '{
	"channelId": 0,
	"message": {
		"type": "whatsapp_template",
		"template": {
			"name": "account_update_en",
			"languageCode": "es",
			"components": [
				{
					"type": "header",
					"format": "text",
					"text": "El equipo de Ecuabots está aquí para usted"
				},
				{
					"type": "body",
					"text": "Hola, tu cuenta ha sido actualizada."
				},
				{
					"type": "footer",
					"text": "Que tenga un lindo día"
				},
				{
					"type": "buttons",
					"buttons": [
						{
							"type": "quick_reply",
							"text": "Si"
						},
						{
							"type": "quick_reply",
							"text": "No"
						},
						{
							"type": "quick_reply",
							"text": "Confirmaré más tarde"
						}
					]
				}
			]
		}
	}
}'

Formato del arreglo components

Campo
Tipo
Obligatorio
Valor de ejemplo

type

String

Si

buttons

button

Array

Si

Ver abajo

Objeto Button

Campo
Tipo
Obligatorio
Valores de ejemplo

type

String

Si

quick_reply

text

String

Si

Opción 1

Envío de plantilla de WhatsApp con pie de página

Esta solicitud envía un template message con pie de página al contacto.

Ten en cuenta que esta funcionalidad de API solo está disponible para 360 Dialog y Vonage.

Ejemplo de la petición

curl --request POST \
  --url https://api.chatapi.net/v2/contact/identifier/message \
  --header 'Authorization: Bearer 123456789012345678901234567890' \
  --header 'Content-Type: application/json' \
  --data '{
	"channelId": 0,
	"message": {
		"type": "whatsapp_template",
		"template": {
			"name": "account_update_en",
			"languageCode": "es",
			"components": [
				{
					"type": "header",
					"format": "text",
					"text": "El equipo de Ecuabots está aquí para usted"
				},
				{
					"type": "body",
					"text": "Hola, tu cuenta ha sido actualizada."
				},
				{
					"type": "footer",
					"text": "Que tenga un lindo día"
				},
				{
					"type": "buttons",
					"buttons": [
						{
							"type": "url",
							"text": "Visítanos",
							"url": "https://www.ecuabots.com/"
						}
					]
				}
			]
		}
	}
}'

Formato del arreglo components

Campo
Tipo
Obligatorio
Valor de ejemplo

type

String

Si

footer

text

String

Si

Texto para el footer

Preguntas frecuentes

Plantilla de WhatsApp solo con texto

¿Qué sucede si envío un texto que no coincide exactamente con el configurado en WhatsApp Business Manager?

El contacto recibirá la plantilla configurada en WhatsApp Business Manager. Sin embargo, en el módulo Mensajes de Ecuabots, aparecerá como enviado desde la API de mensajería. Para evitar esta discrepancia, le recomendamos que utilice el texto de plantilla exacto en el cuerpo de la solicitud.

¿Qué sucede si no incluyo texto con formato en la solicitud de API pero mi plantilla tiene formato incluido?

Al igual que en el caso anterior, el contacto recibirá la plantilla configurada en WhatsApp Business Manager. Sin embargo, en el módulo Mensajes, aparecerá como enviado desde la API de mensajería. Para evitar esta discrepancia, le recomendamos que utilice el texto de plantilla exacto en el cuerpo de la solicitud.

Dado que el contacto siempre recibirá el mensaje configurado en WhatsApp Business Manager, ¿puedo omitir el texto al enviar la solicitud?

Si omite el texto, el contacto seguirá recibiendo el mensaje de plantilla deseado; sin embargo, no aparecerá en el módulo Mensajes de Ecuabots. Para evitar esta discrepancia, le recomendamos que utilice el texto de plantilla exacto en el cuerpo de la solicitud.

Plantilla de WhatsApp con parámetros

¿Qué sucede si no incluyo los parámetros / tengo una cantidad incorrecta de parámetros en la solicitud?

El mensaje de la plantilla no se enviará al contacto y la API devolverá un código de error que se mostrará en el módulo Mensajes.

¿Qué sucede si uso un campo personalizado eliminado como valor de parámetro?

El mensaje de la plantilla aún se enviará, pero el valor del parámetro se tratará como una cadena literal en su lugar.

¿Puedo formatear los valores de los parámetros?

Sí, puede formatear los valores de los parámetros. Los formatos admitidos son negrita, cursiva, monoespaciado y tachado.

¿Puedo omitir el texto del cuerpo y solo incluir el número correcto de parámetros?

El contacto recibirá la plantilla configurada en WhatsApp Business Manager con los valores de los parámetros enviados. Sin embargo, en el módulo Mensajes, aparecerá como enviado desde la API de mensajería. Para evitar esta discrepancia, le recomendamos que utilice el texto de plantilla exacto en el cuerpo de la solicitud.

Plantilla de WhatsApp con encabezado

¿Qué sucede si no incluyo los parámetros / tengo una cantidad incorrecta de parámetros en la solicitud?

El mensaje de la plantilla no se enviará al contacto y la API devolverá un código de error que se mostrará en el módulo Mensajes.

Si el encabezado no tiene parámetros, ¿puedo omitirlo de la solicitud?

Si omite el componente del encabezado de la solicitud, el contacto seguirá recibiendo el encabezado como parte del mensaje; sin embargo, el texto del encabezado no se reflejará en el módulo de Mensajes de Ecuabots. En vista de esto, es mejor incluir siempre el texto del encabezado en la API para sincronizar el comportamiento entre el módulo de mensajes de Ecuabots y el contacto de WhatsApp.

¿Qué sucede si no incluyo valores de nombre de archivo para encabezados de tipo de imagen/video/documento?

Para archivos de imagen y video, el mensaje aún se enviará y se reflejará tanto en el teléfono de contacto como en el módulo de Mensajes. Para el encabezado del tipo de documento, si se omite el nombre del archivo, el módulo Mensajes mostrará el documento correctamente, pero el mensaje de contacto mostrará el archivo adjunto como nulo.pdf. A la luz de esto, para mantener el comportamiento consistente, incluya el nombre del archivo como mejor práctica

¿Qué formato debe tener la URL de la imagen/video/documento?

La URL de imagen/video/documento debe ser una URL válida con formato http/https y debe poder resolverse. Antes de incluir la URL de la imagen, intente abrir la URL de la imagen en una ventana del navegador y asegúrese de que la imagen esté cargada para asegurarse de que funciona correctamente.

Plantilla de WhatsApp con botones CTA

¿Qué sucede si no incluyo los parámetros / tengo una cantidad incorrecta de parámetros en la solicitud?

El mensaje de la plantilla no se enviará al contacto y la API devolverá un código de error que se mostrará en el módulo Mensajes.

¿Qué sucede si no incluyo/incluyo parcialmente las opciones de los botones si los botones no incluyen parámetros?

El mensaje enviado al contacto seguirá conteniendo todos los botones configurados en WhatsApp Business Manager. Sin embargo, el módulo Mensajes en Ecuabots no reflejará esto y puede causar una falta de coincidencia. En vista de esto, es mejor tener el componente de botón incluido en el cuerpo de la solicitud.

Plantilla de WhatsApp con respuestas rápidas (quick replies)

¿Qué sucede si no incluyo/incluyo parcialmente las opciones de respuesta rápida?

El mensaje enviado al contacto seguirá conteniendo todas las respuestas rápidas configuradas en WhatsApp Business Manager. Sin embargo, el módulo Mensajes no reflejará esto y puede causar una falta de coincidencia. En vista de esto, es mejor tener el texto de respuesta rápida incluido en el cuerpo de la solicitud.

¿Qué sucede si la opción de respuestas rápidas no coincide?

El mensaje enviado al contacto seguirá conteniendo todas las respuestas rápidas configuradas en WhatsApp Business Manager. Sin embargo, el módulo Mensajes no reflejará esto y puede causar una falta de coincidencia. En vista de esto, es mejor que el texto de respuesta rápida coincida con los valores configurados en WhatsApp Business Manager.

Plantilla de WhatsApp con pie de página

¿Puedo omitir el componente de pie de página de la solicitud ya que es estático?

Si omite el componente de pie de página de la solicitud, el contacto seguirá recibiendo el pie de página como parte del mensaje; sin embargo, el texto del pie de página no se reflejará en el módulo Mensajes de Ecuabots. En vista de esto, es mejor incluir siempre el texto del pie de página en la API, así como sincronizar el comportamiento entre el módulo de Mensajes de Ecuabots y el contacto de WhatsApp.

¿Qué sucede si envío un pie de página que no coincide exactamente con el configurado en WhatsApp Business Manager?

El contacto recibirá la plantilla configurada en WhatsApp Business Manager. Sin embargo, en el módulo Mensajes, aparecerá como enviado desde la API de mensajería. Para evitar esta discrepancia, le recomendamos que utilice el texto de plantilla exacto en el cuerpo de la solicitud.

Last updated