I’m building an integration that will merge data into a (presumably static) template, and I’m trying to figure out how to let the user point my app to the template. I’ve considered these approaches:
- When the user configures my action, he clicks an Upload Template input field, which opens a standard file dialog and lets him upload a local file. The Zap stores this file and makes it available to my code as some dehydrated reference. Unfortunately an inputField of type “file” doesn’t open such a dialog, so this doesn’t seem to work.
- The input field instead says “Choose Template” and provides a way for the user to select a file from Google Drive or whatever other Connections he has configured in Zapier. Unfortunately the input widget offers Google Drive only when the Zap uses it as a trigger or a prior action; simply having set up a Connection isn’t enough. Even if he adds an action he wouldn’t otherwise need, this seems an ugly workaround.
- The input field is instead a string field where the user can paste in the URL of a template hosted wherever he pleases. This burdens the user with a file hosting problem: he has to make the template public or deal with some terrifying additional authorization config.
- The user leaves Zapier and logs in to a UI I build elsewhere. It has the button described above in (1) which lets him upload a local file to my API’s storage. When he goes back to Zapier, the Choose Template input queries my API and lets him choose among templates he has uploaded. I’m confident this would work, but it’s an extra burden for us both. I don’t really want to build, and the user doesn’t really want to use, another file management UI.
Are there options I’m missing? These all seem pretty ugly, and this scenario of configuring a Zap with an external asset seems like it would be very common.