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
| Disposition | Meaning |
|---|---|
| converted | mapped cleanly to SARB steps — nothing to do |
| review_required | carried into the draft verbatim with the reason it needs your eyes |
| unconverted | no safe mapping exists — the node is preserved as information, not as a step |
| dropped | n8n-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.