Workflow Exit

What 395 real Pipedream workflows need to run on n8n

Updated October 14, 2026

We analyzed 395 public Pipedream workflows and 746 code steps to see what a move to n8n involves. The short answer: Pipedream workflows are mostly code. 88% of the workflows from GitHub Sync repositories have at least one code step, and 61% of JavaScript code steps import a package or call an API. On n8n Cloud, where the Code node can only load crypto and moment (n8n docs), that is the part that takes work.

The data also shows the move is doable. Every one of the 395 workflows converted into n8n workflow JSON that n8n 2.43.4 imported. Of the 172 complete workflows from GitHub Sync, 9% needed nothing at all, 66% needed an AI rewrite of a code step or a quick check, and 24% had at least one part that needs a person.

Pipedream Workflows stops running on March 31, 2027, and all Workflows data, including connected accounts, is deleted by April 30, 2027. These numbers can help you size your own migration.

Key findings

  • Code is the norm. 88% of GitHub Sync workflows have a code step, and code steps are 69% of all their steps.
  • Most code reaches outside. 61% of JavaScript steps import an npm package or make an HTTP call. That is close to a community estimate of "about 7 in 10" (n8n community).
  • n8n Cloud is the bottleneck. 30% of JavaScript steps import modules the n8n Cloud Code node can't load, and 45% of workflows contain at least one such step.
  • Python almost always imports. 89% of Python steps import modules. n8n Cloud's Python can't import anything, not even the standard library.
  • HTTP clients come first. 26% of JavaScript steps use the axios from @pipedream/platform, 13% call fetch and 8% import axios. All of them have built-in n8n equivalents.
  • Webhooks start most workflows. 53% of GitHub Sync workflows have an HTTP trigger, so their URLs change in the move.
  • Credentials are everywhere. 65% of workflows use connected accounts, and 34% read an account's token directly in code, which n8n Code nodes can't do.
  • State needs saving. 17% of workflows use Pipedream data stores, whose records aren't in the export.

The data

Source Size What it shows
Public GitHub repositories that use Pipedream's GitHub Sync 172 workflows, 703 steps, from 48 repositories by 37 owners Complete workflows: triggers, app actions, branches and code
Public templates shared with Pipedream share links 223 workflows, 721 steps Triggers and app actions. Custom code isn't part of a shared template
Code steps published in public repositories and gists 279 files: 230 Node.js, 49 Python, from 93 repositories and 34 gists Code only

In total that is 395 workflows and 746 code steps we could read: 638 in JavaScript and 108 in Python. We collected everything on October 13, 2026, without a Pipedream account, from public sources only. We analyzed it with the same analyzer that runs our free migration report and the open-source CLI.

1. Code steps are the norm

GitHub Sync workflows (172) Share
Have at least one code step 88% (151)
Steps that are code steps 69% (482 of 703)
Steps that are app actions 29% (201)
Steps that are control-flow blocks (if/else, switch, filter, delay) 3% (20)
Have a Python step 17% (29)

A typical workflow is short: the median has 3 steps, and the longest has 18. In n8n, each code step becomes a Code node. Even code without packages needs translating, because the Code node has no steps, $.export or $.respond and doesn't accept import or export statements. The code steps guide covers each difference.

2. Most code imports a package or calls an API

Of 638 JavaScript code steps:

What the code does Share of steps
Imports an npm package or makes an HTTP call 61% (390)
Makes an HTTP call 47% (302)
Imports an npm package 29% (187)
Imports something the n8n Cloud Code node can't load 30% (189)

The most common imports, and what replaces them on n8n Cloud:

Package Steps On n8n Cloud
axios (from @pipedream/platform) 167 this.helpers.httpRequest
fetch (built into Node.js) 86 this.helpers.httpRequest
axios 48 this.helpers.httpRequest, or an HTTP Request node
snowflake-sdk 24 Snowflake node
googleapis 15 The Google app nodes, or HTTP Request with a Google credential
openai 9 OpenAI node, or HTTP Request
@google/generative-ai 6 Google Gemini node
@supabase/supabase-js 6 Supabase node, or HTTP Request to the REST API
@pipedream/google_drive, @pipedream/dropbox, @pipedream/github and other Pipedream app packages 26 The app's n8n node, or HTTP Request
node-fetch, form-data 5 each HTTP Request node (it builds multipart bodies too)
date-fns 4 Luxon DateTime, built into the Code node
uuid 4 crypto.randomUUID()

Grouped by what you would do with them, the packages fall into three similar-sized groups. 76 imports have a built-in n8n replacement (HTTP clients, date libraries, utilities). 77 are API SDKs that turn into HTTP calls or app nodes. 93 need either a rewrite or self-hosted n8n, where you can allow installed packages with NODE_FUNCTION_ALLOW_EXTERNAL. Examples: HTML parsers like cheerio, @ffmpeg-installer/ffmpeg, blockchain libraries such as ethers, and headless browsers (@pipedream/browsers).

3. Pipedream helpers that need an n8n equivalent

Helper in JavaScript steps Share of steps n8n equivalent
$.export(...) 41% Fields on the Code node's output item
steps.<name> (reads another step) 29% $('<node name>').first().json
this.<app>.$auth (connected-account token) 24% A credential on an HTTP Request or app node. Code nodes can't read credentials
process.env 16% $vars (n8n Variables) or $env on self-hosted n8n
$.flow.exit() 11% return [], or an If node
$.respond() 11% Respond to Webhook node
Data stores 7% Workflow static data or n8n Data Tables
$.flow.delay, $.flow.suspend, $.flow.rerun 2% Wait node; $.flow.rerun has no equivalent
/tmp or File Store 2% Binary data or external storage

The migration guide maps these one by one, with expression examples.

4. Python steps

Of 108 Python steps, 89% import at least one module and 70% import a third-party package. requests alone appears in 52%. Python steps run on n8n Cloud only if they import nothing, so in practice they are rewritten in JavaScript or moved to self-hosted n8n with the Python task runner. See Pipedream Python steps in n8n.

5. Triggers

Trigger GitHub Sync workflows (172) Templates (223)
HTTP / webhook 53% 31%
App event source (new row, new email…) 27% 38%
Schedule 23% 15%
Email (@pipedream.net address) 2% 3%

Shares add up to more than 100% because some workflows have several triggers. HTTP triggers convert to n8n's Webhook node, but the URL changes, so every sender needs the new one (webhook guide). Schedules convert directly (schedule guide). App event sources become the app's n8n trigger node where one exists, or a schedule that polls the API.

6. Connected accounts and apps

65% of GitHub Sync workflows use at least one connected account, across 41 different apps. 29 of those apps (71%) have a native n8n node; the rest work through n8n's HTTP Request node with a credential. Connected accounts don't move: their OAuth tokens are deleted with the rest of the data by April 30, 2027, so each one is authorized again in n8n.

In the templates, 43% of app actions (108 of 251) map automatically to a native n8n node with the same operation. The rest are converted to HTTP Request nodes or flagged for review.

7. How the workflows converted

We converted every workflow with Workflow Exit and imported the result into n8n 2.43.4 with n8n's own import:workflow command. All 395 imported: the 223 templates, and the 172 GitHub Sync workflows in both their n8n Cloud and self-hosted versions.

How much review the GitHub Sync workflows needed, using the report's three ratings:

Rating Workflows
🟢 Converts automatically, nothing to review 9% (16)
🟡 An AI rewrite of a code step, or a quick check 66% (114)
🔴 At least one part needs manual work 24% (42)

Red ratings came almost entirely from npm packages n8n Cloud can't load (36 of the 42 workflows). The rest were code missing from the files (3), private components (2), a step that couldn't be parsed, and a $.flow.rerun call. The most common reasons for a yellow rating were code that reads connected-account tokens (59 workflows), app actions to map to an n8n node by hand (49), Python steps with imports (29) and data stores (29).

Effort estimate. For the same 172 workflows, our report estimates about 680 hours to rebuild them by hand and about 150 hours with the converter, mostly for review, credentials and testing. This is a rough model, not a measurement. It counts half an hour to rebuild and test each workflow, and more for each code step, package, Python step and unusual trigger.

What this means for your migration

  1. Look at the code first. Nine in ten workflows have code, and that code decides most of the effort and the n8n Cloud or self-hosted choice.
  2. Choose n8n Cloud or self-hosted per project. Steps that only make HTTP calls or use dates run on n8n Cloud after a rewrite. SDKs, parsers and Python libraries are easier on self-hosted n8n.
  3. List your connected accounts and environment variables now. Values and tokens don't export. Copy secrets from Pipedream before the shutdown.
  4. Save data store records before April 30, 2027. One in six workflows uses a data store. See Pipedream data stores and files.
  5. Plan the webhook switch. Half of the workflows start with an HTTP trigger, and every sender needs the new n8n URL.

To get these numbers for your own workflows, export them and drop the ZIP on the free migration report. It runs in your browser and rates each workflow the same way.

Methodology and limits

  • Sources. Public data only: GitHub repositories that contain Pipedream GitHub Sync files, templates published through Pipedream share links, and code steps posted in repositories and gists. Private workflows may look different. They likely have fewer demo projects and more business apps.
  • Concentration. One repository holds 35 of the 172 GitHub Sync workflows, most of them using Snowflake. That raises the Snowflake numbers.
  • Templates. Shared templates contain triggers, app actions and settings but not custom code, so the code statistics use only the GitHub Sync workflows and the standalone code files.
  • What "can't run on n8n Cloud" means. A JavaScript step that imports anything other than crypto or moment (npm packages and Node.js built-ins such as fs), or a Python step that imports any module. It doesn't count the wrapper and helper changes every Pipedream code step needs.
  • Counting. A package counts once per step that imports it. Percentages are rounded.

This analysis is by Workflow Exit, an independent tool that converts Pipedream workflows to n8n. We are not affiliated with Pipedream, Workday or n8n.

Frequently asked questions

How many Pipedream workflows use code steps?+

Most of them. In 172 public workflows from GitHub Sync repositories, 88% had at least one code step, and 69% of all steps were code steps. App actions were 29% of steps and control-flow blocks 3%.

Do Pipedream code steps run on n8n Cloud without changes?+

Usually not. Every Pipedream code step needs its wrapper and helpers (steps, $.export, $.respond) translated. Beyond that, 30% of the 638 JavaScript steps we analyzed import npm packages or Node.js modules that n8n Cloud's Code node can't load, and 89% of the 108 Python steps import modules, which n8n Cloud's Python doesn't allow. At the workflow level, 45% of GitHub Sync workflows had such code.

Which npm packages do Pipedream code steps use most?+

HTTP clients first: 26% of JavaScript steps use the axios bundled in @pipedream/platform, 13% call fetch and 8% import axios. After that come API SDKs (snowflake-sdk, googleapis, openai, @google/generative-ai, @supabase/supabase-js) and Pipedream's own app packages such as @pipedream/google_drive. On n8n Cloud, HTTP clients become this.helpers.httpRequest or an HTTP Request node; SDKs become the app's n8n node or HTTP calls.

Can Pipedream workflows be converted to n8n automatically?+

Yes. Workflow Exit converted all 395 workflows in this study into n8n workflow JSON, and n8n 2.43.4 imported every one of them. 9% of the GitHub Sync workflows converted with nothing to review, 66% needed an AI rewrite of a code step or a quick check, and 24% had at least one part that needs manual work, most often a package n8n Cloud can't load.

How long does a Pipedream to n8n migration take?+

It depends on the code. Our report's estimate for the 172 GitHub Sync workflows is about 680 hours to rebuild them by hand and about 150 hours with an automated converter, mostly for review, credentials and testing. Run the free report on your own export for a per-workflow estimate.