# How to export Pipedream workflows on the Free or Basic plan

> Source: https://workflowexit.com/export-pipedream-workflows-free-plan · Updated 2026-10-13

Pipedream's Export Workflows tool saves its ZIP to the project's File Store, and Pipedream only offers File Stores on Advanced plans and above. On Free or Basic, the export button may not work, and you can't upgrade, because Pipedream stopped taking Workflows subscriptions on September 30, 2026. You still have three ways to get your workflows out: a GitHub Sync repository if a project was ever synced, the REST API endpoint `GET /v1/workflows/{id}` through the free Workflow Exit CLI, or copying code and settings by hand. Finish before workflows stop running on **March 31, 2027**. Pipedream deletes all Workflows data by **April 30, 2027**.

Try the official button first. Open the project, select **Settings**, and click **Export Workflows**. If `project_export-<project_id>.zip` appears in the project's File Store, use it and follow [how to export Pipedream workflows](/export-pipedream-workflows). If it doesn't, read on.

## Why the export may not work on your plan

Two parts of Pipedream's docs fit together. The export page says the archive is written to the project's File Store, so your plan has to include File Stores. The File Stores FAQ says only workspaces on Advanced and higher plans have them.

The plan-limit data that Pipedream's dashboard loads points the same way: Advanced is the lowest plan with File Stores, and also the lowest with GitHub Sync. We haven't been able to test the button on a Free or Basic workspace, so treat this as very likely, not certain.

## Your options at a glance

| Method | When it works | What you get | What's missing |
|---|---|---|---|
| GitHub Sync repository | A project was synced to GitHub at some point | A `workflow.yaml` per workflow and the source of each code step | Trigger settings, secret values |
| REST API with the CLI | You can create a Pipedream API key | One JSON file per workflow, including the steps inside branches | Not confirmed on Free or Basic, and code may be absent |
| Copy by hand | Always | Whatever you copy | Time, and anything you overlook |

No method gives you secret values, OAuth tokens, environment variable values, data store records, File Store files, event history or the code of private components. The last section covers how to save what you can.

## Option 1: a GitHub Sync repository

If a project was ever connected to GitHub, for example while your workspace was on a higher plan, Pipedream wrote its workflows to a repository in your GitHub account. That repository stays where it is even if the sync no longer runs. The `production` branch holds the deployed versions. Each workflow has a folder with a `workflow.yaml`, and each code step has its own folder with an `entry.js`, `entry.mjs` or `entry.py`.

Download the repository as a ZIP, or use a local clone, and drop it on the [free report](/report). The YAML keeps trigger IDs but not trigger settings, so write down each schedule, webhook URL and app trigger from the Pipedream UI while you still can. The [GitHub Sync to n8n guide](/pipedream-github-sync-to-n8n) explains the format in detail.

## Option 2: the REST API with the Workflow Exit CLI

Pipedream's API reference documents `GET https://api.pipedream.com/v1/workflows/{id}`, which returns one workflow's triggers and steps. You call it with an API key and your workspace ID in the `org_id` parameter. Two things make it slow by hand: you need one request per workflow, and the steps inside if/else and switch blocks live in separate pipelines that need requests of their own.

The [Workflow Exit CLI](/cli/workflow-exit.mjs) handles both. It's a single file that runs on your computer with Node.js 18 or newer, and it sends your API key only to api.pipedream.com.

1. **Download the CLI.** Save `workflow-exit.mjs`. To verify it, compare it with the SHA-256 checksum at [/cli/workflow-exit.mjs.sha256](/cli/workflow-exit.mjs.sha256). The source of the report and pull commands is on [GitHub](https://github.com/masonuhome/pipedream-to-n8n).
2. **Create a Pipedream API key** in your account settings. You only use it on your own computer.
3. **Find your workspace ID.** It starts with `o_` and appears in your workspace settings.
4. **Test with one workflow.** Copy a workflow ID from its URL (it starts with `p_`) and run:

```bash
# macOS or Linux. In PowerShell, use: $env:PIPEDREAM_API_KEY="your_api_key"
export PIPEDREAM_API_KEY=your_api_key
node workflow-exit.mjs pull --org o_abc123 --id p_abc123
```

5. **Pull the rest.** Without `--id`, the CLI asks Pipedream for the workspace's list of workflows. That list route isn't documented, so it may be refused. If it is, open the workspace's ⋯ menu, choose **Export tree as text**, save the result as `tree.txt` and pass it in. Any text that contains `p_` IDs works.

```bash
node workflow-exit.mjs pull --org o_abc123 --ids tree.txt
```

6. **Check the output.** Each workflow is saved as `pipedream-workflows/<id>.json`, with its branch steps included. Workflows that failed are listed with the HTTP status Pipedream returned.
7. **Run the report.** `node workflow-exit.mjs report pipedream-workflows` writes `REPORT.md` on your machine. Or open the [report page](/report), click **Choose a folder** and pick `pipedream-workflows`.

There are two caveats. Nobody has publicly confirmed this endpoint on Free or Basic, which is why step 4 starts with a single workflow. Also, the example response in Pipedream's API docs doesn't show the source of code steps. If your files come back without it, the report tells you how many code steps have no code, and you copy those by hand as in option 3.

## Option 3: copy what matters by hand

Use this for anything the other options miss. Open each workflow in the builder and save:

1. Each code step, in a file named after the step, such as `format_order.js` or `score_lead.py`. Keep any `# pipedream add-package` comments in Python steps.
2. The trigger settings. For HTTP, that's the endpoint URL and its authorization. For a schedule, it's the cron expression or interval and the time zone. For an app trigger, it's the app, the trigger and its options.
3. Each action's app, the action itself and the values you chose, such as channels, sheet IDs and message templates.
4. The conditions of every if/else, switch or filter step, and which steps sit in each branch.
5. The connected account and the secrets each step uses.

Hand copies are enough to rebuild a workflow in n8n, but the report can't read them.

## Save what no method exports

Do this while your workflows still run:

- **Sample events.** On Free and Basic, Pipedream keeps at most 100 events or 7 days of history per workflow. Copy a few real payloads from each workflow's event inspector now. You'll need them to test the n8n version, and older events keep dropping off.
- **Environment variables.** Copy the names from your workspace and project settings. Pipedream doesn't show secret values again, so get them from the original service or your password manager.
- **Data store records.** View them in the Data Stores dashboard, or send them elsewhere with a code step. See [saving Pipedream data stores](/pipedream-data-stores).
- **Accounts.** OAuth tokens can't be exported, and Pipedream deletes them with everything else. List the apps you'll connect again in n8n.

A workspace that has always been on Free or Basic has no File Store, so there are no File Store files to download.

## A short plan

1. Save sample events today, because the 7-day window keeps moving.
2. This week, try Export Workflows. If it fails, pull with the CLI or download your GitHub Sync repository.
3. Run the report to see which workflows convert on their own and which need work.
4. Copy by hand whatever the report says is missing.
5. Convert, test and switch over well before March 31, 2027, following the [Pipedream to n8n guide](/pipedream-to-n8n).

The [free migration report](/report) reads an export ZIP, a GitHub Sync repository or the CLI's JSON files. It runs in your browser, so nothing is uploaded to build it, and it shows what each workflow needs before the [Pipedream shutdown](/pipedream-shutdown).

## Frequently asked questions

### Can I upgrade to Advanced just to use the export?

No. Pipedream stopped accepting new Workflows subscriptions on September 30, 2026, so a Free or Basic workspace can't move to a plan that includes File Stores.

### Does the Pipedream REST API work on the Free plan?

Pipedream's API reference documents GET /v1/workflows/{id} without mentioning plan limits, but we haven't seen it confirmed on Free or Basic. Pull a single workflow first to check before you fetch the rest.

### Where do I find my Pipedream workflow IDs?

Each workflow's URL contains its ID, which starts with p_. For a whole workspace, use Export tree as text from the workspace menu. The Workflow Exit CLI accepts any text file that contains p_ IDs.

### Is my Pipedream API key sent to Workflow Exit?

No. The CLI runs on your computer and sends the key only to api.pipedream.com. The web report never asks for it.

### Do I need to save File Store files on the Free plan?

Pipedream only offers File Stores on Advanced plans and above, so a workspace that was always on Free or Basic has none. You still need to save data store records, environment variable values and a few sample events.
