If your workflows run on Pipedream, you found out this month that they have an end date. Pipedream is closing its Workflows product and String on March 31, 2027, and deleting everything a month later. Nothing you built was wrong. Pipedream decided to focus on Connect, its API for putting integrations inside other products, and Workflows didn’t fit that plan.
Six months is enough time to move calmly, as long as you start before March. This guide covers what’s in your export, where each Pipedream piece lands in FlowRunner, what happens to your code steps, and what changes about the bill.
The short version, for anyone who got here from a search box. Pipedream Workflows shuts down on March 31, 2027 and all workflow data, including connected-account credentials, is deleted by April 30. Its export gives you each project’s workflows as JSON, and FlowRunner Prompt to Flow builds FlowRunner flows from those files, code steps included. FlowRunner’s Free plan has no card and no time limit, counts one execution per complete run, runs AI on your own provider keys, and includes every integration and human-in-the-loop approvals, with 14 days of Professional on signup.
To skip rebuilding by hand, follow how to convert Pipedream workflows to FlowRunner: FlowRunner Prompt to Flow reads each workflow’s files, code steps included, and builds the flow, with three real conversions to show how it goes.
What’s happening, and when
In Pipedream’s own words:
“Pipedream Workflows and String will shut down on March 31, 2027.”
Workflows is in maintenance mode now. Pipedream is no longer accepting signups or subscriptions and isn’t shipping new features, but existing workflows keep running until the shutdown date. Then:
“All Workflows data will be permanently deleted by April 30, 2027, including the credentials and OAuth tokens for your connected accounts.”
Subscriptions stay active until March 31, 2027, when Pipedream cancels them and issues a prorated refund. Monthly subscribers can cancel themselves sooner; annual subscribers are asked to contact support.
Pipedream Connect, its MCP servers, and the API Proxy are not affected. If you embed Pipedream Connect in your own product, nothing here applies to that.
What the export gives you
Pipedream built an export tool that works one project at a time. You get a ZIP with one JSON file per workflow, and in Pipedream’s words each file “describes its triggers, steps, code, configured props, and control flow.” The code from your inline code steps is in there, which is the part that took you longest to write.
What’s left out matters as much:
- Secrets and connected accounts. Anything that is or could be a credential is replaced with
<redacted>, and app connections keep only an ID. Every account gets reconnected wherever you go next. - Environment variables, data stores, and File Store files. Copy those out separately before April 30.
- Event history. Your past runs don’t come with you.
- Workflows you never deployed. The export skips them.
You don’t have to rebuild from it by hand. FlowRunner Prompt to Flow reads each workflow’s JSON, code steps included, and builds the same flow in your workspace; here’s how to convert your workflows. If you’d rather build by hand, the JSON still works as the specification: it lists every trigger and step in order, with the settings each one used.
Export every project now, even the ones you plan to retire. The files cost nothing to keep, and April 30 is not a date to find out you needed one.
Where each Pipedream piece lands
Most of the move is renaming. This is the table to keep open.
| Pipedream | FlowRunner | What changes |
|---|---|---|
| Workflow | Flow | A flow can begin with any block, not only a trigger. |
| HTTP / Webhook trigger | External Callback | The same idea, and the URL can also resume a run that’s already waiting. |
| Schedule trigger | Scheduling | Once, interval, daily, weekly, monthly, or cron. |
| App event sources (new row, new message, new issue) | Integration triggers | All 2,100+ integrations are on every plan, Free included. |
| Pre-built actions | Integration actions | Reconnect each account once; the connection is shared across flows. |
| Node.js code step | Custom Cloud Code | JavaScript with fetch, crypto, and Buffer, and it can also be attached to an AI agent as a tool. See the code section below. |
| Code steps that import npm packages | A custom extension | Your own blocks, deployed with the FlowRunner CLI, with the packages shipped alongside. |
| Python, Go, Bash steps | Custom Cloud Code or a custom extension | Rewritten in JavaScript. |
| API calls inside code | HTTP Request, or fetch in Custom Cloud Code | The block shows the call on the canvas, records it in run history, and can retry. |
| Your own components and event sources | Custom extension actions and triggers | Triggers poll an API or receive its webhooks, and the runtime tracks what is new. |
| Dynamic dropdowns in your components | Extension dictionaries | Options fetched from the live API as the person types. |
| If/Else, Filter | Condition, Value Router, AI Router | Condition handles AND/OR logic with precedence; AI Router branches on meaning. |
$.flow.delay | Wait | Up to 30 days on Free, Starter, and Growth, and up to a year on Professional and above. |
$.flow.suspend for approvals | A human-in-the-loop flow | The person is reached over email, Slack, WhatsApp, phone, or a Form. |
| Data stores | Shared Memory, or the database you already use | Shared Memory is key and value state that persists across runs. |
| Event history | Log history | 24 hours on Free and Starter, 7 days on Growth, 30 on Professional, 90 on Business. |
| Error notifications | Handle Error | A failed block can route to its own path instead of stopping the run. |
| GitHub Sync | Flow export | Single-flow export on every plan; bulk and API export from Growth up. |
| String agents | AI Agent block | Your own provider keys, with your prompt pasted in unchanged. |
Two Pipedream triggers are deliberately not in that table: email and RSS. Both work as an External Callback with a sender in front of it, and which sender is right depends on what’s producing the mail or the feed. That’s a short conversation, not a table row.
Your code, and the components you wrote
This is the part of a Pipedream move that deserves the most care, because Pipedream was built for people who write code. FlowRunner has two places for it, and which one a piece of your code goes to depends on what it needs.
Code steps go into Custom Cloud Code. It’s a JavaScript step in the flow: you pass values in as named arguments, and whatever the code returns becomes the step’s result. It has fetch for real API calls, crypto, Buffer, timers, and URL, and async/await works the way you’d expect. It isn’t Node.js, though, so there’s no require, no import, and no npm packages. In practice:
- Code that reshapes data (parse this, filter that, build the payload) moves over nearly as written. A lot of it can also become Transform Data, which covers 40+ common operations without code.
- Code that calls an API works with
fetch. For calls that matter, the HTTP Request block is usually the better home, because it shows the call on the canvas, records it in run history, and can retry on failure. - Code that imports npm packages belongs in a custom extension, below.
Libraries, custom components, and event sources go into a custom extension. An extension is one JavaScript module you deploy to your workspace with the FlowRunner CLI, and it becomes blocks of your own in the palette. If you wrote Pipedream components or event sources, this is the closest thing to them:
- Actions run your code when the flow reaches the block.
- Triggers either poll an API on a schedule or receive its webhooks. For polling, the runtime keeps track of what it has already seen, so you write the query and it works out what’s new.
- Each extension has its own
package.json, and itsnode_modulesship with the deploy, so your libraries come along. - Credentials live in a configuration form filled in once per workspace, never typed into a block. OAuth is declared in a few lines, and the runtime handles the redirect, the token exchange, and the refresh.
- Dropdowns can be filled from the live API, the way dynamic props worked in your components.
- Every deploy is a version, and rolling back is one click. There’s a test harness that runs your extension with HTTP intercepted, so you can check what it sends before it’s live.
You don’t have to write it by hand. npx flowrunner init-claude installs two agents into Claude Code, one that writes the service and one that writes its tests, and you describe what you want in a sentence. Pasting the Pipedream component you’re replacing is a good way to describe it. Keep a copy of your component source: Pipedream’s export lists private components by name but doesn’t include their code.
Python, Go, and Bash steps get rewritten in JavaScript, in either place. FlowRunner runs JavaScript only. Most short steps are a mechanical translation, and an AI assistant does it well when you hand it the step and the input it receives. For anything long, send us the step and we’ll tell you where it should land.
The approval step is the one to move first
Pipedream’s $.flow.suspend pauses a workflow until someone resumes or cancels it through a URL. By default it waits 24 hours, and each wake-up from a suspension counts as a new credit.
FlowRunner treats the person as part of the run instead. Human-in-the-loop is an execution pattern where AI agents pause autonomously, assemble the relevant context and the decision choices available, route to a human via their preferred channel, and resume the moment the human responds. The human step is a flow that an agent can call as a tool, or that a flow reaches on its own. It finds the person over email, Slack, WhatsApp, phone, or a Form, waits up to 30 days on Free, Starter, and Growth and up to a year on Professional and above, and the run picks up where it left off with the answer.
If one of your Pipedream workflows had a suspend step in it, rebuild that one first. It’s the one you’d worry about most, and it’s the one that tells you whether the new platform fits.
The meter you’re leaving
Pipedream metered compute time. A credit was 30 seconds of compute at 256 MB, and AI tokens were counted on their own meter. The bill moved with how long your code ran.
FlowRunner counts one thing. An execution is one complete workflow run, start to finish. A run with twelve steps counts once, the same as a run with two, and a run that waits two days for an approval still counts once.
AI isn’t metered at all. FlowRunner uses BYOK, a model where you supply your own AI provider API credentials, pay the providers directly for usage, and FlowRunner orchestrates calls across providers without taking a markup on inference. Your OpenAI, Anthropic, or Google keys, at your rates, on your invoice from them.
Where this lands
The Free plan is $0, permanent, no card, and no time limit. It runs 100 executions a month, one at a time, with 24 hours of log history. Unlimited users, unlimited workflows, and every integration, with AI agents and human-in-the-loop included. One Free workspace per account.
Every new account also gets 14 days of the Professional plan on its first workspace, with audit trails and role-based access control, and no card required. When the trial ends without a payment method, the workspace moves to Free and the flows keep running. Above Free, Starter is $5 a month for 300 executions or $15 for 3,000, and the ladder continues from there.
Relay.app users went through the same thing in September; that guide covers the same ground from their side.
Start on the Free plan
Open a free workspace, keep the export on the other screen, and move the workflow with the approval in it first. No card, no clock. If you’d rather have someone go through the export with you, send us a note. Migration help for people coming from a shutdown is free.
Frequently asked questions
When does Pipedream Workflows shut down?
Pipedream Workflows and String shut down on March 31, 2027. Workflows is already in maintenance mode with no new signups or subscriptions. All Workflows data, including the credentials and OAuth tokens for connected accounts, is permanently deleted by April 30, 2027. Pipedream Connect is not affected.
Can I import my Pipedream export into FlowRunner?
Yes, through FlowRunner Prompt to Flow. Paste a workflow's JSON from the export, or its GitHub Sync files, into Claude, ChatGPT, Claude Code, Codex, or Cursor with the FlowRunner MCP server connected, and it builds the same flow in your workspace, code steps included. Credentials, environment variables, and data stores are not in the export, so you reconnect accounts and fill in secrets afterwards.
What happens to my Node.js and Python code steps?
Node.js steps move into Custom Cloud Code, a JavaScript step in the flow that can call APIs with fetch and can also be attached to an AI agent as a tool. Code that depends on npm packages becomes a custom extension: a JavaScript module you deploy to your workspace with the FlowRunner CLI, which ships with its own dependencies. Python, Go, and Bash steps are rewritten in JavaScript.
Can I rebuild the custom components and event sources I wrote on Pipedream?
Yes, as a custom extension. An extension adds your own actions to the block palette, plus triggers that either poll an API on a schedule or receive its webhooks, with the runtime keeping track of what is new. Credentials go in a configuration form filled in once per workspace, OAuth is declared rather than hand-built, and every deploy is a version you can roll back. The Pipedream export does not include the code of private components, so start from your own copy of the source.
What replaces $.flow.suspend for approvals?
A human-in-the-loop flow. The run pauses, reaches the person over email, Slack, WhatsApp, phone, or a Form, and resumes with their answer. The wait can last up to 30 days on Free, Starter, and Growth, and up to a year on Professional and above, and one run counts as one execution however long it waits.
What does it cost to move my Pipedream workflows to FlowRunner?
The Free plan is $0 with no card and no time limit: 100 executions a month, one at a time, 24 hours of log history, unlimited users, unlimited workflows, and every integration. Every new account also gets 14 days of the Professional plan on its first workspace.