
Compartir:
Benjamin Aronov es desarrollador de Vonage. Es un constructor de comunidades con experiencia en Ruby on Rails. Benjamin disfruta de las playas de Tel Aviv, a la que llama hogar. Su base en Tel Aviv le permite conocer y aprender de algunos de los mejores fundadores de startups del mundo. Fuera de la tecnología, a Benjamin le encanta viajar por el mundo en busca del perfecto pain au chocolat.
Hacer llamadas telefónicas desde Google Sheets
Tiempo de lectura: 5 minutos
Últimamente, me olvido de llamar a mis amigos en sus cumpleaños. No es a propósito, es sólo que vivir a medio mundo de distancia lo hace difícil. Pero como trabajo en una empresa de API de comunicaciones, puedo solucionar este problema con la tecnología.
Sin duda, ¡se me ocurrió la solución perfecta! Creé una hoja de cálculo de Google Sheets con mis queridos contactos, sus cumpleaños y mensajes de corazón. Y ahora mis amigos reciben tontas llamadas de cumpleaños robóticas. Combinando Google Apps Scripts y AI Studio de Vonage para enviar automáticamente un mensaje de cumpleaños robótico desde Google Sheets. Y todo con una interfaz de bajo código de arrastrar y soltar.
Esta integración es perfecta para cualquiera que desee realizar llamadas telefónicas desde una hoja de cálculo o realizar llamadas telefónicas desde un CSV, pero no desea crear una solución de código completo.
En este tutorial, aprenderás a enviar llamadas telefónicas desde Google Sheets y no volverás a perderte ningún cumpleaños.
Requisitos previos
Cuenta de desarrollador de Vonage
Número virtual de Vonage: Alquile un número para tu agente virtual
Account de Google Sheets: Registrarse en Google
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
Cómo crear un chatbot de voz saliente
Para crear su agente, siga las instrucciones que se encuentran en la documentación de AI Studio. Hay tres opciones importantes para nuestro agente, seleccione:
Tipo: Telefonía
Plantilla: Empezar de cero
Evento: Salida
La funcionalidad de su agente será bastante sencilla: un único SMS con sus buenos deseos de cumpleaños. Utilizará un único Nodo de envío de mensajes y un Nodo de Fin de Conversación.
Overview of Bot Architecture
Cómo crear parámetros personalizados en AI Studio
Dentro de su Nodo Enviar Mensaje, necesitará 2 parámetros. Así que abra el panel de Propiedades en el lado izquierdo y elija parámetros. En Parámetros Personalizados cree las siguientes entradas:
nombre - @sys.any
mensaje - @sys.any
Guarde los parámetros y abra su Nodo Hablar. Dentro del nodo, añada el siguiente mensaje. Utilice sus parámetros escribiendo $ seguido del nombre del parámetro. Por ejemplo, para usar el valor de tu nombre escribirás $nombre.
<speak><break time='1s' /> <p> Dear $name</p> <p>Your loving friend YOUR_NAME has the following birthday message for you: $message </p> <p>Have a wondeful birthday!</p></speak>Observará que está utilizando Lenguaje de marcado de síntesis de voz para poder añadir una pausa de un segundo y crear diferentes párrafos para que el agente hable de forma más natural.
Haga clic en Guardar y Salir.
Cómo conectar su agente virtual a un número virtual
El último paso es conectar a su agente a un número virtual. Esta guía explica cómo publicar su agente.
Cómo crear una base de datos de Google Sheets
Abre Google Sheets y haz clic en Hoja de cálculo en blanco. Dale a tu hoja de cálculo un título bonito como Mensajes de cumpleaños. Además, asigna a tu hoja el nombre cumpleaños.
Simple Birthday Database in Google Sheets
Su hoja tendrá 4 cabeceras de columna:
nombre
número_teléfono
cumpleaños
mensaje
Añade datos de 10 amigos.
Para número_teléfonoañada su número u otro número de teléfono al que pueda acceder para recibir SMS de prueba. Numbers debe estar en formato internacional sin ningún + o 00. Por ejemplo, un número de EE.UU. sería 15552345678
Asegúrese de que su número_teléfono esté formateada en "Texto sin formato" o tendrá problemas con los datos más adelante.
Asegúrese de que cumpleaños tenga el formato Fecha tipo. Por ejemplo, 9/26/2008.
Select Plain Text
Cómo convertir Google Sheet a JSON
Ahora convertirás tu hoja de cálculo de Google en una aplicación programable. Abre la pestaña Extensiones y selecciona Apps Scripts. Apps Scripts te permite escribir código sobre aplicaciones de Google Workspace como Google Sheets o Google Docs para automatizar y ampliar sus funciones.
En primer lugar, dé a su nuevo proyecto un título agradable como API de Mensajes de Cumpleaños. Borre el código en code.gs y sustitúyalo por lo siguiente:
function sendBirthdayCall() {
// Open the spreadsheet by name
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("birthdays");
// Get today's date
var today = new Date();
var todayDay = today.getDate();
var todayMonth = today.getMonth() + 1;
// Get all the data from the sheet
var data = sheet.getDataRange().getValues();
// Iterate through each row to check for birthdays
for (var i = 1; i < data.length; i++) {
var name = data[i][0];
var phoneNumber = data[i][1];
var birthday = new Date(data[i][2]);
var birthdayDay = birthday.getDate();
var birthdayMonth = birthday.getMonth() + 1;
var message = data[i][3];
// Check if today is the person's birthday
if (birthdayDay === todayDay && birthdayMonth === todayMonth) {
// Prepare the JSON payload
var payload = {
"name": name,
"phone_number": phoneNumber,
"birthday": birthday.toISOString(),
"message": message
};
const payload_string = JSON.stringify(payload)
// Send POST request to AI Studio
sendRequest(payload);
}
}
}Este código crea un archivo sendBirthdayCall que busca en nuestra hoja de cálculo los campos cumpleaños en la hoja. Luego recorre cada fila, comprobando si hoy es el cumpleaños de la persona comparando el valor del día y el mes. Si es así, crea el objeto payload que contiene la información del cumpleañero o cumpleañera. A continuación, pasa esta información al comando sendRequest que enviará la información del cumpleaños a AI Studio.
Cómo enviar una solicitud POST de Apps Script
Ahora creará su sendRequest para para activar su Agente Virtual de Salida. Puede pegar el siguiente código debajo de la función enviarLlamadaDeCumpleaños() sección.
Para que este código funcione, tendrás que actualizar 3 valores:
aiStudioUrl
El punto final depende de la región que haya seleccionado para su agente:
Para los agentes de la UE → https://studio-api-eu.ai.vonage.com/telephony/make-call
Para agentes estadounidenses --> https://studio-api-us.ai.vonage.com/telephony/make-call
Tecla X-Vgai
Añade tu clave API de AI Studio. Puede encontrar la X-Vgai-Key en la parte superior derecha del lienzo de AI Studio. Haz clic en el icono "usuario" y, a continuación, en "Generar clave API".
agente_id
Añadir el id de tu agente de Vonage AI Studio. Puedes encontrarlo en los detalles del agente.
function sendRequest(payload) {
// Replace with either the US or EU URL
var url = '';
// Define headers for the POST request
var headers = {
'Content-Type': 'application/json',
'X-Vgai-Key': '' // Replace with your key
};
// Define the body for the POST request
var body = {
"to": payload.phone_number,
"agent_id": "", // Replace with your agent ID
"session_parameters": [
{
"name": "name",
"value": payload.name
},
{
"name": "message",
"value": payload.message
}
]
};
// Make sure to set proper options for your API request (e.g., headers, authentication)
var options = {
'method': 'post',
'headers': headers,
'payload': JSON.stringify(body)
};
// Send the POST request
var response = UrlFetchApp.fetch(url, options);
// Add a two-second delay before sending the next request
Utilities.sleep(2000);
// Log the response (you can do more error handling here)
Logger.log(response.getContentText());
}¿Qué hace este código? Crea una petición POST preparando la URL, las cabeceras y el cuerpo. En las cabeceras, la clave X-Vgai-Key garantiza que este agente le pertenece. En el cuerpo, le dice a AI Studio qué agente activar y a quién enviar los mensajes. Y le pasas los valores de nombre y mensaje en AI Studio, que preparaste previamente. Todo esto se agrupa en opciones y utilizando UrlFetchApp haces la petición.
Recientemente, AI Studio ha añadido límites en las solicitudes. Para adaptarse, se añade un retardo de 2 segundos entre las solicitudes utilizando Utilidades.sleep(2000);
Y ya está. Ahora puede probar que su código funciona haciendo clic en Ejecutar.
Para las pruebas, asegúrate de que al menos 3 de los contactos cumplen años el día en curso y tienen un número de teléfono al que puedes acceder.
¡Qué guay!
Cómo crear un Cron Job en Apps Script
La aplicación debe ejecutarse diariamente para comprobar si alguien cumple años. Usted puede hacer esto con bastante facilidad en Apps Script por:
En el panel izquierdo, seleccione "Activadores".
Haga clic en "Añadir activador".
Elija los siguientes ajustes:
Elige qué función ejecutar: sendBirthdayCall
Elija qué despliegue debe ejecutarse: HEAD
Seleccionar fuente de eventos: En función del tiempo
Seleccione el tipo de activación por tiempo: Temporizador de día
Seleccione la hora del día: Decide cuándo quieres que se envíen tus mensajes.
Haga clic en "Guardar".
Conclusión
Ahora que has aprendido a llamar a números de teléfono desde Google Sheets, ¿qué es lo siguiente?
Tal vez puedas enviar un correo electrónico de cumpleaños con AI Studio's Nodo Email. Tal vez tus amigos tengan "telefobia", así que podrías crear un agente de SMS. O podría utilizar la integración de IA Generativa para enviar a tus amigos una divertida foto de cumpleaños.
Sea lo que sea lo que decida hacer, queremos que nos lo cuente. Póngase en contacto con nosotros en nuestra Slack de la comunidad de desarrolladores o en X, antes conocido como Twitter.
Recursos adicionales
Compartir:
Benjamin Aronov es desarrollador de Vonage. Es un constructor de comunidades con experiencia en Ruby on Rails. Benjamin disfruta de las playas de Tel Aviv, a la que llama hogar. Su base en Tel Aviv le permite conocer y aprender de algunos de los mejores fundadores de startups del mundo. Fuera de la tecnología, a Benjamin le encanta viajar por el mundo en busca del perfecto pain au chocolat.
