leave-pipedream · checked

Exporting Pipedream workflows on a Free or Basic plan

Pipedream's export page, read 9 October 2026, says the export “writes the archive to the project's File Store, so your plan must include File Stores”, and its File Stores page says they “are only available to Advanced plan and above”. So on a Free or Basic plan the Export Workflows button has nowhere to write, and Pipedream says it is no longer accepting subscriptions. What you can still do is copy each workflow out by hand before 31 March 2027: its schedule, its code steps, and the names of what it connects to.

What to copy, workflow by workflow

  1. The trigger. For a schedule, its cron line or interval and its time zone, as the trigger shows them. For an HTTP trigger, the URL senders call, so you can point them at the new one.
  2. Each code step, in order. Open it in the editor and save the code to a file named for the step: .mjs for Node.js, .py for Python, .sh for Bash.
  3. Each prop's value that is not a secret: a channel, a sheet ID, a message template.
  4. Each connected account and secret, by name. Their values were never shown to you and cannot be copied: you will create a token with each app again.
  5. Each pre-built action: which app, which action, and the props you set. You will rewrite it against the app's own API.
  6. Your data: anything in data stores, File Stores or event history you still need. All of it is deleted by 30 April 2027.

If the project has GitHub Sync turned on, its workflows are already in that repository as files, code steps included; copy from there.

Move a scheduled workflow by hand

For each workflow with a schedule trigger, in a repository of your own on GitHub:

  1. Copy the trigger's cron line and time zone into a workflow file's on.schedule. GitHub takes the time zone as timezone, an IANA name, so the run follows the clock change as it did on Pipedream.
  2. Save each code step from the editor to a file. A Node.js step is export default defineComponent({ async run({ steps, $ }) … }): keep the body of run, read steps.<name> from the step before (pass it in a file), and read secrets from process.env. A Python step's handler(pd) works the same with pd.steps and os.environ.
  3. For every connected account and secret prop, create a token with the app itself and store it under Settings → Secrets and variables → Actions; pass it in the step's env.
  4. Rewrite each pre-built action against the app's own API. Their code is under a license that excludes commercial use: do not copy it.
  5. Run it once by hand, then turn the Pipedream workflow off and merge: GitHub runs a schedule only from the default branch, so the merge is the switch.
# .github/workflows/nightly-sync.yml
name: Nightly sync
on:
  schedule:
    - cron: "30 2 * * *"            # the trigger's schedule, as Pipedream shows it
      timezone: "America/New_York"  # the trigger's time zone
  workflow_dispatch:                # run it by hand to test
permissions:
  contents: read
jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: actions/setup-node@v7
        with:
          node-version: "24"
      - run: node steps/fetch.mjs     # step 1, copied from the editor
        env:
          SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }}

leave-pipedream does this for a whole export at once, with a runner that keeps Pipedream's steps and $ so the code runs unchanged; until its repository is published, this is the same move by hand.

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.