Hojas de cálculo de Google es una solución de hojas de cálculo basada en la nube que admite la colaboración en tiempo real y proporciona herramientas para visualizar, procesar y comunicar datos.
En este instructivo, se muestra cómo crear e implementar un flujo de trabajo que crea un extremo de devolución de llamada (o webhook), guarda la URL de devolución de llamada en Hojas de cálculo de Google, pausa la ejecución y, luego, espera la aprobación humana a través de la hoja de cálculo de Sheets para reiniciar el flujo de trabajo. Obtén más información para usar devoluciones de llamada.
Crea una carpeta nueva en Google Drive
Crea una carpeta nueva en Google Drive. Esta carpeta se usa para almacenar tu hoja de cálculo. Si configuras un permiso para la carpeta compartida, tu flujo de trabajo podrá escribir en la hoja de cálculo.
- Ve a drive.google.com.
- Haz clic en Nuevo > Nueva carpeta.
- Ingresa un nombre para la carpeta.
- Haz clic en Crear.
- Haz clic con el botón derecho en la carpeta nueva y selecciona Compartir.
Agrega la dirección de correo electrónico de la cuenta de servicio predeterminada de Compute Engine.
Esto le otorga a la cuenta de servicio acceso a la carpeta. Cuando asocies la cuenta de servicio a tu flujo de trabajo, este tendrá acceso de edición a cualquier archivo de la carpeta. Obtén más información para compartir archivos, carpetas y unidades.
Selecciona el rol de Editor.
Desmarca la casilla de verificación Notificar a las personas.
Haz clic en Compartir
Crea una hoja de cálculo con Hojas de cálculo de Google
Cuando creas una hoja de cálculo a través de Hojas de cálculo de Google, esta se guarda en Google Drive. De forma predeterminada, la hoja de cálculo se guarda en tu carpeta raíz de Drive. No existe la opción de crear una hoja de cálculo directamente en una carpeta especificada con la API de Hojas de cálculo de Google. Sin embargo, existen alternativas, como mover la hoja de cálculo a una carpeta específica después de crearla, como se hace en este ejemplo. Para obtener más información, consulta Cómo trabajar con carpetas de Google Drive.
Ve a sheets.google.com.
Haz clic en Nuevo
.
Se creará y abrirá la nueva hoja de cálculo. Cada hoja de cálculo tiene un valor de
spreadsheetIdúnico que contiene letras, números, guiones o guiones bajos. Puedes encontrar el ID de la hoja de cálculo en una URL de Hojas de cálculo de Google:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0Anota este ID, ya que lo necesitarás cuando crees tu flujo de trabajo.
Agrega encabezados de columna para que coincidan con el siguiente ejemplo:

Ten en cuenta que el valor de la columna G, ¿Aprobado?, se usa para iniciar devoluciones de llamada en el flujo de trabajo.
Mueve la hoja de cálculo a la carpeta de Google Drive que creaste anteriormente:
- En la hoja de cálculo, selecciona Archivo > Mover.
- Navega a la carpeta que creaste.
- Haz clic en Mover.
También puedes usar el conector de la API de Google Sheets para crear una hoja de cálculo. Ten en cuenta que, cuando se usa el conector, el spreadsheetId se puede recuperar del resultado de resp.
Por ejemplo:
- create_spreadsheet:
call: googleapis.sheets.v4.spreadsheets.create
args:
body:
connector_params:
scopes: ${driveScope}
result: resp
- assign_sheet_id:
assign:
- sheetId: ${resp.spreadsheetId}
Extiende Hojas de cálculo de Google con Apps Script
Apps Script te permite crear, leer y editar Hojas de cálculo de Google de forma programática. La mayoría de las secuencias de comandos diseñadas para Hojas de cálculo manipulan arrays para interactuar con las celdas, las filas y las columnas de una hoja de cálculo. Para obtener una introducción al uso de Apps Script con Hojas de cálculo de Google, consulta la Guía de inicio rápido de funciones personalizadas.
Crea un proyecto de Apps Script desde Hojas de cálculo de Google:
- Abre tu hoja de cálculo de Hojas de cálculo.
- Selecciona Extensiones > Apps Script.
- En el editor de secuencias de comandos, haz clic en Proyecto sin título.
- Asigna un nombre al proyecto y haz clic en Cambiar nombre.
Tu secuencia de comandos ahora está vinculada a tu hoja de cálculo, lo que le otorga habilidades especiales para alterar la interfaz de usuario o responder cuando se abre la hoja de cálculo.
Un proyecto de secuencia de comandos representa una colección de archivos y recursos de Apps Script. Los archivos de código en un proyecto de secuencia de comandos tienen una extensión
.gs.Puedes usar Apps Script para escribir funciones personalizadas que puedes usar en Hojas de cálculo de Google como si fueran funciones integradas. Las funciones personalizadas se crean con JavaScript estándar. Crea una función:
- Abre tu proyecto de Apps Script.
- Haz clic en Editor .
- Un archivo de secuencia de comandos aparece como un archivo de proyecto llamado
Code.gs. Para editar el archivo, selecciónalo. Reemplaza cualquier código del editor de secuencias de comandos por el siguiente código, que lee los datos de tu hoja de cálculo y los pasa como entrada a la ejecución de un flujo de trabajo:
Haz clic en Guardar .
Los activadores instalables de Apps Script permiten que un proyecto de secuencia de comandos ejecute una función especificada cuando se cumplen ciertas condiciones, como cuando se abre o edita una hoja de cálculo. Crea un activador:
- Abre tu proyecto de Apps Script.
- Haz clic en Activadores .
- Haz clic en Add Trigger.
- En el diálogo Add Trigger for YOUR_PROJECT_NAME, configura el activador de la siguiente manera:
- En la lista Elige qué función ejecutar, selecciona handleEdit.
- En la lista Elige qué implementación se debe ejecutar, selecciona Head.
- En la lista Selecciona la fuente del evento, elige Desde hoja de cálculo.
- En la lista Selecciona el tipo de evento, selecciona On edit.
- En la lista Configuración de notificaciones de error, selecciona Notificarme diariamente.
- Haz clic en Guardar.
Si recibes un mensaje para elegir una Cuenta de Google, selecciona la cuenta adecuada y, luego, haz clic en Permitir.
Esto permite que tu proyecto de Apps Script vea, edite, cree y borre tus hojas de cálculo de Hojas de Google, y que se conecte a un servicio externo.
Un archivo de manifiesto de un proyecto de Apps Script es un archivo JSON que especifica la información básica del proyecto que Apps Script necesita para ejecutar una secuencia de comandos correctamente. Ten en cuenta que el editor de Apps Script oculta los archivos de manifiesto de forma predeterminada para proteger la configuración de tu proyecto de Apps Script. Edita el archivo de manifiesto:
- Abre tu proyecto de Apps Script.
- Haz clic en Configuración del proyecto .
- Selecciona la casilla de verificación Mostrar el archivo de manifiesto "appsscript.json" en el editor.
- Haz clic en Editor .
- El archivo de manifiesto aparece como un archivo de proyecto llamado
appsscript.json. Para editar el archivo, selecciónalo. El campo
oauthScopesespecifica un array de cadenas. Para establecer los permisos de autorización que usa tu proyecto, agrega un array con los permisos que deseas admitir. Por ejemplo:{ "timeZone": "America/Toronto", "dependencies": { }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/spreadsheets" ] }
Esto establece permisos explícitos para lo siguiente:
- Se conecta a un servicio externo.
- Ver, editar, configurar y borrar tus Google Cloud datos, y ver la dirección de correo electrónico de tu Cuenta de Google
- Vea, edite, cree y borre todos sus archivos de Hojas de cálculo de Google
Haz clic en Guardar .
Implementa un flujo de trabajo que escribe en una hoja de cálculo y usa devoluciones de llamada
Implementa un flujo de trabajo que se ejecute, se detenga y, luego, se reanude cuando se apruebe una devolución de llamada a través de una hoja de cálculo. El flujo de trabajo escribe en una hoja de cálculo de Sheets con el conector de la API de Google Sheets.
Console
En la consola de Google Cloud , ve a la página Workflows:
Haz clic en Crear.
Ingresa un nombre para el flujo de trabajo nuevo:
workflows-awaits-callback-sheets.En la lista Región, selecciona us-central1 (Iowa).
En Cuenta de servicio, selecciona la cuenta de servicio predeterminada de Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com).Haz clic en Siguiente.
En el editor de flujos de trabajo, ingresa la siguiente definición para el flujo de trabajo:
Asegúrate de reemplazar el valor del marcador de posición
sheetIdpor tuspreadsheetId.Haz clic en Implementar.
gcloud
Crea un archivo de código fuente para tu flujo de trabajo:
touch workflows-awaits-callback-sheets.yamlEn un editor de texto, copia el siguiente flujo de trabajo en tu archivo de código fuente:
Asegúrate de reemplazar el valor del marcador de posición
sheetIdpor tuspreadsheetId.Para implementar el flujo de trabajo, ingresa el siguiente comando:
gcloud workflows deploy workflows-awaits-callback-sheets \ --source=workflows-awaits-callback-sheets.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
Reemplaza
PROJECT_NUMBERpor el número de tu proyecto Google Cloud. Puedes recuperar el número de tu proyecto de la siguiente manera:gcloud projects describe PROJECT_ID
Prueba el flujo de extremo a extremo
Ejecuta el flujo de trabajo para probar el flujo de extremo a extremo. Ejecuta la definición actual del flujo de trabajo asociada con el flujo de trabajo.
Console
En la consola de Google Cloud , ve a la página Workflows:
En la página Flujos de trabajo, selecciona el flujo de trabajo workflows-awaits-callback-sheets para ir a su página de detalles.
En la página Detalles del flujo de trabajo, haz clic en play_arrow Ejecutar.
Haz clic de nuevo en Ejecutar.
Se iniciará el flujo de trabajo y su estado de ejecución debería ser En ejecución. Los registros también indican que el flujo de trabajo está en pausa y en espera:
Execute steps here before waiting for callback from sheets ... Started waiting for callback from sheet 1JlNFFnqs760M_KDqeeeDc_qtrABZDxoalyCmRE39dpM
Verifica que el flujo de trabajo haya escrito los detalles de la devolución de llamada en una fila de tu hoja de cálculo.
Por ejemplo, deberías ver el ID de ejecución del flujo de trabajo en la columna Execution ID, un extremo de devolución de llamada en la columna Callback URL y FALSE en la columna Approved?.
En la hoja de cálculo, cambia FALSE por TRUE.
Después de un minuto o dos, la ejecución debería reanudarse y, luego, completarse con un estado de ejecución Correcto.
gcloud
Abre una terminal.
Ejecuta el flujo de trabajo:
gcloud workflows run workflows-awaits-callback-sheets
El flujo de trabajo se inicia y el resultado debería indicar que está pausado y en espera:
Waiting for execution [a8361789-90e0-467f-8bd7-ea1c81977820] to complete...working.
Verifica que el flujo de trabajo haya escrito los detalles de la devolución de llamada en una fila de tu hoja de cálculo.
Por ejemplo, deberías ver el ID de ejecución del flujo de trabajo en la columna Execution ID, un extremo de devolución de llamada en la columna Callback URL y FALSE en la columna Approved?.
En la hoja de cálculo, cambia FALSE por TRUE.
Después de un minuto o dos, la ejecución debería reanudarse y, luego, completarse con un estado de ejecución de
SUCCEEDED.