Document

Save File

Save File writes text or binary content to an internal drive or an integration-backed storage provider. It can also copy the canonical File produced by Read File, an upload trigger, or another file-aware block.

Configure Save File

  1. Add Save File from File System in Workflow Designer.
  2. Enter a descriptive label.
  3. Select the destination Storage type.
  4. For Google Drive, OneDrive, AWS S3, or Custom S3, select a compatible integration.
  5. Enter or pick the destination Path.
  6. Select the write Mode.
  7. Enter the Content template.
  8. Select Apply, save the draft, and run a controlled test.

Save File configured to stage registration JSON in Context driveSave File configured to stage registration JSON in Context drive

Select storage and integration

Context drive and Static drive are managed by Builders and do not require an integration. External storage requires an integration with write access:

Selected storageRequired capability
Google Drivedrive.write
OneDrivedrive.write
AWS S3s3.write
Custom S3s3.write

The integration owns the credentials and external provider configuration. For S3, keep the endpoint, region, bucket, and access keys in the integration; use the block's Path for the destination object key.

Read access does not imply write access. If an integration works in Read File but is absent or rejected in Save File, check its write capability and external account permissions.

Build the destination path

Use template values to make the destination unique or to group files:

event-registrations/{{run.id}}.json

For Google Drive and OneDrive, the path is resolved in the selected connected drive. For AWS S3 and Custom S3, it is an object key in the configured bucket. For Context and Static drives, it is a Builders file path.

Saving to an existing destination replaces that file. Include {{run.id}}, a source identifier, or a timestamp when each run must preserve a separate result.

The folder button can select a destination in Static drive or a supported external provider after its integration has been selected. Context drive paths are entered directly.

Choose a content mode

ModeContent requirementUse for
textString or template-rendered text, written as UTF-8JSON source, CSV, XML, HTML, logs, and plain text
binary/base64Base64-encoded content, decoded before writingImages, PDFs, archives, and other binary payloads already represented as base64
File referenceOne canonical File value, supplied as an exact templateCopying a file while preserving its bytes and descriptor data

Text mode does not serialize an arbitrary object automatically. Build the required text explicitly, as in this registration example:

{
  "registrationId": "{{input.registration.id}}",
  "attendeeEmail": "{{input.registration.attendeeEmail}}",
  "ticketType": "{{input.registration.ticketType}}"
}

For binary/base64 mode, provide only the encoded payload expected by the field. Do not include a data: URL prefix unless the upstream value is specifically documented as a data URL and you remove that prefix before saving.

Copy a canonical File

Use File reference when an upstream block already provides a canonical File. The content must be an exact expression resolving to that File, not a JSON string containing it.

Save File copying the canonical File from Read File into Static driveSave File copying the canonical File from Read File into Static drive

With a direct connection from Read File, use:

{{input.file}}

This is the clearest way to express the relationship between blocks and integrations:

  1. Read File uses the source integration's read permission.
  2. Builders exposes the result as a provider-independent File.
  3. The workflow edge passes that File to Save File.
  4. Save File uses the destination integration's write permission.

No credential or provider-specific client object travels through the workflow data.

Use the outputs

On success, Out passes a descriptor for the saved file so downstream blocks can log, return, or further process it. Inspect a test run before depending on provider metadata because external providers can expose different identifiers and metadata.

Save File also exposes Error. Connect it when the workflow must deliberately handle a failed write, for example by recording the failure, notifying an operator, or routing the item for retry. Keep the normal continuation connected to Out.

Test the write

  1. Run the workflow with representative content.
  2. Confirm that Save File reports success and logs the rendered storage, path, and byte size.
  3. Open the destination in Static drive or the external provider.
  4. Verify the filename, bytes, MIME behavior, and directory or object-key prefix.
  5. Run again with the same path to confirm that replacement is acceptable.
  6. Test a denied destination and verify the Error route if the workflow uses one.

Troubleshoot Save File

  • Path is required: enter a literal path or a template that resolves to a non-empty destination.
  • Content is required: supply text, base64, or one canonical File according to the selected mode.
  • Storage integration is required: select an external integration after selecting the storage type.
  • Integration is unavailable: configure drive.write or s3.write access in the same ownership scope as the project.
  • File reference is rejected: use an exact expression such as {{input.file}}; do not stringify or partially interpolate the File.
  • Binary output is corrupted: use binary/base64 mode and ensure the input contains valid base64 without unrelated formatting.
  • The provider rejects the path: verify folder existence, bucket configuration, object-key rules, and the connected account's write permission.
  • The wrong file was replaced: make the path unique with {{run.id}} or another business identifier.

Next steps