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.

WhenWhat happens
AlreadyWorkflows is in maintenance mode: no new signups or subscriptions, no new features.
31 March 2027Workflows and String shut down. Scheduled workflows stop running.
30 April 2027All 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>.zip

It 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 PipedreamAfter 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 stepsFiles the workflow runs in order, with Pipedream's steps, $ and props
Secret props, connected accounts, environment variablesNamed secrets to create, listed in MIGRATION.md
HTTP triggerA Cloudflare Workers stub, with the steps to port
Pre-built actionsA line naming the component and its props: rewrite the step against the app's own API
Event sources, email and form triggers, control flowLines 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#watch
Synthetic export: the real output of npx --allow-remote=root https://agentwares.vercel.app/dl/leave-pipedream-0.1.0.tgz demo, which converts an export shipped with it. Not anyone's workflows.

Switching 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

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

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.