
Construir un tablero interactivo: WhatsApp, SMS y MMS a un sitio web (Parte 2)
Tiempo de lectura: 8 minutos
Visión general
En Parte 1creamos un tablero de mensajes interactivo para recibir mensajes SMS, MMS y WhatsApp y mostrarlos en una página web. Esta aplicación utilizó la API Messages API de Vonage y un servidor Express.
En la Parte 2, reproduciremos esta funcionalidad con una vuelta de tuerca. UtilizaremosVonage AI Studiopara manejar los mensajes entrantes. Nuestros mensajes se almacenarán en una base de datos Airtable y luego se mostrarán en nuestra aplicación Node.js.
Vonage AI Studio es una plataforma de bajo código que facilita a desarrolladores y no desarrolladores la creación de asistentes virtuales. Con su intuitiva interfaz de arrastrar y soltar, puedes diseñar flujos conversacionales.
Puede encontrar el código del panel de administración en este repositorio de GitHub. Clona, y vamos a seguir el tutorial que he preparado para ti, explicando todas las partes paso a paso.
Esquema del proyecto
Interacción con el usuario: Un usuario inicia la interacción enviando un mensaje de WhatsApp a un número de teléfono virtual de Vonage específico vinculado a la aplicación de Vonage que contiene el flujo.
Recepción de mensajes: El flujo de la conversación comienza con el nodo "Inicio", que permite al usuario enviar o ver mensajes.
Almacenamiento de datos: Una vez procesado, el mensaje se guarda en Airtable, una plataforma en línea para crear y compartir bases de datos relacionales.
Visualizar: Construir nuestro Admin Dashboard: Una página web, continuamente actualizada, obtiene estos mensajes de Airtable y los muestra.
Almacenar información en la base de datos de Airtable
En primer lugar, vamos a crear nuestro almacenamiento de datos, así que cree una Account en Airtable. Una vez conectado, encontrar los siguientes pasos desde el tablero de instrumentos Airtable. En comparación con la parte 1, he optado por simplificar para la parte 2 y crear sólo una tabla llamada Mensajes.
Crear una base llamada "Tablero Interactivo" haciendo clic en "+ Crear una base", y elegir un color de tema y el icono de forma opcional; Me he saltado el resto de la configuración, pero no dude en rellenar si lo desea y pasar por el final de la creación de la base donde me llevan a la base de Mensajes.
Ahora puede ver algunas filas numeradas vacías. Vamos a crear una tabla llamada Mensajes. Tiene las siguientes columnas: 'Mensaje', 'Numbers' (número de teléfono), 'Estado' de tipo 'Selección única' y añadimos las opciones 'Aceptado', 'Pendiente' y 'Rechazado'. Y por último, 'ImageUrl'.
Crear vistas como "Vista de cuadrícula" para filtrar mensajes
Incorporar un sistema de moderación para aprobar o rechazar mensajes
Una vez que los registros se registran en airtable, tienen el estado 'Pendiente'. Sus moderadores pueden acceder a la base de datos de Airtable y cambiar manualmente el estado de cada registro a 'Rechazado' o 'Aceptado'. Si son aceptados, saldrán en la página web del tablón interactivo.
Crear el Agente AI Studio: Guía paso a paso
Desglosaré cada paso para que puedas crear el flujo de nuestra aplicación conversacional.
Acceso a AI Studio:
Iniciar sesión/ Registrarse en Vonage AI Studio. Lo encontrarás en el panel de Vonage, debajo del menú de la izquierda. Selecciona "AI Studio" y haz clic en "Ir a AI Studio".
AI Studio
Configuración del agente de WhatsApp:
Elige "WhatsApp" como tipo de agente y haz clic en "Siguiente".
Whatsapp Agent CreationRellene los datos necesarios, como Región, Nombre del agente (por ejemplo, "Pizarra interactiva"), Idioma y Zona horaria (por ejemplo, Europa/Londres) y haga clic en "Siguiente".
Agent Creation Details
Selección de plantillas:
Haga clic en "Crear agente". Para crear una nueva aplicación, visita Agentes de Vonage AI Studio.
Elija la plantilla "Empezar de cero".
Seleccione 'Evento de Sesión de Entrada' y haga clic en 'Crear'. Este paso es esencial para que los usuarios inicien la sesión con el agente.
Construir la Aplicación Conversacional: Definir el flujo conversacional
Esta sección se adentrará en los pormenores de la creación de una aplicación conversacional con integración de WhatsApp:
Vonage AI Agent Dashboard
Crear un "Saludo (Enviar mensaje) justo después de la ruta START de bienvenida a los usuarios, explica las capacidades del bot en la entrada 'El agente dice', y haz clic en 'Guardar y Salir'.
Greeting Node
Crear una Recoger Entrada nodo de conversación, elija el parámetro MENSAJE, elija 'Listar Mensajes', y añada una sección para 'Ver Mensajes' y otra sección para 'Enviar Mensajes', añada cualquier otra información que crea conveniente para que quede descrito y el usuario lo entienda y pulse 'Guardar y Salir'.
Input collection
Crear una Condiciones (lo he llamado "Menú Condición: ver o enviar") con dos condiciones: 'Ver Mensaje' y 'Enviar Mensaje'. La primera condición debe ser Parámetro: MENSAJE, Operación: Contiene, Valor: Ver. La segunda debe ser Parameter: MENSAJE, Operación: Contiene, Valor: Enviar.
Menu Condition
Tras el bloque de condiciones, crearemos dos bloques:
Un nodo 'Enviar Mensajes' vinculado a nuestra condición 'Ver' (lo he llamado Mensaje a Ver Mensajes). El mensaje debería decir Si desea ver todos los mensajes de salida, acceda a este enlace.
Actualizaremos este enlace más adelante con el enlace ngrok que tendrás funcionando con tu servidor express. Por ahora, puedes dejarlo con un mensaje ficticio.
Message to See MessagesUn segundo nodo vinculado a "Enviar" de tipo "Recopilar entradas" (yo lo he llamado "Enviar mensajes") y, en el aviso, añade un mensaje del tipo "¡Adelante, envíame el mensaje o la imagen que te gustaría compartir!" y selecciona "Texto" e "Imagen" como entradas esperadas, ¡ya que es lo que esperamos que envíen nuestros usuarios!
Send Message
Usemos ahora Classification para manejar la entrada de nuestros usuarios. En la parte 1, hemos agregado un archivo que contiene las palabras bloqueadas para nuestra aplicación web. Ahora, en la parte 2, con Vonage AI Studio, podemos agregar un Nodo de clasificación. Puedes encontrarlo en el menú de la izquierda: Nodo > Conversación > Clasificación. Agrega ese bloque al flujo justo después de 'Enviar mensajes' y llénalo con la siguiente información:
Classification Intent
Parámetro de clasificación: MENSAJE Crearemos dos intents: Enviar Mensaje y Bloquear Palabras Desde el Menú de la izquierda, puede hacer clic en 'Propiedades' y crear un nuevo intento, o incluso desde la vista de clasificación en la que se encuentra actualmente, puede hacer clic en 'Intento' y crear uno nuevo desde allí y añadir el conjunto de Entrenamiento para cada intento.
Bloquear palabras: Puedes añadir las palabras bloqueadas para tu flujo (por ejemplo, palabras malsonantes).
Enviar mensaje: puedes añadir algunos ejemplos de mensajes que los usuarios pueden enviar, por ejemplo: "Gran evento", "Me lo estoy pasando muy bien", "Me encanta esto, pero ojalá hubiera sushi".
Más información sobre Clasificación y piense en futuros pasos de mejora añadiendo la integración del análisis de sentimientos para detectar automáticamente los mensajes negativos.
Cree un nodo de envío de mensajes llamado "Alerta de lista permitida". El agente debe decir "El mensaje anterior iba en contra de nuestras directrices de palabras permitidas. Por favor, envíe otro mensaje".
Allowlist alert
La opción de Clasificación "lista de bloqueo" debe estar vinculada a ella, y debe estar vinculada de nuevo a la Entrada de Mensajes de Envío.
Links
A continuación, utilizaremos un Nodo Webhook (lo he llamado "Webhook: Crear registro") para añadir nuestros Mensajes a nuestro backend Airtable. Para añadir registros a Airtable, Haga clic en Integraciones > Webhook y rellene la siguiente información:
Método: POST URL de solicitud: https://api.airtable.com/v0/BASE_URL/Messages Cabeceras: Clave: Authorization, Value: Bearer 'YOUR_AIRTABLE_ACCESS_TOKEN' Key: Content-Type, Valor: application/json
Webhook node
Nota: La URL de la solicitud tiene que alinearse con su tabla en Airtable
Si te quedas atascado o tienes dudas, para una explicación más detallada, consulta Bajo apalancamiento de código: AI Studio con Airtable de Benjamin Aronov, donde explica en detalle cómo utilizar AI Studio con Airtable.
En la segunda pestaña del webhook llamada 'Cuerpo', añade la siguiente información de tipo JSON. Eso significa que estamos añadiendo el mensaje que el usuario envió conteniendo texto o imagen, asignando el número de teléfono de la persona que interactúa con este agente, y estableciendo el estado de Pendiente, donde los moderadores pueden cambiarlo a Aceptado o Rechazado desde Airtable.
{
"records": [
{
"fields": {
"Message":"$MESSAGE",
"Number": "$SENDER_PHONE_NUMBER",
"ImageUrl": "$MESSAGE",
"Status":"Pending"
}
}
]
}Vincule la opción de éxito del webhook a un nuevo nodo 'Enviar Mensaje'. Cree un nuevo nodo 'Enviar Mensaje', nómbrelo 'Media Receipt', y añada bajo Agent Says '¡Gracias por enviar esto!' y haga clic en guardar y salir.
Media receipt
Enlaza la opción de fallo del webhook a la anterior de enviar Mensaje Recoger Entrada para solicitárselo de nuevo. Enlaza el nodo 'Media receipt' al preexistente 'Message to See Messages', y luego enlaza con 'End Conversation'.
Flow
Hablemos de código: Cómo construir nuestro panel de administración
El código es similar al que hemos visto en la parte 1. Sin embargo, podemos eliminar el blocklist.txt ya que esto ahora se maneja dentro del flujo de conversación en Vonage AI Studio y la creación del usuario y la inserción de los registros en Airtable. Sin embargo, mantenemos el endpoint que cambia el estado del mensaje "/messages/:messageId/:status" además del punto final que obtiene los mensajes /messages. Este es el aspecto del index.js para este proyecto.
Tal y como se mencionó en la parte 1, deberías tener ngrok ejecutándose y volver al Flujo del Agente de AI Studio y actualizar el nodo Ver Mensajes con la URL de ngrok proporcionada; siempre podrías alojar tu sitio web y añadir la página web enlazada allí para este tutorial de demostración usando ngrok desde nuestro localhost es suficiente.
Pruébelo
Puedes ver un botón Probador en la parte superior derecha de Vonage AI Studio; puedes probar tu conversación sin publicarla. Selecciona "Sesión entrante" y haz clic en el botón "Iniciar chat". Puedes completar previamente los parámetros con los que deseas que trabaje el agente (haciendo clic en el ícono de configuración/engranaje) y elegir el modo de prueba. Eche un vistazo a la Página del Probador para obtener más información.
Posibles ampliaciones
Añadir compatibilidad con MMS
Hemos utilizado la entrada para empezar con los mensajes de WhatsApp, pero si tuviéramos que utilizar MMS, siempre se puede utilizar el mismo número asignado al chatbot de WhatsApp. Hay algunos requisitos para un MMS Numbers de los EE.UU. 10DLCNumbers que tengas en tu panel de control a otros números dentro de Estados Unidos. Puedes obtener más información sobre Cómo enviar mensajes MMS con Node.js.
Añadir soporte SMS
Dentro de Vonage AI, hay una acción llamada "Enviar SMS". Puedes agregar ese bloque a tu flujo de conversación para enviar un mensaje SMS, completa los campos que contienen los números del remitente y del destinatario y el cuerpo del mensaje, haz clic en 'guardar y salir' y conéctalo al nodo al que deseas que se envíe el mensaje. Puedes obtener más información sobre Cómo enviar SMS con Vonage AI.
Publique su agente
Cuando terminé de crear esta aplicación conversacional de demostración, quise ver cómo quedaba en WhatsApp y poder versionar y publicar mis cambios. Para ello, compré un número de teléfono, se lo asigné al agente, lo vinculé mediante Messages API y creé una WhatsApp Business Account con mi número recién comprado. Puede obtener más información sobre cómo publicar tu agente para publicar el tuyo y compartirlo con los demás
Conclusión
Consulte la Documentos de Vonage AIComparte tus experiencias, comentarios y cualquier uso innovador que hayas encontrado utilizando nuestras API con nuestra comunidad a través de X, antes conocido como Twitter o la Comunidad Slack.