https://a.storyblok.com/f/270183/1368x665/3d1d4c29f9/sms-google-sheet.png

Cómo enviar SMS desde Google Sheets

Publicado el August 1, 2024

Tiempo de lectura: 5 minutos

A menudo me olvido de desear un feliz cumpleaños a mis queridos amigos y familiares. No es que sea mi intención, pero con una agenda apretada y las largas distancias que nos separan, parece que cada vez me olvido más a menudo de enviar un mensaje a tiempo.

Pues bien, ¡se me acaba de ocurrir la solución perfecta! Creé una hoja de cálculo de Google Sheets con mis queridos contactos, sus cumpleaños y mensajes sinceros. Usando Google Apps Scripts y AI Studio de Vonage, creé una integración para enviar SMS automáticamente desde Google Sheets. ¡Y todo es low-code!

En este tutorial, aprenderá a enviar SMS desde Google Sheets y ¡no volverás a perderte un cumpleaños!

Example of Outbound SMSExample of Outbound SMS

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.

Requisitos previos

Cómo crear un chatbot para SMS salientes

Para crear su agente, siga las instrucciones de la documentación de AI Studio aquí. Hay tres opciones importantes para nuestro agente:

  • Tipo: SMS

  • Plantilla: Empezar de cero

  • Evento: Salida

La funcionalidad de su agente será bastante sencilla: enviar un único SMS con sus buenos deseos de cumpleaños. Utilizarás un único Nodo de envío de mensajes y un Nodo de Fin de Conversación. Puede encontrar el contenido del mensaje en el siguiente paso.

Cómo crear parámetros personalizados en AI Studio

Dentro de su Nodo Enviar Mensaje, necesitará dos 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 Enviar Mensaje. Dentro del nodo, añada el siguiente mensaje. Para utilizar sus parámetros, escriba $ seguido del nombre del parámetro. Por ejemplo, para usar el valor de su nombre, escriba $nombre.

Dear $name,

$message

Haga clic en Guardar y Salir.

Cómo conectar su agente virtual a un número virtual

El último paso es conectar su agente a un número virtual y publicar la aplicación. Esta guía explica cómo desplegar su agente para que sea accesible en la Internet pública.

Cómo crear una base de datos de Google Sheets

Abrir Hojas de cálculo de Google 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, nombra tu hoja cumpleaños como se muestra a continuación.

Example of Google Sheet DataExample of Google Sheet DataSu hoja tendrá 4 cabeceras de columna:

  1. name

  2. phone_number

  3. birthday

  4. message

Añade los datos de diez amigos.

  • Para phone_number, añada su número u otro número de teléfono al que pueda acceder para recibir SMS de prueba. Numbers deben estar en formato internacional sin + o 00. Por ejemplo, un número de EE.UU. sería 15552345678

  • Asegúrese de que su phone_number esté formateada en "Texto sin formato" o tendrá problemas con los datos más adelante.

  • Asegúrese de que birthday tenga el formato Date tipo. Por ejemplo, 9/26/2008.

Plain Text Formatting in Google SheetsPlain Text Formatting in Google Sheets

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.

Apps Script Tab in Google SheetsApps Script Tab in Google SheetsPrimero, dale a tu nuevo proyecto un título bonito como Birthday Messages API. Borra el código en code.gs y sustitúyelo por lo siguiente:

function sendBirthdaySMS() {
 // 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 una función sendBirthdaySMS que busca en nuestra hoja de cálculo la hoja birthdays hoja. Luego itera a través de 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 de la persona. A continuación, pasa esta información a la función sendRequest que enviará la información del cumpleaños a AI Studio.

Cómo enviar una solicitud POST de Apps Script

Ahora creará su función sendRequest función para activar su Agente Virtual de Salida. Puede pegar el siguiente código debajo de la sección sendBirthdaySMS() sección.

Para que este código funcione, tendrás que actualizar 3 valores:

  1. aiStudioUrl

  • El punto final depende de la región que haya seleccionado para su agente:

Para agentes de la UE → https://studio-api-eu.ai.vonage.com/messaging/conversation Para agentes de EE.UU. --> https://studio-api-us.ai.vonage.com/messaging/conversation

  1. X-Vgai-Key

  • Añade tu clave API de AI Studio. Puedes encontrar el icono 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".

  1. agent_id

  • Agrega el id de tu agente de Vonage AI Studio. Puedes encontrarlo en detalles del agente.

function sendRequest(payload) {
 // Add your URL depending if using EU or US agent
 // check point #2 above for URL to add in the ''
 var aiStudioUrl = ''

  // Define headers for the POST request
 var headers = {
'Content-Type': 'application/json',
 	'X-Vgai-Key': '' // Replace with your AI Studio key
 };
  // Define the body for the POST request
 var body = {
   "to": payload.phone_number,
   "agent_id": "", // Replace with your agent ID
   "channel": "sms",
   "session_parameters": [
     {
       "name": "name",
       "value": payload.name
     },
     {
       "name": "message",
       "value": payload.message
     }
   ]
 };
  // Define the options for the POST request (e.g., headers, authentication)
 var options = {
   'method': 'post',
   'headers': headers,
   'payload': JSON.stringify(body)
 };

  // Send the POST request
 var response = UrlFetchApp.fetch(aiStudioUrl, 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. Los valores para el nombre y el mensaje en AI Studio los preparas tú previamente. Todo esto se agrupa en opciones, y usando UrlFetchApp se realiza la solicitud.

Recientemente, AI Studio ha añadido límites en las peticiones. Para adaptarse, se añade un retardo de 2 segundos entre solicitudes mediante Utilities.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 tres 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 para que se ejecute diariamente

La aplicación debe ejecutarse diariamente para comprobar si alguien cumple años. Usted puede hacer esto con bastante facilidad en Apps Script por:

  1. En el panel izquierdo, seleccione "Activadores".

  2. Haga clic en "Añadir activador".

  3. Elija los siguientes ajustes:

  4. Elija la función que desea ejecutar: sendBirthdaySMS

    • Elija qué despliegue debe ejecutarse: HEAD

    • Seleccione la fuente del evento: Time-driven

    • Seleccione el tipo de activación temporal: Day timer

    • Seleccione la hora del día: decida cuándo desea que se envíen sus mensajes.

  5. Haz clic en "Guardar".

Conclusión

Ahora que has conectado tu agente de SMS de AI Studio con Google Sheets, ¿qué es lo siguiente?

Tal vez puedas enviar un correo electrónico de cumpleaños utilizando AI Studio's Nodo Email. Podrías crear un Agente de voz para cantar a tus amigos una canción de cumpleaños. 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:

https://a.storyblok.com/f/270183/384x384/e4e7d1452e/benjamin-aronov.png
Benjamin AronovDefensor del Desarrollador

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.