Pipedream is shutting down Workflows, and String with it, on March 31, 2027. Existing
workflows keep running until that date, but the product is in maintenance mode: no new
signups, no new subscriptions, no new features. After April 30, 2027 the data is gone,
including the tokens for your connected accounts. Those dates come from Pipedream's own
shutdown page, and they set the real deadline: you need to rebuild somewhere, and the
export you will want to work from stops existing five months after the lights go out.
I build customer-operations automations in n8n for small salons and clinics. This post
is the migration map I would want if my workflows lived in Pipedream today: what the
export actually gives you, which Pipedream concept maps to which n8n one, and three
tested n8n starting points for the patterns most business workflows boil down to.
What the export actually gives you
The n8n community has a thread worth reading first: Moving off Pipedream Workflows
before 31 March 2027. Its author went through 103
public Pipedream workflows to see what the move involves. Two findings matter:
- The export is a JSON record per workflow. Nothing imports it directly, n8n included.
- An open-source converter exists: davobene/migrateflows. It takes a project export or a GitHub Sync folder and outputs n8n workflow JSON plus a checklist per workflow.
That covers triggers and app steps reasonably well. The parts a converter cannot finish
for you are the same parts that break in production: code steps that read credentials,
and any logic that depends on saved state. Those need your judgment, so here is the map.
The concept map
| Pipedream | n8n | What to watch out for |
|---|---|---|
| HTTP trigger (webhook URL) | Webhook node | The production URL registers when you activate the workflow. If the caller needs an answer, the flow has to end in a reachable Respond to Webhook node, or the caller hangs until timeout. |
| Cron / timer trigger | Schedule Trigger | Set odd minutes. If a dozen workflows all fire at :00, they will fight for the same database rows and API rate limits on every run. |
Code steps reading this.<app>.$auth
|
HTTP Request node with stored credentials | Keep tokens out of code. The community thread flags exactly this case: code steps that pull the OAuth token or API key and pass it to axios are the ones that need a manual rewrite. |
Step state ($checkpoint) |
getWorkflowStaticData() |
Fine for simple keys. It is last-write-wins across concurrent executions, so it breaks precisely when runs overlap. For anything that deduplicates, use a database with a unique constraint. |
Early return ($end()) |
IF node, respond node | Split the flow and give every arm an explicit ending. Dead ends are invisible until a caller times out. |
The state row deserves the most respect, because it fails silently. n8n schedule
triggers do not wait for the previous execution to finish. A slow API call plus a tight
poll interval stacks executions, and two runs can both read the same window, both
conclude they are first, and both send. If double-sending matters, make the insert the
lock: a unique index on your incident or message key, insert with on-conflict-do-nothing,
and only fire the notification when the insert actually returned a row. I wrote more
about that pattern in part 1 of this series,
where the reminder workflow keeps a send log keyed by appointment and stage for exactly
this reason.
Don't port node for node
A migration is cheaper when you port patterns instead of nodes. Most Pipedream business
workflows I have seen reduce to three customer-ops patterns, and tested n8n versions of
all three are free in the official template library. Full disclosure: I maintain them.
Each one ships with demo data, runs without credentials, and marks the nodes you replace
with your own accounts.
1. Reminder blasts become staged reminders with reply handling
If your Pipedream workflow was a cron trigger, a sheet read, and a send step, the n8n
upgrade is Cut appointment no-shows with staged reminders, reply triage and waitlist
backfill.
Every six hours it picks the right reminder stage per appointment instead of blasting
everyone the same message. A send log prevents repeats. A reply webhook classifies
answers: confirmations update the row, cancellations rank the waitlist for the freed
slot and offer it to the top candidates automatically. The step I always had to hand-build
in Pipedream, deciding what a customer meant by their one-word SMS answer, is a single
classify node here.
2. Fee chasing becomes an escalation ladder with a stop condition
Chasing a missed payment is a schedule, some history, and a send step, until it re-sends
forever and the customer stops reading. The n8n version is Recover no-show appointment
fees with an automated WhatsApp or SMS
ladder.
It runs every 12 hours, validates each row first (broken rows land in a log instead of
the send queue), only escalates inside a time window, picks the tone by payment history,
and a payment reply webhook classifies confirmations and disputes. A confirmation or a
dispute closes the ladder. The stop condition is the entire value of the pattern; without
it you have built a nuisance machine.
3. Waitlist handling becomes ranked offers with a claim guard
The third pattern: something cancels, someone on a list wants the slot. The n8n version
is Fill cancelled booking slots from a ranked waitlist using webhooks and
SMS/WhatsApp.
A cancellation webhook normalizes the event, ranks the waitlist, and offers the slot to
the top candidates at once. The first TAKE reply wins, enforced by a claim guard, and a
sweeper runs every 30 minutes to re-offer slots whose offers expired without an answer.
Over-offering on purpose plus a hard claim guard is much faster than offering one person
at a time and waiting a day for silence.
The cutover checklist
- Export everything now. The shutdown page promises six months to migrate, and the data deletion follows on April 30, 2027. Export while the tokens for connected accounts still exist; you will want them for reference when you rebuild authentications on the n8n side.
-
Put your own domain in front of the new webhooks. Every caller has to be updated
anyway, so point them at
hooks.yourdomain.comand proxy that to n8n. The next time you move platforms, it is a DNS change instead of another hunt through every caller. -
Inventory credential-reading code steps. Anything pulling
this.<app>.$authinto an axios call becomes an HTTP Request node with stored credentials. Do this while the old workflow is still running, so you can compare responses side by side. - Replace step state deliberately. Simple flags go to workflow static data. Anything that deduplicates goes to a database with a unique constraint, for the concurrency reason above.
- Stagger the schedules. Odd minutes, and spread your workflows across them.
- Dual-run for a week. Keep the Pipedream version sending to a test destination and the n8n version sending to another, compare the logs per day, then cut over one workflow at a time. Migrating all of them in one evening is how a subtle timezone bug reaches every customer on day one.
- Turn on error notifications before you need them. The failure mode that hurts after a migration is the silent one: a token expires in week two and the workflow errors on every run while nobody looks. Point an error workflow at something you read daily.
Why do this now instead of in March
Every other Pipedream Workflows user is on the same clock, and the ones who build for
a living will book their capacity early. The quiet weeks you have now are the cheap
weeks. The export takes minutes, the converter takes an afternoon, and the dual-run
week is mostly waiting. Starting in February converts all of that into a crunch with
a hard deadline attached.
If you migrate one of the three patterns above, the library templates are the fastest
starting point I know of, because the fiddly parts (send logs, reply classification,
claim guards, windows) are already wired and tested. My earlier posts walk through the
same loop pattern by pattern: reminders,
waitlist backfill,
fee recovery,
follow-ups,
and a weekly KPI digest.
Disclosure: I maintain the three free library templates linked above, and I sell a
paid pack of seven workflows for salons and
clinics that extends the same patterns. If you want the numbers first, there are two
free calculators: no-show cost and
waitlist fill rate.
Top comments (0)