Files in Automations
Passing a file through an automation works like handing a folder down an office line: one desk pulls the invoice from the cabinet, the next slips it into an envelope, the last files a copy in the archive. Nobody has to read it, so nobody has to think. In Nirvai, free blocks can carry real files from step to step — an invoice PDF from a database, a photo from a Project — and drop them wherever they're needed, with no AI step and zero credits.
Where files come from
| Block | What becomes a file |
|---|---|
| Database — Read | Every value in a File column of the rows it reads |
| Project files — Get files | The files you pick from one of your Projects |
Using a file in a later step
Open the variable picker in the field that needs the file and pick the file field — it drops in as a pill, such as {{steps.1.output[0].Invoice}}. That's all: when the run happens, the block turns the file into whatever that field needs.
| Where you drop the file | What happens at run time |
|---|---|
| Email attachments (Gmail, Outlook, SMTP send tools) | The actual file is attached. Gmail takes up to 25 MB of attachments; Outlook up to 3 MB total per email (a Microsoft limit for this action). |
| A field that needs a link (for example Instagram's image URL, or other media links) | Nirvai creates a temporary public link that works for 7 days. Images for Instagram are converted to JPEG automatically, because Instagram only accepts JPEG. |
| A database file column (Insert or Update) | The file is copied into that record. |
| Project files — Save a file | The file is saved into your Project. |
| Text (a subject, a message body) | Use the file's details instead: {{steps.1.output[0].Invoice.name}}, .size or .mime (its type). |
Sending through Gmail takes simple fields — To, Cc, Bcc, Subject, Body, Attachments. You never have to assemble the email in a special format yourself.
When you open a finished step in the run view, each file gets its own note, for example "invoice.pdf: attached (96 KB)" or "photo.jpg: temporary public link created (expires in 7 days), converted to JPEG".
The Project files block
Found in the Actions — no credits group of the block drawer. It works with the files of one of your Projects — never its notes or its map of connections.
| Action | Settings | Each result carries |
|---|---|---|
| Get files | One file — its exact path, with a Browse files picker. Or A folder — the folder (leave it empty for the whole project), Name contains, and Maximum files (1–100). Newest files come first. | name, path, folder, description, size (MB), last updated, project, and file — the file itself, ready to pass on |
| Save a file | File to save (any file from an earlier step: a database file column, another project's file…), Folder (optional), File name (optional) — keeps the file's own name if empty — and Description (optional) | The saved file, for later steps |
Saving to a path that already exists replaces that file.
- Get files works on projects you own and projects shared with your organization.
- Save a file only works on projects you own. Shared projects appear locked in the picker: "only the owner can save files here".
- Want to recall or store knowledge rather than files? Use an Agent step with the project connected.
Which files an automation may use
An automation can only use files its owner can already open: your databases, projects you own or that are shared with your organization, and files created earlier in the same run. Anything else stops the step with a clear No access to '…' message naming the file. A file too big for the service it's going to also stops the step with a message that says so — send a link instead.
Examples
| Recipe | Blocks (all free) |
|---|---|
| Email the invoice, keep a copy | Database reads the invoice row → Tool: Gmail send, with {{steps.1.output[0].Invoice}} in Attachments → Project files: Save a file into your "Accounting" project |
| Send a project file by Outlook | Project files: Get files (One file) → Tool: Outlook send, with {{steps.1.output.file}} as the attachment |
| Post a project image to Instagram | Project files: Get files (One file) → Tool: Instagram post, with {{steps.1.output.file}} in the image URL field |
Troubleshooting
| Problem | Fix |
|---|---|
The step fails with No access to '…' | The file belongs to something the automation's owner can't open. Use a database or project you own (or one shared with your organization). |
| The step says the file is too large | Outlook allows 3 MB per email here and Gmail 25 MB. Send a link to the file instead. |
| Save a file won't let me pick a project | You can only save into projects you own — shared ones are locked. |
| The email shows the file's name, not an attachment | You picked a detail like .name. Pick the file field itself and put it in Attachments. |
What's next
See exactly what happened to each file in Testing & Runs, or learn how to point at the right item in Data Between Steps.