Data
Files
A file store per workflow and one per account, served from a CDN, that every step can read and write.
Automations move files around: attachments, exports, renders, recordings. VisualAutomate has a file store for them, so a step can save a file and a later step, or a later run, can pick it up.
Scopes
Each workflow has its own folder, shared with everybody who works on it. There is an account-wide store too, for what belongs to more than one workflow. Files are served from a CDN, so a link to one is fast wherever it is opened.
The steps
| Step | What it does |
|---|---|
| Save | Write text, JSON or base64 to a file |
| Read | Read a file's contents |
| Download | Fetch a file from a URL into the store |
| List | The files in a folder |
| Info | Whether a file is there, and its size and type |
| Link | A link to a file that stops working on its own, after the minutes you choose |
| Delete | Remove a file |
The video and audio steps read from and write to the store directly, so a recording can go from Download through Trim and Subtitles to Link without leaving it.
From code
// Save a PDF, and hand an API a link that expires in ten minutes.
const { url } = await context.storage.put(path, bytes, "application/pdf")
const link = await context.storage.signedUrl(path, 600)context.storage also has get, list, head, delete and download.
Naming files in a loop
Inside a loop, name each file after its item so turns do not overwrite each other: renders/{{item | stem}}.mp4, or add -{{index}} where names can repeat.
Browsing them
Open Data in the dashboard, or the file browser on the canvas, to see what runs have stored, upload files yourself and remove what is no longer needed. Uploads from the browser go straight to storage on a signed URL.
Was this page helpful?