leave-pipedream · checked
Pipedream Workflows shut down on 31 March 2027: move scheduled workflows to GitHub Actions
Pipedream's own page, read 9 October 2026, says Workflows and String “will shut down on March 31, 2027”, and that all Workflows data, connected-account tokens included, will be “permanently deleted by April 30, 2027”. Pipedream's export writes the workflows to the project's File Store, which only Advanced plans and above have, so a Free or Basic workspace has no export at all. GitHub Actions runs a cron schedule in the time zone you name, so a scheduled workflow can move there with its code.
| When | What happens |
|---|---|
| Already | Workflows is in maintenance mode: no new signups or subscriptions, no new features. |
| 31 March 2027 | Workflows and String shut down. Scheduled workflows stop running. |
| 30 April 2027 | All Workflows data is deleted, the credentials and OAuth tokens of connected accounts included. |
Pipedream Connect is not affected, Pipedream says; this is about Workflows.
One command
In the folder where you downloaded project_export-<id>.zip from the project's File Store:
$ npx --allow-remote=root https://agentwares.vercel.app/dl/leave-pipedream-0.1.0.tgz project_export-<id>.zipIt reads the export on your machine and writes files next to it: a GitHub Actions workflow per scheduled workflow, its code steps, and MIGRATION.md. No account, no network requests, no LLM, and it never asks for a Pipedream credential. Free and MIT licensed.
What each part of a workflow becomes
| On Pipedream | After the move |
|---|---|
| Schedule (timer) | A GitHub Actions workflow on the same cron line, with GitHub's timezone key; an interval becomes the nearest cron line |
| Node.js, Python and Bash steps | Files the workflow runs in order, with Pipedream's steps, $ and props |
| Secret props, connected accounts, environment variables | Named secrets to create, listed in MIGRATION.md |
| HTTP trigger | A Cloudflare Workers stub, with the steps to port |
| Pre-built actions | A line naming the component and its props: rewrite the step against the app's own API |
| Event sources, email and form triggers, control flow | Lines in MIGRATION.md saying what to use instead |
Pipedream's pre-built actions are published under a source-available license that excludes commercial use, so none of their code is copied: each is named for you to rewrite.
What it prints
Synthetic export, written for this demo: not anyone's workflows.
leave-pipedream 0.1.0 · synthetic export · project proj_SYNTH01 · exported 1 Oct 2026
Nightly invoice sync · p_SYN001
schedule 30 2 * * * in America/New_York → the same line, with GitHub's timezone key
wrote .github/workflows/nightly-invoice-sync.yml
steps 2 of 3 steps converted; 1 pre-built action to rewrite (slack-send-message)
secrets STRIPE_API_KEY, WRITE_ROWS_SERVICE_ACCOUNT_JSON, SLACK_*
to do 1 line in MIGRATION.md
Uptime digest · p_SYN002
schedule every 6 hours → 51 */6 * * * (UTC)
wrote .github/workflows/uptime-digest.yml
steps 2 of 2 steps converted
secrets STATUS_URLS, DISCORD_WEBHOOK_URL
note Pipedream ran it every 6 hours from when it was deployed, which the export does not
record; minute 51 is a fixed choice off :00.
Stripe webhook to CRM · p_SYN003
trigger HTTP → workers/stripe-webhook-to-crm/worker.mjs, a stub to finish
wrote workers/stripe-webhook-to-crm/worker.mjs
steps 1 code step saved to port; 1 pre-built action to rewrite
(hubspot-create-or-update-contact)
secrets STRIPE_WEBHOOK_SECRET, HUBSPOT_*
to do 3 lines in MIGRATION.md, 1 beyond the steps
New sheet row to Slack · p_SYN004
trigger the event source `google_sheets-new-row-added@0.2.1` (props: google_sheets =
connected account apn_SYNTH04: connect it again; sheetId =
"1AnotherSyntheticSheet") → a checklist line
steps 1 pre-built action to rewrite (slack-send-message)
secrets SLACK_*
to do 2 lines in MIGRATION.md, 1 beyond the steps
Monthly report · p_SYN005 · inactive
schedule 0 9 1 * * in Europe/London → the same line, with GitHub's timezone key
wrote .github/workflows/monthly-report.yml
steps 1 of 2 steps converted; 1 step inside control flow, not wired
secrets RESEND_API_KEY
to do 3 lines in MIGRATION.md, 2 beyond the steps
Untitled workflow · p_SYN006
skipped never deployed, so Pipedream had nothing to export
Converted 3 workflows to GitHub Actions, 1 HTTP workflow to a Workers stub, 1 workflow to a
checklist: 5 code steps ready to run, 6 steps to finish by hand, 8 secrets to create. Pipedream
skipped 1 workflow.
Dry run: nothing written. Without --dry-run, 20 files go to leave-pipedream-out/, MIGRATION.md
first.
Before you merge: GitHub runs a schedule only from the default branch, so merge each workflow the
day you turn its Pipedream twin off, or both will run.
An hourly watch that your migrated schedules ran, from outside GitHub's scheduler, is not built.
It would email you when a converted schedule is late, missed, or green with nothing done. Today each
converted workflow can ping a heartbeat URL you set (HEARTBEAT_URL). If you would pay for the watch,
say so with one click:
https://agentwares-agentcheck.vercel.app/pipedream?ref=leave-pipedream#watchSwitching over
GitHub runs a schedule only from the repository's default branch, so the merge is the switch. Create the secrets, run each workflow once by hand from a branch, then turn the Pipedream workflow off and merge. Merge first and both run; wait too long and neither does.
Before you start
- Exporting Pipedream workflows on a Free or Basic plan — Pipedream's export writes to a File Store, which only Advanced plans have. How to get a Free or Basic workflow out before 31 March 2027, step by step.
- What Pipedream's workflow export leaves out — No secrets, OAuth tokens, environment variables, event history, data stores or File Store files: what each means for the move, and what to save by 30 April.
An hourly watch that your migrated schedules ran, from outside GitHub's scheduler, is not built.
A migrated schedule runs on GitHub's scheduler, which delays and drops runs under load and sends no alert. A watch would check every hour, from outside it, that each migrated workflow ran, and email you when one is late, missed, or green with nothing done. It does not exist yet. What works today: each converted workflow can ping a heartbeat URL you set, such as a free healthchecks.io check, and didrun reads a repo's scheduled runs when you ask.
I would pay for an hourly watch of my migrated schedules
The click is counted, and nothing else is sent: no form, no email, no cookie. There is no price yet and nothing is charged.
Sources
- Pipedream Docs: Workflows and String are shutting down on March 31, 2027 — read 9 October 2026: the shutdown date, deletion of all Workflows data by 30 April 2027, signups and subscriptions closed, Connect not affected
- Pipedream Docs: Export Workflows — read 9 October 2026: the archive goes to the project's File Store; the manifest and workflow file formats; what is not in the export; 500 workflows or 256 MB
- Pipedream Docs: File Stores — read 9 October 2026: File Stores are only available to Advanced plan and above
- GitHub Docs: Workflow syntax, on.schedule — read 9 October 2026: cron with an IANA timezone, DST handling, the 5-minute minimum
- GitHub Docs: Events that trigger workflows, schedule — read 9 October 2026: schedules run from the default branch and can be delayed under load
Not affiliated with Pipedream. Pipedream is named here only to say what these pages and the tool read; the quotes are from Pipedream's own documentation, read on 9 October 2026.