Índice:
- Introducción
- Verificación de usuario
- Solicitud
- Activador de notificación
- Redirigir al usuario en el flujo
- Arquitectura del enrutador
Nota. Las notificaciones se envían a través de solicitudes http, así que comprenda temas de "solicitud" como estos, como las notificaciones enviadas por WatsApp.
Introducción
Enviar una notificación en WhatsApp depende de algunos pasos para que se realice con éxito. Suponiendo que ya tiene su plantilla de mensaje registrada, los pasos necesarios se describen a continuación.
Nota: La variable ORGANIZATION_ID es el identificador de la organización en la que se encuentra su bot. Si no está en una organización, no necesita usar este prefijo en las solicitudes, incluido el punto, es decir, comience con http://http.msging.net/.
Verificación de usuario
Antes de enviar, es necesario validar el número de usuario en cuestión. Este proceso debe realizarse para cada envío. En posesión de los números de contacto, es necesario tener acceso al identificador del usuario en WhatsApp. Recuerde realizar esta operación solo una vez por cada cliente.
Solicitud
La búsqueda del identificador se realiza a través de una solicitud HTTP teniendo en cuenta el número de celular del cliente en formato internacional "+DDI DDD NÚMERO_DE_TELEFONO". PUNTO DE ATENCIÓN: No olvides agregar el signo de "+" antes de enviar. Para obtener más detalles sobre la verificación del usuario, el chequeo de contacto y la validez del número consultado, consulta aquí.
Aquí tienes un ejemplo de un número considerando el identificador del país igual a 55 (Brasil) y el DDD igual a 31 (Minas Gerais).
+5531999998888
YOUR_TOKEN es la clave de autorización de tu bot.
PHONE_NUMBER es el número del usuario a ser validado. Ejemplo: +5531999998888.
POST https://{ORGANIZATION_ID}.http.msging.net/commands HTTP/1.1 |
Respuesta
En la respuesta a esta llamada habrá algunos datos de contacto. Aquí, la más importante es la cuenta alternativa, que debe usarse para activar la notificación, por lo que, después de la validación, guarde el valor respondido en este campo. Los demás campos son información extra y no siempre estarán disponibles, dependiendo del contacto.
HTTP/1.1 200 OK |
Activador de notificación
Después de verificar al usuario, puede usar la cuenta alternativa para activar la notificación para este contacto.
Solicitud
Para activarlo, deberá completar una payload en los estándares de WhatsApp, que debe contener la información sobre su plantilla.
- TO - La cuenta alternativa previamente recuperada;
- MESSAGE_TEMPLATE_NAME: el nombre de la plantilla de mensaje que se utilizará. También se puede encontrar en la pestaña de contenidos.
Los campos de idioma y componentes deben usarse de acuerdo con su plantilla.
El idioma se puede usar cuando su plantilla necesita enviarse a más de un idioma. Se pueden encontrar más detalles sobre su uso aquí en la documentación oficial.
Los componentes están relacionados con los valores que componen el mensaje de la plantilla, además de los textos predefinidos en la aprobación. Pueden ser de tipo body, header, button, document, video o imagen. En esta documentación encontrará varios ejemplos del uso de tipos de plantilla.
A continuación se muestra un payload de plantilla de mensaje estándar. Tenga en cuenta que en este ejemplo se utiliza un componente de tipo body, que se refiere a dos variables que deben reemplazarse en la plantilla.
POST https://{ORGANIZATION_ID}.http.msging.net/messages HTTP/1.1
Content-Type: application/json
Authorization: Key {YOUR_TOKEN}
{
"id":"{{$guid}}",
"to":"{TO}",
"type":"application/json",
"content":{
"type":"template",
"template":{
"name":"{{MESSAGE_TEMPLATE_NAME}}",
"language":{
"code":"pt_BR",
"policy":"deterministic"
},
"components":[
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "value1"
},
{
"type":"text",
"text":"value2"
}
]
}
]
}
}
}
Respuesta
El procesamiento de notificaciones se realiza de forma asíncrona y en segundo plano. Por lo tanto, a menos que haya algún formato incorrecto en la carga útil de la solicitud, la plataforma responderá con un Accepted (202) y comenzará la integración con WhatsApp, que aún está sujeta a fallas.
Redirigir al usuario en el flujo
En algunos casos es necesario redirigir al usuario dentro del flujo antes o después del disparador. Para hacer esto, simplemente controle la variable de estado del usuario en el flujo.
La variable de estado del usuario no es más que el identificador del bloque en el que se encuentra dentro del flujo. Se pueden ver más detalles de este estado en esta documentación de Blip.
Solicitud
-
- FLOW_ID: este es el parámetro de identificación del flujo del bot. Es único por bot y se puede recuperar dentro de la configuración del constructor;
- ESTATE - Este parámetro es el identificador del bloque que el usuario quiere enviar. Tenga en cuenta que el nombre de la variable de contexto que se cambia es stateid@{FLOW_ID}, que debe codificarse en formato de URL, lo que da como resultado stateid%40{FLOW_ID};
- USER_IDENTITY: debe ser el identificador del usuario cuyo estado desea cambiar.
POST https://{ORGANIZATION_ID}.http.msging.net/commands HTTP/1.1
Content-Type: application/json
Authorization: Key {YOUR_TOKEN}
{
"id": "{{$guid}}",
"to": "postmaster@msging.net",
"method": "set",
"uri": "/contexts/{USER_IDENTITY}/stateid%40{FLOW_ID}",
"type": "text/plain",
"resource": "{STATE}"
}Respuesta
HTTP/1.1 200 OK
Content-Type: application/json
{
"method": "set",
"status": "success",
"id": "1294447a-2581-4597-be6a-a5dff33af156",
"from": "postmaster@msging.net/#az-iris3",
"to": "docstest@msging.net",
"metadata": {
"#command.uri": "lime://docstest@msging.net/contexts/{USER_IDENTITY}/stateid%40{STATE_ID}"
}
}Arquitectura del enrutador
Si está utilizando la arquitectura del bot del enrutador, es necesario establecer una variable de contexto más. La variable master-state. Siguiendo el mismo patrón que la solicitud de cambio de estado del usuario. En este caso, cambias el nombre de la variable y su valor debe ser el identificador del bot (servicio) donde quieres enviar al usuario.
Es importante señalar que esta acción debe realizarse antes de cambiar el estado del usuario dentro del flujo.
Solicitud
- USER_IDENTITY - Este debe ser el identificador del usuario que quiere cambiar el estado;
- MASTERSTATE: el identificador del bot con el formato {IDENTIFICADOR}@msging.net. El IDENTIFICADOR lo puede encontrar en la página de inicio o en la url de su bot.
POST https://{ORGANIZATION_ID}.http.msging.net/commands HTTP/1.1
Content-Type: application/json
Authorization: Key {YOUR_TOKEN}
{
"id": "{{$guid}}",
"to": "postmaster@msging.net",
"method": "set",
"uri": "/contexts/{USER_IDENTITY}/master-state",
"type": "text/plain",
"resource": "{MASTERSTATE}"
}Respuesta
HTTP/1.1 200 OK
Content-Type: application/json
{
"method": "set",
"status": "success",
"id": "1294447a-e581-4g97-re6a-a5dff33af156",
"from": "postmaster@msging.net/#az-iris3",
"to": "docstest@msging.net",
"metadata": {
"#command.uri": "lime://docstest@msging.net/contexts/{USER_IDENTITY}/master-state"
}
}
Para obtener más información, visite la discusión sobre el tema en nuestra comunidad o los videos en nuestro canal. 😃