Migrating from n8n

Export a workflow from n8n as JSON and import it in Studio. The migrator converts deterministically — no model in the loop; the same input gives the same output — and tells you honestly what it could and couldn't convert.

How it works

  • Upload the exported workflow JSON — the wizard shows a per-node preview before anything is created.
  • Map the workflow's credentials to SARB credentials (create them inline if they don't exist yet).
  • Review the items the migrator flagged, then apply the result as a draft agent.
  • Test-run the draft, fix what needs fixing, publish. Webhook-triggered agents get their caller URL on publish.

What the report means

DispositionMeaning
convertedmapped cleanly to SARB steps — nothing to do
review_requiredcarried into the draft verbatim with the reason it needs your eyes
unconvertedno safe mapping exists — the node is preserved as information, not as a step
droppedn8n-internal scaffolding with no runtime effect (e.g. sticky notes)

Never guessed

The migrator's rule is the product's rule: convert what has exactly one faithful meaning; flag everything else. Code that reads n8n-specific state ($env, per-item pairing, $runIndex), expressions outside the closed grammar, and nodes without a SARB equivalent are flagged with the reason — the original is preserved verbatim so you can port it deliberately.

If you enable copilot suggestions for flagged code, they are advisory: shown as a diff, applied only by you, and never change what is flagged.