ChatBot
Los chatbots son asistentes virtuales que realizan alguna o muchas tareas de atención al público por medio de alguna herramienta de comunicación.
En este blog te voy a enseñar cómo hacer un chatbot para que interactúe con el usuario por medio de WhatsApp.
Paso 1: Cuenta en BuilderBot - inicio de sesión
Vamos a utilizar un SaaS, que en sí hay muchos en internet; en mi ejemplo voy a utilizar BuilderBot.
Iniciamos creando una cuenta si no la tienes; si la tienes, inicias sesión y nos aparecerá la pantalla principal.
Luego damos clic en Nuevo.
Paso 2: Configuramos los flujos.
Tenemos que tener un flujo de conversación; en este caso va a ser un ejemplo sencillo de preguntar sobre el requerimiento que tiene el usuario.
Finalmente, ese dato lo direccionamos en otro flujo para guardar en la hoja de cálculo de Google (Sheets). Utilizamos una solicitud tipo HTTP y en el body enviamos las variables. En la url del post enviamos la implementación web que vamos a realizar en script.
Código de script para guardar los datos en la hoja de sheets:
// ID de la hoja de cálculo de Google Sheets (reemplaza con tu propio ID)
var spreadsheetId = ''; // Aquí colocas el ID de tu hoaja de cálculo
var sheetName = ''; // El nombre de la hoja
function doPost(e) {
try {
// Obtener los datos de la solicitud POST
var datos = JSON.parse(e.postData.contents);
var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
// Obtener última fila
var ultimaFila = sheet.getLastRow() + 1;
var fechaHora = new Date(); // variable fecha creada dentro de script
sheet.getRange(ultimaFila, 1).setValue(fechaHora).setNumberFormat("dd/MM/yyyy HH:mm:ss");
sheet.getRange(ultimaFila, 2).setValue(datos.nombre); // variable nombre
sheet.getRange(ultimaFila, 3).setValue(datos.requerimiento); // variable requerimiento
// Retornar respuesta en el formato solicitado
return ContentService.createTextOutput(JSON.stringify({
"messages": [
{
"type": "to_user",
"content": "Datos insertados correctamente"
}
]
})).setMimeType(ContentService.MimeType.JSON);
} catch (error) {
// En caso de error, mantener el mismo formato de respuesta
return ContentService.createTextOutput(JSON.stringify({
"messages": [
{
"type": "to_user",
"content": "Error: " + error.toString()
}
]
})).setMimeType(ContentService.MimeType.JSON);
}
}