Pipedream to n8n

Free · No signup · Runs in your browser

Get your workflows out of Pipedream and into n8n, one honest step at a time.

Pipedream Workflows shuts down on March 31, 2027. Drop in your project export and get n8n workflows you can import, plus a report that says which steps came across cleanly, which need a look, and which need you.

Pipedream code step
async run({ steps, $ }) {
  const email = steps.trigger.event.body.email
  if (!email) return $.flow.exit("no email")
  $.export("domain", email.split("@")[1])
}
n8n Code node
const email = $('trigger').first().json.body.email
if (!email) return __pd.flow.exit("no email")
__pd.export("domain", email.split("@")[1])
// … returns [{ json: { $return_value, domain } }]
Fig. 1. Step references become n8n expressions; $.export and $.flow.exit keep working through a small, readable stand-in.

The converter

Upload the export ZIP or a GitHub Sync repository, paste one workflow's JSON or YAML, or try a sample.

In Pipedream: Project Settings › Export Workflows (the ZIP lands in your File Store). Or connect the project to GitHub and upload that repository. How to export.

Your workflows never leave this page. There's no server behind the converter, no analytics and no cookies. Pipedream's export already leaves out keys and tokens, and we never ask for them.

What converts, and how well

Node versions and parameters were checked against n8n 2.43.7 on October 18, 2026. “Partial” means the node imports and works but something behaves differently; the report spells out what. Anything not listed still converts, as an HTTP Request node with your settings filled in and a link to the Pipedream action's source.

Pipedreamn8nCoverageWhat to know
Triggers
HTTP / WebhookWebhookConvertedMethod, custom responses and header auth carry over. The URL changes: update whoever calls it.
Schedule (cron or interval)Schedule TriggerConvertedCron expressions and intervals; the timezone moves to workflow settings.
App sources (e.g. new Shopify order), email, formsManual Trigger placeholderNeeds youThe matching n8n trigger is named in the report when there is one.
Code
Node.js stepCode (JavaScript)Convertedsteps.x references, $.export, $.flow.exit and $.respond are rewritten. Pipedream axios goes through n8n’s HTTP helper. Secrets, $.service.db and other npm packages are flagged.
Python stepCode (Python, native) + a small prep nodePartialpd.steps, pd.export and pd.flow.exit work; imports and classes are limited by n8n’s sandbox.
Bash and Go stepsNo Operation markerNeeds youn8n has no Bash or Go Code node; rewrite in JavaScript or use Execute Command (self-hosted).
Control flow
If / else, switchIf (chained for several branches)ConvertedEquals, contains, starts/ends with, greater/less than, true/false, exists, in list. Grouped rules become one expression (partial).
Filter (continue / end when)Filter or IfConverted
Delay (helper or $.flow.delay)WaitConverted$.flow.delay inside code is flagged.
End workflowNo Operation, or If with the true side unconnectedConverted
Parallel branchesBranches + MergePartialn8n runs them one after another.
Loops, AI agent stepsNo Operation markerNeeds youRebuild with Loop Over Items or the AI Agent node.
App actions
http-custom-request, http-get/post/put/patch/delete-requestHTTP RequestConvertedMethod, URL, query, headers and body carry over. Auth must be re-entered as a credential.
http-return-http-responseRespond to WebhookConvertedStatus, headers and body. The Webhook trigger is switched to "Using Respond to Webhook node".
slack(_v2)-send-message, -send-message-to-channelSlack › Message › SendConvertedChannel and text. Blocks and bot settings are flagged.
google_sheets-add-single-rowGoogle Sheets › Append RowConvertedNamed columns carry over; positional rows are listed for you to map.
gmail-send-emailGmail › Message › SendConvertedTo, subject, body, CC, BCC, reply-to, sender name. Attachments flagged.
openai-chatOpenAI › Text › Message a modelConvertedModel, system and user message. The reply field name changes (flagged).
airtable(_oauth)-create-single-recordAirtable › Record › CreateConvertedBase, table and fields.
notion-create-page(-from-database)Notion › Page / Database page › CreateConvertedParent and title. Typed properties and blocks are flagged.
github-create-issueGitHub › Issue › CreateConvertedOwner, repository, title, body, labels, assignees.
discord-send-messageDiscord › Webhook › SendConvertedMessage, username, avatar.
telegram_bot_api-send-text-message-or-replyTelegram › Message › SendConvertedChat, text, parse mode, reply-to.
twilio-send-messageTwilio › SMS › SendConvertedFrom, to, body.
email-send-email-to-selfSend Email (SMTP)ConvertedSubject and body; you add the SMTP credential and addresses.
Every other action (2,000+ apps)HTTP Request with the app’s n8n credentialNeeds youYour values go in the body; the report links the action’s source for its URL and method.
Private components, data storesNo Operation markerNeeds youTheir code and data aren’t in the export.

The deadline, from Pipedream's own pages

Checked on October 18, 2026. Pipedream Connect, the developer product, isn't affected.

  1. Now

    Maintenance mode. “Your existing workflows will keep running normally through March 31, 2027, but we're no longer accepting signups or subscriptions.” Pipedream docs

  2. Mar 31, 2027

    Workflows and String shut down. Subscriptions are cancelled that day with a prorated refund. Pipedream docs

  3. Apr 30, 2027

    Everything is deleted, “including the credentials and OAuth tokens for your connected accounts.” Export each project before then. Export docs

How this compares

Two other converters exist, and both are worth a look. Facts below are from their own sites on October 18, 2026; prices can change.

FeatureThis converterMigrateFlowsWorkflow Exit
PriceFree, no limitFree during beta; future pricing not stated. Done-for-you from $190Report and 1 workflow free; then $49 (25), $149 (100) or $399 (500), one-time
Where it runsIn your browserIn your browserReport in your browser; paid conversion uses AI calls on code
Code stepsRewritten in place: step references become n8n expressions; a short stand-in keeps $.export, $.flow.exit and $.respondKept with a compatibility layer; Python in betaCompatibility shim plus AI rewrites
Actions it doesn't knowHTTP Request node with your settings and a link to the action's sourceStops with a clear errorListed in the report
ReportEvery step: converted, partial or needs you, with the reasonSummary of supported and unsupported stepsReadiness report
Email address neededNoNoOptional, for reminders

Workflow Exit says it was tested on 395 real workflows and has an open-source CLI; ours was tested on hand-written exports (see the limits below). If you'd rather pay someone to do the whole move, MigrateFlows' done-for-you service is the only one of the three that offers it.

Limits, plainly

Has this been tested on real Pipedream exports?

Not on real accounts. Pipedream hasn't published a schema for its export files, so the converter was built from Pipedream's documentation and its open-source components, and tested on realistic exports we wrote by hand. It reads several shapes of the same data to be safe. Every converted workflow was then checked against n8n 2.43.7's own node definitions and imported into a local n8n 2.43.7, where two of them ran end to end through real webhooks (if/else branches, a Python step, a custom HTTP response). If your export trips it up, the report says which step.

How do I export from Pipedream?

Project Settings › Export Workflows writes a ZIP into the project's File Store; download it and drop it here (Pipedream's guide). It holds up to 500 workflows or 256 MB per run, and skips workflows that were never deployed. If your plan doesn't include File Stores, connect the project to GitHub (GitHub Sync) and upload that repository as a ZIP or folder. GitHub Sync keeps only trigger IDs, so you'll set schedules and webhook options again; the report reminds you.

What never comes across?

Secrets and connected accounts (Pipedream redacts them, and we wouldn't want them anyway), environment variables, data stores, and the code of private components. App triggers like “New Shopify order” become a placeholder with the matching n8n trigger named. Loops, AI agent steps, $.flow.delay, $.flow.rerun and $.send are marked “Needs you”.

Will my Node.js code run on n8n Cloud?

Usually, with care. n8n Cloud's Code node can only load crypto and moment; self-hosted n8n needs NODE_FUNCTION_ALLOW_BUILTIN or NODE_FUNCTION_ALLOW_EXTERNAL for anything else, including crypto. n8n 2.0 also blocks $env in Code nodes by default (n8n 2.0 changes), so process.env reads are flagged. Calls through Pipedream's axios are routed through n8n's own HTTP helper.

And Python?

n8n's native Python Code node (docs) only sees its input items, so the converter adds a small JavaScript node before it that gathers the steps your code reads. The sandbox doesn't allow classes or, on n8n Cloud, imports; the stand-in for pd is written without them. Python steps are always marked at least “Partial”.

Why are some app actions an HTTP Request node?

Because a wrong mapping is worse than an obvious gap. When we can't be sure an n8n node does the same thing, you get an HTTP Request node using the app's n8n credential, with your configured values in the body and a link to the Pipedream action's source so you can copy its URL and method. The report marks it “Needs you”.

How are if/else conditions translated?

Pipedream's condition operators (equals, contains, greater than, exists, in list and so on) become n8n If and Filter conditions. Grouped conditions turn into one expression. An operator we don't recognise becomes an always-false condition, marked “Needs you”, so nothing runs by accident.

Is this affiliated with Pipedream or n8n?

No. Pipedream is a trademark of Pipedream, Inc.; n8n is a trademark of n8n GmbH. This is an independent, free tool.