En este artículo, examinaremos a fondo el proceso de enviar, editar y eliminar mensajes a través de la API de Wazzup.
Para enviar mensajes es necesario hacer una solicitud:
POST https://api.wazzup24.com/v3/messageEn el cuerpo de la solicitud debes pasar los parámetros del mensaje con los datos de autorización en el encabezado.
POST /v3/message
├── channelId *
├── chatType *
├── chatId
├── text
├── contentUri
├── refMessageId
├── crmUserId
├── crmMessageId
├── username
├── phone
├── clearUnanswered
├── templateId
├── templateValues[]
└── buttonsObject
├── buttons[]
│ ├── text
│ └── type
└── payload
Los parámetros obligatorios están marcados con un asterisco (*)
| Parámetro | Tipo | Descripción |
| channelId* | String | ID del canal (uuidv4) a través del cual se enviará el mensaje. |
| chatType* | String | Tipo de mensajería. Valores disponibles:
|
| chatId | String | ID de chat (cuenta del contacto en el mensajero):
|
| text | String | Texto del mensaje. Es obligatorio si no se especifica el contentUri. No se pueden enviar tanto el texto como el contentUri al mismo tiempo. Restricciones:
Los mensajes de WhatsApp, WABA, Viber y Telegram Bot se pueden formatear usando los siguientes símbolos: bold — negrita Los mensajes de Telegram Bot también se pueden formatear usando las siguientes etiquetas: <code><b>bold</b></code> — para texto en negrita |
| contentUri | String |
Un enlace al archivo a enviar. Es obligatorio si no se especifica texto. El contenido debe ser descargado a través de un enlace sin redirecciones. Se intentará descargar el contenido tan pronto como se reciba la solicitud, es decir, se pueden usar enlaces de corta duración. Puede haber restricciones sobre el tipo y el tamaño del contenido, específicas de cada mensajero. No se puede transmitir tanto el texto como el contentUri al mismo tiempo. Los mensajes de voz de Telegram de hasta 1 MB en formatos .mp3 y .ogg se enviarán como mensajes de voz. Otros formatos y grabaciones más grandes se enviarán como archivos. |
| refMessageId | String | Id del mensaje a citar. |
| crmUserId | String | ID del usuario de CRM especificado con los usuarios CRUD. Si se especifica, y si dicho usuario ya existe, guardaremos su ID y nombre como al enviar mediante iframe. No funciona al conectarse a través de la API Sidecar. |
| crmMessageId | String | Identificador de mensaje en el CRM. Necesario para que el enrutamiento sea idempotente. |
| username | String | Solo para Telegram Personal. Nombre de usuario del contacto de Telegram, sin el símbolo "@" al inicio. Puede usarse al enviar mensajes a través de Telegram si no se conoce el chatId. |
| phone | String | Solo para Telegram Personal. Número de teléfono del contacto en formato internacional, sin el signo "+" ni otros símbolos, solo números, incluyendo el código de país correspondiente. Puede usarse al enviar mensajes a través de Telegram si no se conoce el chatId. |
| clearUnanswered | Boolean | Indica si se debe reiniciar el contador de mensajes no respondidos. Especifica "false" для evitar que el mensaje restablezca el contador. Por ejemplo, útil en automatizaciones, para que el usuario del CRM reciba una notificación de un nuevo mensaje entrante, incluso si el cliente ha enviado una respuesta automática. Si no se especifica nada, el mensaje saliente reiniciará el contador. |
| templateId | String | Código de plantilla WABA. |
| templateValues | Array de String | Valores para rellenar las variables en la plantilla. |
| buttonsObject | Objeto buttonsObject | Botones adjuntos a un mensaje. Se pueden utilizar para trabajar con plantillas WABA и с интерактивными сообщениями WABA. |
| Parámetro | Tipo | Descripción |
| buttons | Object[ ] | No se permiten más de 10 botones. Si el array contiene más de 10 botones, se tomarán únicamente los primeros 10. |
| buttons.text | String | Necesario para trabajar con mensajes interactivos. Texto del botón, máximo 20 caracteres. |
| buttons.type | String | Tipo de botón. Actualmente solo se admite el formato "text". |
| payload | String | Payload de las plantillas y de los botones de mensajes interactivos. |
Si el mensaje ya fue enviado, cualquier otra solicitud con el mismo crmMessageId no se enviará, y se devolverá el error:
400 Bad Request
{ error: 'repeatedCrmMessageId', description: 'Ya has enviado un mensaje con el mismo crmMessageId' }
fetch("https://api.wazzup24.com/v3/message", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer {apiKey|sidecarApiKey}",
},
body: {
channelId: "e0629e11-0f67-4567-92a9-2237e91ec1b9",
chatId: "string-chat-id",
chatType: "whatsapp",
text: "message text"
},
});
Si envías una plantilla sin payload a través de la API, en el webhook de mensaje de respuesta se enviará el texto del botón correspondiente.
| Parámetro | Tipo | Descripción |
| messageId | String | Identificador del mensaje. Solo aparece cuando code=OK |
| chatId | String | ID del chat. Solo aparece cuando code=OK |
Una vez enviado el mensaje, se puede editar o eliminar, siempre y cuando el canal lo soporte.
PATCH https://api.wazzup24.com/v3/message/:messageId| Parámetro | Tipo | Descripción |
| messageId | String | Identificador del mensaje (en la URL) |
| crmUserId | String | ID del usuario CRM, especificado con CRUD de usuarios |
| text | String | Texto del mensaje. Obligatorio si no se usa contentUri |
| contentUri | String | URL del archivo a enviar. Obligatorio si no se usa text |
DELETE https://api.wazzup24.com/v3/message/:messageId