Migration guide · updated October 2026
Pipedream Workflows shuts down on March 31, 2027. Here is how to move your workflows to n8n.
Short answer. Pipedream stopped accepting new Workflows signups on September 30, 2026. Existing workflows keep running until March 31, 2027, and all Workflows data, including credentials and OAuth tokens, is deleted by April 30, 2027. Pipedream's export gives you one JSON file per workflow, but n8n can't import it directly: each workflow has to be rebuilt or converted.
The dates that matter
| Date | What happens |
|---|---|
| Sep 30, 2026 | No new Workflows signups or subscriptions. Workflows is in maintenance mode. |
| Mar 31, 2027 | Workflows and String shut down. Subscriptions end with a prorated refund. |
| Apr 30, 2027 | All Workflows data is permanently deleted, including credentials and OAuth tokens. |
Pipedream Connect (the Connect API, MCP servers and API proxy) is not affected. Only Workflows and String are shutting down.
What the export contains, and what it leaves out
Export works one project at a time and produces a ZIP with a manifest.json and one JSON file per workflow. Each workflow file holds its triggers, its steps (code for code steps, the component key and version for pre-built actions) and the props you configured.
- Removed for security: secret prop values, connected-account credentials and OAuth tokens (only an
authProvisionIdremains, which works only inside Pipedream). - Not included at all: environment variables, event history, data stores, File Store files and the code of private multi-file components.
- Skipped: workflows that were never deployed, and anything past the limit of 500 workflows or 256 MB per export.
So before the deadline, download your data stores and copy your environment variables separately. The export won't save them.
How Pipedream concepts map to n8n
| Pipedream | n8n |
|---|---|
| HTTP / webhook trigger | Webhook node (new URL: update it wherever events come from) |
| Schedule trigger | Schedule Trigger node |
| Email trigger | Email Trigger (IMAP) with your own mailbox |
| App event source | The app's trigger node, or a scheduled poll |
| Node.js code step | Code node (JavaScript) |
| Python code step | Code node (Python) |
steps.name.$return_value | $('name').first().json |
$.export('key', value) | A field in the node's output |
$.flow.exit() | Return no items, so later nodes don't run |
$.respond() | Respond to Webhook node |
| Connected accounts | n8n credentials |
| Environment variables | n8n Variables or environment variables |
| Data stores | n8n Data tables, workflow static data, or an external database |
| Pre-built actions | The app's n8n node, or an HTTP Request node using that app's n8n credential |
Step by step
- Make an inventory. List every workflow, mark the ones that matter, and note what triggers each one.
- Export each project. The ZIP is saved to the project's File Store; download it from there.
- Save what the export skips. Download data store contents and copy environment variables.
- Convert. Rebuild each workflow in n8n by hand, or drop the ZIP into MigrateFlows to get n8n workflows plus a checklist.
- Import into n8n. Use Import from file, or paste the workflow JSON onto an empty canvas.
- Reconnect. Create the credentials and variables each workflow needs.
- Test with real events. Run each workflow with a sample event and compare the result with Pipedream's.
- Switch over. Point webhooks and senders to the new n8n URLs. If you run both platforms in parallel for a day, make sure the same event isn't processed twice.
- Turn off the Pipedream workflow once n8n has handled real traffic correctly.
Things that commonly break
- npm packages. n8n Cloud doesn't allow external npm modules in Code nodes. Self-hosted n8n allows them with
NODE_FUNCTION_ALLOW_EXTERNAL. - Credentials used in code. Code that reads
this.app.$authneeds those values as n8n variables, or the call moved to an HTTP Request node with a credential. - Output shapes. n8n's built-in app nodes don't always return the same fields as Pipedream's actions. Later steps that read specific fields need a check.
- Deduplication and polling state. Polling sources remember what they already saw. Rebuild that state, or the first n8n run may reprocess old items.
- Webhook URLs. Every webhook gets a new address. Update each service that sends events.
- Timezones. Check the timezone of every schedule after moving it.
Converting automatically
MigrateFlows reads Pipedream's export ZIP or a GitHub Sync folder and returns n8n workflows ready to import. Node.js code steps keep working through a small compatibility layer for steps, $.export, $.flow.exit, $.respond and axios. Pre-built actions for common services become HTTP Request nodes that use your own n8n credentials, so they return the same data as before. Each workflow comes with a list of what's left to do by hand. Everything runs in your browser; your files are not uploaded.
Questions
Can I import Pipedream's export into n8n directly?
No. The formats are different. Each workflow has to be rebuilt or converted first.
Will my connected accounts come along?
No. The export removes tokens and credentials, so you connect each account again in n8n.
Is Pipedream Connect shutting down too?
No. Connect, its MCP servers and the API proxy remain supported.
Do I have to use n8n?
No. Windmill, Trigger.dev, Make, or plain code on a serverless platform are also options. n8n is a common choice because it has code nodes, webhooks, schedules and credentials for hundreds of services, and it can be self-hosted.
Sources: Pipedream documentation on the Workflows shutdown and on exporting workflows (pipedream.com/docs/workflows). MigrateFlows is independent and not affiliated with Pipedream, Workday or n8n.