Crea un workflow que conecte una API REST con Google Sheets
En este tutorial te mostramos cómo crear un workflow sencillo de OpenFn que
automatiza la sincronización de datos entre una API REST y Google Sheets, con
los adaptors http y GoogleSheets.
Video explicativo
Mira el video y sigue los pasos que aparecen abajo.
Antes de empezar
Antes de comenzar, damos por hecho que revisaste lo siguiente:
- Revisaste nuestro glosario y conoces los conceptos básicos de OpenFn y de las API. Para empezar, consulta estas páginas:
- Tienes una cuenta de Google. La usaremos para crear una credencial que autorice el acceso a Google Sheets.
- Tienes acceso a un proyecto de OpenFn (en una aplicación OpenFn v2 instalada localmente o en app.openfn.org).
Primeros pasos
En esta guía vamos a configurar un workflow que sincronice automáticamente
datos de user desde una API REST web y los importe a una GoogleSheet.
Esta integración se divide en dos partes:
- Obtener datos de la API REST (la aplicación de "origen")
- Transformar e importar estos datos a una tabla de tu GoogleSheet (la aplicación de "destino")
¡Empecemos!
1: Crea un workflow nuevo
Para crear un workflow nuevo en tu proyecto:
- Ve a la página
project dashboard. - Haz clic en el botón
Create new workflow. - Ponle a tu workflow un
Namedescriptivo (por ejemplo,Sync Users List). - Elige tu trigger.
- Edita tu primer step.
2. Configura tu primer step para obtener datos de la API REST
JSONPlaceholder ofrece una API
falsa y gratuita para hacer pruebas y prototipos. Usaremos la
API REST de usuarios para extraer
datos de usuarios. Para eso, configuraremos un step en OpenFn que obtenga esos
datos con una solicitud HTTP GET. Haz clic en tu primer step para configurarlo
con estas opciones:
- Name
Fetch Users - Adaptor
http - Version:
6.0.0 - Credentials (opcional: credencial "Raw JSON") -
{ "baseUrl": "https://jsonplaceholder.typicode.com/"} - Código del job: si configuraste la credencial "Raw JSON" con jsonplaceholder
como baseURL, agrega la operación
get("users")en el bloque de código.
Consulta la documentación sobre el adaptor "http", sobre cómo configurar steps y sobre cómo escribir jobs.
Cuando termines de configurar y escribir tu step, ¡guárdalo y ejecútalo!
- Consulta la sección de workflows para ver más orientación sobre cómo crear y ejecutar workflows.
Revisa el panel Output & Log para ver si tu run se completó con éxito. Si
fue así, deberías ver:
- El estado
success - La pestaña Log termina con
Run complete with status: success - La pestaña Input muestra
{} - La pestaña Output muestra
{ data: [ {...}]}
3. Configura otro step para transformar los datos e importarlos a tu GoogleSheet
Crea una Credential nueva de Googlesheet con el correo de tu cuenta de Google.
(Asegúrate de que este usuario de Google tenga permiso de edición en la
GoogleSheet que quieres integrar).
Si el superusuario de tu instancia no configuró un cliente OAuth global, quizás tengas que configurar uno tú. Consulta los clientes OAuth y los detalles de un cliente de GoogleSheet.
Para esta demostración, configuramos la Googlesheet
así
para guardar los datos de users.
Crea un step nuevo con el adaptor googlesheets para cargar los datos de los
usuarios en tu GoogleSheet de destino. Configura el step con estas opciones:
-
Name
Sync Users -
Adaptor
googlesheets -
Version:
2.2.2 -
Credentials: crea una credencial
GoogleSheet OAuthnueva y guárdala -
Operaciones del step: en este job usaremos la operación
appendValues()para agregar un array de filas a la hoja de cálculo. Asegúrate de cambiar elspreadsheetIdpor el ID de tu hoja de cálculo.// Prepara el array con los datos de los usuariosfn(state => {const users = state.data.map(({ id, name, username, address, phone, website, company }) => [id,name,username,address.city,phone,website,company.name,]);return { ...state, users };});// Agrega los datos de los usuarios a la GoogleSheetappendValues({spreadsheetId: '1gT4cpHSDQp8A_JIX_5lqTLTwV0xBo_u8u3ZNWALmCLc',range: 'users!A1:G1',values: state => state.users,}); -
Input -
Final output of Fetch Users
Si ya ejecutaste el step Fetch Users, tendrás una entrada inicial para probar
el step Sync Users. Selecciona la entrada en el panel Input y haz clic en
Create New Work Order para ejecutar este step.
4. ¡Hora de probar!
- Selecciona el step
Fetch Usersy ábrelo en el Inspector. - Crea una entrada nueva vacía
{}. - Haz clic en
Create New Work Orderpara ejecutar el step. - Revisa los resultados en el panel
Output & Logsy comprueba que los dos steps terminaron con el estadosuccess. - Por último, revisa tu hoja de cálculo para ver los datos de usuarios sincronizados.
¿Te aparecen errores o no sabes cómo seguir? Consulta la documentación sobre workflows o sobre solución de problemas.
Recuerda ver el video o publicar en la comunidad para pedir ayuda.