Cómo enviar mensajes de WhatsApp desde Hojas de cálculo de Google usando la API de WhatsApp

Publicado: 2022-06-16

WhatsApp with Google Sheets

Este tutorial describe cómo puede usar la nueva API de WhatsApp con Google Apps Script para enviar mensajes de WhatsApp desde Hojas de cálculo de Google. El mismo enfoque también funcionaría para enviar mensajes de WhatsApp desde Google Forms cuando se reciben nuevos envíos de formularios.

Paso 1: crea una aplicación de WhatsApp

Vaya a developer.facebook.com y haga clic en el botón Create App para crear una nueva aplicación que usaremos para enviar mensajes de WhatsApp.

Facebook WhatsApp App

Seleccione Business como el tipo de aplicación.

Asigne a su aplicación un nombre descriptivo (no use ninguna marca registrada de Facebook como WhatsApp o Facebook en el nombre de la aplicación) y haga clic en el botón Create App para crear la aplicación.

WhatsApp App Name

Una vez que se haya creado la aplicación, haga clic en el botón WhatsApp en la siguiente pantalla para agregar capacidades de envío de WhatsApp a su aplicación.

En la siguiente pantalla, se le pedirá que vincule su aplicación WhatsApp a su cuenta comercial de Facebook. También tendrá la opción de crear una nueva cuenta comercial si aún no tiene una.

Add WhatsApp App

Paso 2: agregue el número de teléfono del destinatario

Facebook le proporcionará un número de teléfono de WhatsApp de prueba que será la dirección de envío predeterminada de su aplicación. Para los destinatarios, tendrá la opción de agregar un máximo de 5 números de teléfono durante la fase de desarrollo sin tener que realizar ningún pago.

Su aplicación WhatsApp le proporcionará un token de acceso temporal que será válido durante 23 horas. Tome nota de este token, ya que lo necesitaremos en un paso posterior.

WhatsApp Phone Number

A continuación, haga clic en el menú desplegable Recipient Phone Number para agregar hasta 5 números de teléfono de WhatsApp diferentes a su aplicación. Recibirá un código de verificación en los números agregados y podrá enviar mensajes de WhatsApp solo a números que hayan sido verificados con el código.

Verify Phone Number

Paso 3: Crear plantilla de mensaje de WhatsApp

Cambie al administrador de plantillas y cree una nueva plantilla de mensaje de WhatsApp.

Para este ejemplo, elegiremos la categoría como Account Update y le daremos un nombre único a su plantilla de mensaje. Para los idiomas, elegiremos el inglés cuyo idioma de código es en . Si usa otro idioma, tome nota del idioma del código, ya que se requiere para enviar mensajes.

WhatsApp Message Template

Escribe el Mensaje Personalizado

Estamos utilizando parámetros variables en el mensaje y estos se reemplazarán con los valores reales de la hoja de cálculo de Google. Es muy similar a los marcadores que puede haber usado dentro de Mail Merge y Document Studio con la pequeña diferencia de que estos son marcadores posicionales y no marcadores con nombre.

Aquí está nuestra plantilla de mensaje donde las variables {{1}} y {{2}} son para el nombre del cliente y el nombre del artículo respectivamente.

WhatsApp Message Template

WhatsApp puede tardar hasta un minuto en aprobar su nueva plantilla de mensaje.

Paso 4: Enviar mensajes de WhatsApp

Ahora que toda nuestra configuración en el lado de Facebook / WhatsApp está completa, trabajemos en la hoja de Google que realmente enviará estos mensajes de WhatsApp personalizados de manera automática.

Haga clic aquí para copiar la hoja de WhatsApp en su propia cuenta de Google.

Google sheets WhatsApp

A continuación, agregue los números de teléfono (con el código de país) en la columna Número de teléfono de la Hoja de cálculo de Google. Solo debes agregar números que hayas verificado con tu cuenta de WhatsApp de prueba en el paso anterior.

Luego vaya al menú Extensión y elija Apps Script para abrir el script subyacente. Reemplace WHATSAPP_ACCESS_TOKEN y WHATSAPP_TEMPLATE_NAME con los valores que ha copiado en los pasos anteriores.

Haga clic en el botón Run dentro del editor de secuencias de comandos de aplicaciones y debería enviar instantáneamente el mensaje de WhatsApp a los números de teléfono que figuran en la lista.

Y lo que tiene a continuación es el mensaje real de WhatsApp enviado por la API de WhatsApp reemplazando los marcadores de variables en la plantilla con valores reales de Google Sheets.

WhatsApp Message Text

Los detalles técnicos

Cómo funciona la API de WhatsApp con Google Apps Script

Google Apps Script se conecta a Google Sheets y recupera los detalles de los clientes, incluidos los números de teléfono, a los que se les enviarán mensajes a través de WhatsApp.

 // Get data from Google Sheets // for sending messages through WhatsApp const getSheetData_ = ( ) => { const sheet = SpreadsheetApp . getActiveSheet ( ) ; const [ header , ... rows ] = sheet . getDataRange ( ) . getDisplayValues ( ) ; const data = [ ] ; rows . forEach ( ( row ) => { const recipient = { } ; header . forEach ( ( title , column ) => { recipient [ title ] = row [ column ] ; } ) ; data . push ( recipient ) ; } ) ; return data ; } ;

A continuación, el script recorre cada fila de la hoja y envía un mensaje de WhatsApp invocando la API de WhatsApp Cloud con el servicio UrlFetch.

 // Send Message with WhatsApp Cloud API const sendMessage_ = ( e ) => { const apiUrl = 'https://graph.facebook.com/v13.0/114746974570888/messages' ; const request = UrlFetchApp . fetch ( apiUrl , { muteHttpExceptions : true , method : 'POST' , headers : { Authorization : ` Bearer ${ WHATSAPP_ACCESS_TOKEN } ` , 'Content-Type' : 'application/json' , } , payload : JSON . stringify ( { type : 'template' , messaging_product : 'whatsapp' , to : e . recipient_number , template : { name : WHATSAPP_TEMPLATE_NAME , language : { code : LANGUAGE_CODE } , components : [ { type : 'body' , parameters : [ { type : 'text' , text : e . customer_name } , { type : 'text' , text : e . item_name } , { type : 'text' , text : e . delivery_date } , ] , } , ] , } , } ) , } ) ; const { error } = JSON . parse ( request ) ; if ( error ) { Logger . log ( ` ${ error } ` ) ; } else { Logger . log ( ` Message sent to ${ recipient_number } ` ) ; } } ; const main = ( ) => { getSheetData_ ( ) . forEach ( ( row ) => { const status = sendMessage_ ( { recipient_number : row [ 'Phone Number' ] . replace ( / [^\d] / g , '' ) , customer_name : row [ 'Customer Name' ] , item_name : row [ 'Item Name' ] , delivery_date : row [ 'Delivery Date' ] , } ) ; } ) ; } ;

Ver también: Automatice los flujos de trabajo con Hojas de cálculo de Google