Superar el límite de un solo campo de Zapier en Transloadit
Hace poco, un cliente preguntó cuántos campos se pueden pasar usando nuestra integración con Zapier. Actualmente, solo permitimos pasar un campo a una Assembly, lo que puede resultar restrictivo en algunos casos. Sin embargo, investigamos cómo superar esta restricción y hoy compartiremos nuestra solución.

Para seguir esta guía, necesitarás:
- Un almacenamiento de Dropbox
- Una cuenta de Zapier
- Una cuenta de Transloadit
En esta guía, usaremos el almacenamiento de Dropbox para importar y exportar archivos. Sin embargo, ofrecemos una gran variedad de otras opciones de exportación de archivos que podrías usar en su lugar.
Dropbox
Antes de empezar, asegúrate de tener configurada una cuenta de Dropbox y luego haz clic aquí para configurar tu app de Dropbox.

Las capturas de pantalla muestran las interfaces de Dropbox y Zapier de 2021. En Dropbox, elige Scoped access y concede acceso únicamente a los archivos que tu flujo de trabajo necesite. La opción ilustrada Full Dropbox es amplia; es preferible App folder cuando todas las entradas y salidas pueden alojarse ahí. Crea la app y habilita solo los permisos de lectura/escritura necesarios en su configuración de permisos.

Ve a Settings y, en la sección OAuth 2, genera tu token de acceso y anota el valor obtenido. Un token generado sirve para una prueba breve, no para una integración permanente y desatendida. Para un Zap en funcionamiento continuo, configura una conexión OAuth con soporte de refresh token antes de habilitarlo. Consulta la guía de OAuth de Dropbox; nunca publiques tokens en código ni en capturas de pantalla.

En Dropbox, hemos creado una carpeta llamada importFolder. Cuando se suben archivos nuevos a
esta carpeta, Zapier detecta automáticamente el archivo nuevo y lo pasa a Transloadit para su
procesamiento.

También hemos creado una carpeta para los resultados de nuestra Assembly, llamada exportFolder.
Con el acceso App folder, crea ambas carpetas dentro de la carpeta de
Dropbox de tu app, por ejemplo /Apps/MyApp/importFolder y /Apps/MyApp/exportFolder. La API de
Dropbox trata esa carpeta de la app como su raíz, por lo que Transloadit necesita /importFolder/image.jpg, no
/Apps/MyApp/importFolder/image.jpg. La sección de Zapier de más abajo convierte la ruta de cuenta del activador.
Con el acceso Full Dropbox, ambas carpetas pueden estar en la raíz de tu
cuenta y no hace falta ninguna conversión. Consulta la guía sobre la raíz de la API de Dropbox.

Transloadit
En el lado de Transloadit, primero necesitamos configurar nuestras credenciales de Template.
Las capturas de pantalla de la Console que aparecen a continuación muestran la interfaz en inglés.
Ve a tus credenciales de Template. Haz clic en
Agregar nueva credencial, selecciona Dropbox e introduce la información requerida. El nombre que
elegimos fue TestWorkBox.

Ahora podemos crear nuestro Template. Este Template se encarga de importar una imagen desde nuestro Dropbox, cambia el tamaño de esa imagen y luego exporta el resultado de nuestra Assembly.
Copia y guarda el código JSON de abajo como un nuevo Template, y asegúrate de anotar tu Template ID.
{
"steps": {
"imported": {
"robot": "/dropbox/import",
"path": "${fields.dropbox_file_path}",
"credentials": "TestWorkBox",
"result": true
},
"images": {
"use": "imported",
"robot": "/image/resize",
"format": "png",
"width": 500,
"height": 500,
"resize_strategy": "fit",
"imagemagick_stack": "v3"
},
"exported": {
"use": ["images"],
"robot": "/dropbox/store",
"credentials": "TestWorkBox",
"path": "exportFolder/resized_${fields.file_name}.${file.ext}"
}
}
}
En el Template anterior, a nuestro parámetro credentials se le pasa el nombre de la credencial
de Dropbox configurada previamente, TestWorkBox. En los Steps imported y
exported, usamos las Assembly Variables
${fields.dropbox_file_path} y ${fields.file_name} en el parámetro path. Estos son los dos campos
que manipularemos con Zapier.
En Zapier
Ahora, por fin, veremos Zapier y cómo superamos la limitación de un solo campo. Crea un nuevo Zap cuyo activador sea Dropbox y cuyo evento activador sea New File in Folder.

Haz clic en Continue y luego elige tu cuenta de Dropbox.

Ahora especificamos la carpeta de la que nuestro Step de importación tomará los archivos. Este
valor debe coincidir con la carpeta que creamos antes, importFolder. Para el acceso a la
carpeta de la app, selecciona la carpeta que está dentro de la carpeta de Dropbox de la app, como
/Apps/MyApp/importFolder.

Haz clic en Continue y luego en Test Trigger. Si todo va bien, después de unos segundos deberías ver los metadatos de un archivo aleatorio de la carpeta que especificaste, lo que indica que tu Dropbox se ha vinculado correctamente. Antes de hacer clic en Continue, configuremos los múltiples campos que pasamos de Zapier a Transloadit.
Para el acceso a la carpeta de la app, añade primero una acción Code by Zapier con
JavaScript. En Input Data, asigna
file_path a la ruta del archivo del activador de Dropbox, no a su ID de archivo ni a su URL de
descarga. Establece app_folder con el prefijo de la carpeta de la app copiado exactamente de esa
ruta, incluidas sus mayúsculas y minúsculas, pero sin barra final, como /Apps/MyApp. Usa este código:
const path = inputData.file_path
const appFolder = inputData.app_folder
if (
typeof path !== 'string' ||
typeof appFolder !== 'string' ||
!appFolder.startsWith('/') ||
appFolder.endsWith('/') ||
!path.startsWith(`${appFolder}/`)
) {
throw new Error('Select a file inside the configured Dropbox app folder.')
}
return { dropbox_file_path: path.slice(appFolder.length) }
Prueba la acción Code: /Apps/MyApp/importFolder/image.jpg debería producir
dropbox_file_path con /importFolder/image.jpg. Si el activador ya devuelve una ruta relativa a
la app, omite esta conversión. Para el acceso a la cuenta completa, omítela también y usa la ruta
original del activador. Consulta la guía de JavaScript de Zapier
para conocer el editor de Code actual.
A continuación, haz clic en + y selecciona Format con el evento configurado como Utilities.

Haz clic en Continue y, en el campo Transform, selecciona Line Itemizer (Create/Append/Prepend). En la sección de propiedades de elementos de línea, añadiremos los nombres de campo que definimos en nuestro Template, así como los valores que queremos pasar. Asegúrate de que no haya un espacio después de la coma al introducir los nombres de campo. Zapier asumirá que el espacio forma parte del nombre del campo. Además, al elegir los valores de los campos, asegúrate de seleccionarlos en el orden de los nombres de campo.
Asigna dropbox_file_path a la salida normalizada de Code cuando ese paso sea necesario; de lo contrario,
a la ruta original del activador de Dropbox. Asigna file_name al nombre del archivo del activador.
La ruta de exportación de nuestro Template ya es relativa a la raíz de la credencial, así que
déjala sin cambios.

Haz clic en Continue y luego en Test & Review, y verás el nombre del campo con su valor correspondiente. Una vez más, haz clic en Continue para que ahora podamos configurar la acción.
Para nuestra app de acción, seleccionaremos Transloadit con el evento de acción Create Assembly.

Haz clic en Continue como antes y vincula tu cuenta de Transloadit.

Ahora podemos poner en acción los distintos campos que creamos antes. Introduce tu Template ID guardado en el campo Template. Para Assembly Field Name, selecciona Output Line Item(s) Field Name del formateador. Para Assembly Field Value, selecciona Output Line Item(s) Field Value. El Template ID no va en ninguna de las dos entradas de campo de la Assembly.

Una última vez, haz clic en Continue y Test & Review. Esto creará una nueva Assembly y mostrará en tu pantalla los datos correspondientes de la Assembly.
Ahora que hemos terminado de crear nuestro Zap, podemos ejecutarlo. Cada vez que se suba un archivo
nuevo a nuestra carpeta importFolder, en pocos minutos se activará el Zap, lo que provocará que
se cree una Assembly.
Resultados
Una vez que se haya activado el Zap, visita la sección Assemblies de tu consola para ver los resultados.


Si quieres ver un ejemplo de esto implementado, echa un vistazo al blog (English) de mi colega Joseph. Su blog muestra cómo puedes usar los múltiples campos para generar automáticamente previsualizaciones de música desde Spotify. ¡Eso es todo por hoy! Siguiendo estos sencillos pasos, tus Zaps deberían funcionar sin problemas y de la misma manera que antes de que supieras cómo superar la limitación de un solo campo.
