Migrate from Pipedream
Pipedream is shutting down Workflows on March 31, 2027, and deletes all Workflows data on April 30, 2027. This guide moves your workflows to Windmill. Your AI coding agent (Claude Code, Codex or Cursor) reads Pipedream's export and rebuilds each workflow as a Windmill flow, with its HTTP route or schedule. It works the same on Windmill Cloud and on a self-hosted instance. For how Windmill compares with Pipedream Workflows, see the Pipedream alternative page.
You don't need a Windmill account to start.
The agent converts your export on your machine first, so you see your own workflows as Windmill flows before you sign up.
It follows migrate-from-pipedream, a skill the agent downloads into your project.
The skill builds on the general AI skills that the Windmill CLI installs.
The skill maps each Pipedream concept to its Windmill equivalent, tracks what the export leaves out, and previews every flow before anything is deployed.
1. Export your Pipedream projects
Pipedream exports one project at a time:
- Open the project in the Pipedream dashboard and select Settings.
- Click Export Workflows.
- When the export finishes, download
project_export-<project_id>.zipfrom the project's File Store.
Your Pipedream plan must include File Stores. One export holds up to 500 workflows or 256 MB. See Pipedream's export documentation for details.
2. Give your agent one prompt
Put the export ZIP in an empty folder, open that folder in Claude Code, Codex or Cursor, and paste:
Pipedream Workflows is shutting down. Migrate my Pipedream export to Windmill:
1. Download https://gist.githubusercontent.com/alpetric/efdac7864d43526d52a4df0ca5f2de18/raw/SKILL.md
to .claude/skills/migrate-from-pipedream/SKILL.md and .agents/skills/migrate-from-pipedream/SKILL.md.
2. If this folder has no wmill.yaml, run `npx -y windmill-cli@latest init --use-default`.
3. Read that skill and follow it to migrate ./project_export-<project_id>.zip.
Don't deploy anything until I've reviewed it.
All you need installed is Node.js, for npx.
The agent then:
- Adds the migration skill and sets up a local Windmill project with the CLI, which needs no account.
- Reads the export's manifest and writes
pipedream_migration.md, a checklist covering every workflow: its triggers, its steps, the accounts and secrets it needs, and anything that can't convert automatically. - Asks you which folder to use, which workflows to migrate, and which credentials you'll connect.
- Rebuilds each workflow as a flow.
Code steps become plain Windmill scripts in the same language (TypeScript, Python, Go or Bash).
If/else, switch and parallel blocks become branches, and
$.flow.exit,$.respondand pre-built actions get their Windmill equivalents.
3. Connect a workspace and preview
To run the converted flows, you need a Windmill workspace: sign up for Windmill Cloud, or self-host Windmill. The agent then asks you to connect it from your own terminal:
npx windmill-cli workspace add
Choose the browser login. The agent then previews each flow with a sample event and fixes what fails. A preview deploys nothing.
If you already use Windmill, run the same prompt in your synced workspace folder. The agent then skips the setup and converts into your existing project.
4. Fill in what the export leaves out
The export holds the structure of your workflows, not their credentials or data. The checklist lists, for each workflow, what to bring over yourself:
| Not in the export | Where it goes in Windmill |
|---|---|
| Connected accounts (only an internal Pipedream account id remains) | Resources: connect the app again |
| Secret props and environment variables | Variables and secrets |
| Data store contents | Script state for a value one step keeps, such as a cursor, or a data table for a store several workflows share. Either way, copy the data out of Pipedream |
| File Store files | Workspace object storage |
| Code of private components | Your own copy of the component source |
Copy data and secrets out of Pipedream before April 30, 2027, when it deletes them.
5. Review, deploy and switch over
- Review the flows in
f/<your folder>/and the checklist. - Deploy the folder with its routes and schedules:
wmill sync push --includes 'f/<your folder>/**' --include-triggers --include-schedules. Schedules are created disabled, so the migrated copy doesn't run alongside Pipedream. - Repoint each caller of a Pipedream endpoint URL to the flow's new HTTP route, enable the schedules, and turn off the Pipedream workflow.
How Pipedream concepts map to Windmill
| Pipedream | Windmill |
|---|---|
| Workflow | Flow |
| Code step (Node.js, Python, Go, Bash) | Script step in the same language |
| HTTP trigger | HTTP route, with a preprocessor that rebuilds steps.trigger.event |
| Schedule trigger | Schedule |
| Email trigger | Email trigger |
$.respond() | A step returning a custom status code, headers and body, or the flow's early return when the workflow keeps running after responding |
$.flow.exit() / End workflow | Early stop |
| If/else, switch | Branch one |
| Parallel | Branch all, run in parallel |
| Delay | Sleep |
| Auto-retry | Retries |
| Concurrency and throttling | Concurrency limits |
| Connected account | Resource |
| Environment variable | Variable |
Getting help
If part of your export doesn't convert, or a migrated flow behaves differently from its Pipedream original, ask us on Discord or email [email protected].
Include the workflow's entry from pipedream_migration.md.