Skip to content
MoveWorkflows

The Pipedream workflow export format, explained

Updated 2026-10-21 · 5 min read

Pipedream's Export Workflows button produces a ZIP of JSON files, one per workflow, plus a manifest. It is Pipedream's only official JSON export (GitHub Sync serializes workflows to YAML, without a published schema) before Pipedream Workflows shuts down on March 31, 2027, and the input for any migration tool. This page documents what is in the archive, field by field, what Pipedream deliberately leaves out, and how to inspect an export yourself before you trust it.

How to produce the export (project Settings > Export Workflows > download from File Store) is covered in export Pipedream workflows. This page is about reading it.

The archive

From the export docs:

project_export-proj_abc123.zip
├── manifest.json
├── sync-leads-to-sheets-p_abc123.json
└── Marketing/
    └── weekly-digest-p_def456.json
  • One archive per project; it lands in the project's File Store as project_export-<project_id>.zip.
  • The project's folder structure is preserved.
  • File names combine the workflow's slug and its hash ID (p_…).
  • Each project can hold one export at a time: delete the old ZIP from the File Store to export again.
  • Limits: 500 workflows or 256 MB of workflow content per export, whichever comes first.

Exporting writes to File Store, so the workspace plan must include File Stores (Advanced and above per Pipedream's File Store docs).

manifest.json

The manifest lists every workflow in the project, including those that weren't exported:

Field Meaning
schema Export format version, e.g. project-export/2026.01
workflow_schema Workflow file format version, e.g. workflow.json/2026.01
project_hashid Project ID
exported_at Timestamp
truncated true if a limit was hit
truncated_reason Why, when truncated
limits { "workflows": 500, "bytes": 268435456 }
workflows[] hashid, name, path, status, warnings[] per workflow

Statuses

Status Meaning What to do
exported File is at path Convert it
skipped_never_deployed Never deployed, nothing to export Usually ignore; rebuild by hand if it mattered
skipped_export_limit Export hit a limit first Move workflows to another project and export that project

Warnings

Each workflow's warnings array names every step and prop you must re-enter, for example:

step send_message: secret prop api_key was omitted from the export and must be re-entered after import

This is your credentials checklist, generated by Pipedream. Keep it.

The workflow file

Each file holds the latest deployed version of one workflow. The documented top-level fields:

Field Contents
name, description, inactive, settings Metadata and workflow settings
triggers Each trigger's type and configuration
steps Each step in order: name, type, code (code steps) or component key and version (actions), configured props
deployments Steps inside control-flow branches (if/else, switch)

Trigger types

type Pipedream trigger What's exported
http HTTP / webhook Full settings
timer Schedule Full settings
form Form Full settings
email Workflow email address Configuration
source App event source (e.g. "New row in Google Sheets") Component and configured props

Steps

A code step carries its source code, so Node.js, Python, Go and Bash steps come out readable. An action step (a pre-built component like "Slack: Send Message") carries the component key and version, plus the props you set. The step name matters: code in later steps references it as steps.<name>.$return_value (Node.js docs).

deployments: the field that converters miss

Pipedream says deployments holds the steps inside each control-flow branch. A tool that reads only steps can produce a workflow that looks complete but silently skips everything inside the branches. Pipedream documents deployments in prose only, without a schema, so treat any automatic rebuild of branches as something to check by hand.

Redaction rules

Prop In the export
Secret props (including secret: true in code) <redacted>
App props (connected accounts) Only the authProvisionId
HTTP request props Configuration kept; the auth object is <redacted>
Props without a declaration <redacted>
System props ($.service.db, $.interface.http) <redacted>
All other props As configured

Prop names are always kept, so you can see what each step needs even when the value is gone.

Not in the export

  • Secret values, connected accounts (credentials and OAuth tokens)
  • Environment variables
  • Event history, data stores, File Store files
  • Code of private multi-file components (only the key)

All Workflows data, including what's not exported, is deleted by April 30, 2027. Back up data stores and files separately: Pipedream data deletion.

Inspect your export with jq

Unzip it and run these from the folder:

# Anything not exported?
jq -r '.workflows[] | select(.status != "exported") | "\(.status)\t\(.name)"' manifest.json

# Was the export truncated?
jq '.truncated, .truncated_reason' manifest.json

# All warnings, one per line
jq -r '.workflows[] | .name as $n | .warnings[]? | "\($n): \(.)"' manifest.json

# Trigger types across all workflows
find . -name '*.json' ! -name manifest.json -exec jq -r '.triggers[]?.type' {} \; | sort | uniq -c

# Workflows with branches
grep -l '"deployments"' -r . --include='*.json' | grep -v manifest.json

Note: the last command finds files where the field exists; check whether it's empty before concluding a workflow has branches.

Pipedream JSON vs n8n JSON

Pipedream export n8n workflow
Unit Steps in order Nodes plus a connection graph
Triggers triggers[] with type Trigger nodes
Branches deployments If / Switch nodes and connections outputs
Data references steps.name.$return_value $('name').first().json
Credentials authProvisionId Credential name and ID per node
Code Component with run({ steps, $ }) Code node body returning items

The n8n side is described in n8n workflow JSON structure. n8n can't import the Pipedream file as is; it needs conversion.

Converting the export

Upload the ZIP to our converter: it reads the manifest, every workflow file and the deployments field, maps triggers and steps to n8n nodes, keeps step names as node names so references keep working, and gives you a report of what converts automatically, what needs review (all branches) and what stays manual. Paste a single code step into the code step checker to preview it. The report and 1 workflow are free. Full export: $3 per workflow, $19 minimum — coming soon. Full process: migrate Pipedream to n8n.

Not affiliated with Pipedream or n8n.

FAQ

What format does Pipedream export workflows in?
A ZIP per project, named project_export-<project_id>.zip, with one JSON file per workflow in the project's folder structure and a manifest.json at the root.
What does manifest.json contain?
The schema versions, project ID, export time, whether the export was truncated, the limits, and an entry for every workflow with its status and warnings.
Are secrets included in a Pipedream export?
No. Secret props, HTTP auth objects and undeclared props become <redacted>, connected accounts keep only an authProvisionId, and environment variables aren't exported.
Can I import a Pipedream export into n8n directly?
No. n8n expects its own workflow JSON with nodes and connections. The Pipedream file has triggers, steps and deployments, so it has to be converted first.
Why is a workflow missing from my export?
Check its status in manifest.json: skipped_never_deployed means it was never deployed, skipped_export_limit means the export hit 500 workflows or 256 MB.

Related

Sources