---
title: "How to move from n8n to FlowRunner"
description: "Download each n8n workflow as JSON, have FlowRunner Prompt to Flow rebuild it in your AI tool, then reconnect accounts, test, and switch over."
url: https://flowrunner.ai/alternatives/n8n/migrate
date_published: 2026-11-02
date_modified: 2026-11-03T09:28:56-08:00
---

[Alternatives](https://flowrunner.ai/alternatives) / [n8n](https://flowrunner.ai/alternatives/n8n) / Move to FlowRunner

![n8n logo](https://flowrunner.ai/assets/alternatives/n8n.svg)

# How to move from n8n to FlowRunner

Download each n8n workflow as JSON, have FlowRunner Prompt to Flow rebuild it in your AI tool, then reconnect accounts, test, and switch over.

2026-11-02 Updated November 3, 2026 8 min

Every n8n workflow downloads as a JSON file with its nodes, their settings, and the connections between them. That file is enough for [FlowRunner Prompt to Flow](https://docs.flowrunner.ai/build/prompt-to-flow.html) to rebuild the workflow in your FlowRunner workspace. You paste it into the AI tool you already use, answer a few questions, and the AI builds the flow from the same blocks the flow editor uses.

You convert one workflow at a time. What’s left for you is the part no export carries: connecting your accounts, filling in keys, and testing before you switch.

## 1\. Export your workflows from n8n

The download works the same on n8n Cloud and on a self-hosted instance.

-   **One workflow:** open it in the editor, open the workflow menu (the three dots in the canvas header), and choose **Download**. A `.json` file downloads.
-   **Part of a workflow:** select the nodes on the canvas and press Ctrl+C (Cmd+C on a Mac). The clipboard holds the same JSON for just those nodes, ready to paste into the chat.
-   **Every workflow, self-hosted:** on the n8n host, run `n8n export:workflow --backup --output=backups/latest/`. You get one file per workflow. With Docker, put `docker exec -u node -it <container>` in front.

Some things aren’t in the file:

-   **Credential secrets.** The file names each credential and gives its ID, and that’s all. Don’t use the separate credentials export for this, and don’t paste one into a chat.
-   **Keys typed into nodes.** An HTTP Request node built from a cURL command can hold an API key in its headers. Search the file for `Authorization` or `key` and delete those values before you paste it. You’ll put them back in FlowRunner in step 4.
-   **Run history.** Past executions stay in n8n.

Before you leave, open each workflow’s executions list and copy two or three real inputs. You’ll test the FlowRunner flow with them in step 5.

## 2\. Connect FlowRunner Prompt to Flow to your AI tool

[FlowRunner Prompt to Flow](https://docs.flowrunner.ai/build/prompt-to-flow.html) is an MCP server you add to the AI tool you already use. You connect it once and sign in with your FlowRunner account. The server URL is the same for every tool: `https://app.flowrunner.ai/mcp`.

-   **Claude (web and desktop):** open **Settings** > **Connectors**, click **\+ Add**, then **Add custom connector**. Enter `FlowRunner` and the server URL, click **Add**, then **Connect**, and approve the FlowRunner sign-in. On a Team or Enterprise plan, an Owner adds it once under **Organization settings** > **Connectors**.
-   **Claude Code:** run these two commands in your project folder, and approve the sign-in page that opens:

```
claude mcp add --transport http flowrunner https://app.flowrunner.ai/mcp
claude mcp login flowrunner
```

-   **ChatGPT (on the web):** open [ChatGPT Plugins](https://chatgpt.com/plugins), click **Add**, then **Add custom MCP server**. Enter `FlowRunner`, put the server URL under **Connection**, choose **OAuth**, and approve the sign-in. In a chat, type `@` and pick FlowRunner.
-   **Codex:** add the server to `~/.codex/config.toml`, then run `codex mcp login flowrunner`:

```
[mcp_servers.flowrunner]
url = "https://app.flowrunner.ai/mcp"
```

-   **Cursor:** add the server to `~/.cursor/mcp.json`, then open **Customize** > **MCPs** and follow the sign-in prompt:

```
{
  "mcpServers": {
    "flowrunner": { "url": "https://app.flowrunner.ai/mcp" }
  }
}
```

If you don't have a FlowRunner account yet, the [Free plan](https://flowrunner.ai/pricing) needs no card, and every new account starts with 14 days of Professional. The [setup guide in the docs](https://docs.flowrunner.ai/build/prompt-to-flow.html) has each tool step by step.

## 3\. Convert one workflow at a time

Start a new chat, paste this request, then paste one workflow’s JSON after it:

> Rebuild this n8n workflow as a FlowRunner flow. It’s the JSON from n8n’s Download: the nodes with their parameters, and the connections between them. Credentials appear only by name and ID, with no secrets, so I’ll connect each account myself. Keep the same behavior. JavaScript Code nodes can become Custom Cloud Code, or a regular block where one does the same job. Tell me about any Python Code node, and any code that loads npm packages, before you build. Before you build, tell me anything you can’t map one to one, and ask me about anything the file doesn’t say.

If the workflow has an AI Agent node or a Send and Wait for Response step, add a second paragraph so the AI builds those the FlowRunner way:

> This workflow has \[an AI Agent node / a Send and Wait for Response step\]. Keep the agent’s prompt and tools, and run it on my own \[provider\] key. Build the approval as a step that reaches \[who\] on \[email / Slack / WhatsApp / phone\] with the details they need and waits for their answer.

Answer its questions, and it builds the flow in your workspace. One workflow per chat keeps the questions specific.

The code is where n8n and FlowRunner differ most, so here is what to expect:

-   **JavaScript Code nodes** become [Custom Cloud Code](https://docs.flowrunner.ai/reference/custom-cloud-code.html): JavaScript with `fetch`, `crypto`, and timers, as a step or as a tool an agent calls.
-   **JavaScript that loads npm packages** becomes a [custom extension](https://docs.flowrunner.ai/extend/index.html): one JavaScript module with its own packages, deployed to your workspace with the FlowRunner CLI. Running `npx flowrunner init-claude` installs Claude Code agents that write and test it with you.
-   **Python Code nodes** get rewritten in JavaScript, which is usually short work for data shaping and formatting. Python you want to keep can stay where it runs as a small service, and the flow calls it with an [HTTP Request](https://docs.flowrunner.ai/reference/http-request.html) block.

## 4\. Finish what the export can’t carry

Each conversion ends with a short list from the AI. Expect some of these:

-   **Connect your accounts.** Each app is connected once in [OAuth Connections](https://docs.flowrunner.ai/platform/oauth-connections.html) and shared across your flows.
-   **Fill in keys.** Put back the API keys you removed from HTTP Request headers. The AI tells you which block each one goes in.
-   **Note the new webhook address.** A workflow that started from an n8n Webhook node now starts from an [External Callback](https://docs.flowrunner.ai/reference/external-callback.html) with its own URL. That URL carries your workspace key, so give it only to the systems that call it. Whatever called the old webhook needs the new URL when you switch over in step 5.
-   **Check workflows that answer their caller.** If the n8n workflow used Respond to Webhook, the FlowRunner flow ends in a Return Result block and is called through the [blocking Call Flow API](https://docs.flowrunner.ai/api/call-flow-blocking.html), which waits up to 300 seconds for the answer. Make that call from a server.
-   **Check the schedule.** A Schedule Trigger becomes the flow’s schedule. Confirm it matches, or set it in the editor toolbar.
-   **Decide who gets asked.** For approvals, confirm the person and the channel. If the approval should be a form (an n8n Form node or Form Trigger), or an AI agent should call a review flow as its tool, the AI tells you, and you add those in the flow editor. FlowRunner Prompt to Flow doesn’t set either one yet.
-   **Start the flow,** if the AI left it stopped.

## 5\. Test, then switch over

Run the FlowRunner flow with the real inputs you saved in step 1, and compare each step’s output with what n8n produced. Every run’s inputs and outputs are in the flow’s run history. When they match, point the webhook callers or the trigger at FlowRunner, watch a few days of runs, and turn off the n8n workflow.

## How n8n maps to FlowRunner

![Migration map from an n8n workflow to a FlowRunner flow: triggers, actions, IF/filter, and switch nodes carry over; the Send and Wait node becomes a Human Review Flow, and code nodes are re-expressed as a Custom Cloud Code block, a custom action, or logic in flows.](https://flowrunner.ai/images/compare/n8n-migration-map.webp)

| n8n | FlowRunner | What changes |
| --- | --- | --- |
| App trigger node | Integration trigger | 2,100+ integrations, each connected once per workspace. |
| Webhook node | [External Callback](https://docs.flowrunner.ai/reference/external-callback.html) | A new URL. The same block can also resume a waiting run. |
| Respond to Webhook | [Return Result](https://docs.flowrunner.ai/reference/return-result.html) | The caller uses the blocking Call Flow API. |
| Schedule Trigger | [Flow schedule](https://docs.flowrunner.ai/reference/flow-scheduling-concept.html) | Set on the flow, not as a node. |
| IF, Filter | [Condition](https://docs.flowrunner.ai/reference/condition.html) | AND and OR groups, shown on the canvas. |
| Switch | [Value Router](https://docs.flowrunner.ai/reference/value-router.html) | Or an [AI Router](https://docs.flowrunner.ai/reference/ai-router.html) when the choice needs judgment. |
| Loop Over Items | [List Iterator](https://docs.flowrunner.ai/reference/list-iterator.html) | Runs the inner steps once per item. |
| Execute Workflow | [Call Flow](https://docs.flowrunner.ai/reference/call-flow.html) | Wait for the result, or let it run on its own. |
| Code node (JavaScript) | [Custom Cloud Code](https://docs.flowrunner.ai/reference/custom-cloud-code.html) | No npm; packages go in a custom extension. |
| Code node (Python) | Rewritten in JavaScript, or a service the flow calls | FlowRunner runs JavaScript. |
| HTTP Request | [HTTP Request](https://docs.flowrunner.ai/reference/http-request.html) | Retry Policy built in; auth goes in a header. |
| Error Trigger workflow | [Handle Error](https://docs.flowrunner.ai/reference/handle-error.html) | A failure path on the blocks it guards, in the same flow. |
| AI Agent node | [AI Agent](https://docs.flowrunner.ai/reference/ai-agent.html) | Tools are actions, flows, MCP servers, and knowledge bases. |
| Send and Wait for Response | A step that asks a person and waits ([human-in-the-loop](https://docs.flowrunner.ai/reference/flows-as-agent-tools-concept.html#putting-a-human-in-the-loop)) | Email, Slack, WhatsApp, phone, or a Form. The agent can call it as a tool. |

## Quick wins on day one

-   **No server to run.** Self-hosters stop patching, backing up, and monitoring an n8n instance. FlowRunner’s plans, Free included, have nothing to host.
-   **Audit trails at a published price.** Audit trails and RBAC start at Professional ($299/month). n8n Cloud signs no BAA and puts audit logs and log streaming in custom-priced Enterprise.
-   **Same unit, lower entry.** Both count one whole run as one execution. FlowRunner Free covers 100 a month, and Starter is $5 (300) or $15 (3,000); n8n Cloud starts at €20 a month.
-   **Approvals that wait.** Human-in-the-loop is on every plan, reaching people on email, Slack, WhatsApp, phone, or a Form. A run waits up to 30 days on Free, Starter, and Growth, and up to a year on Professional and above.
-   **Try it on Professional.** Every new account starts with 14 days of Professional with no card, with unlimited users and every integration, then stays on Free with nothing paused or deleted.

Want a hand with a bigger migration? [Contact us](https://flowrunner.ai/contact).

## Frequently asked questions

### Does FlowRunner import n8n JSON files directly?

There's no importer button. FlowRunner Prompt to Flow does the conversion: you paste the downloaded JSON into your AI tool with the request on this page, and the AI builds the flow in your FlowRunner workspace from the same blocks the flow editor uses. You review what it built, connect your accounts, and test.

### Do my n8n credentials come across?

No. The n8n file names each credential and gives its ID, but the secrets aren't in it. You connect each app once in FlowRunner, and every flow in the workspace can use that connection. Don't paste a credentials export into the chat.

### What happens to my Python Code nodes?

FlowRunner runs JavaScript, not Python. Short Python steps (reshaping data, formatting text, simple math) are usually rewritten in JavaScript as Custom Cloud Code, or replaced by a regular block that does the same job, and the AI does that rewrite as part of the conversion. Python you'd rather keep can run where it runs today as a small service, and the FlowRunner flow calls it with an HTTP Request block.

### Can I convert workflows with an AI Agent node?

Yes. The agent becomes a FlowRunner AI Agent block with the same prompt, running on your own provider key, and its tools become FlowRunner actions or MCP servers. A Send and Wait for Response step becomes an approval that reaches the person on email, Slack, WhatsApp, phone, or a Form and waits for the answer. If you want the agent to decide when to ask, you attach the review flow to the agent as a tool in the flow editor.

### Can I run the n8n workflow and the FlowRunner flow side by side?

Yes, and it's the safest way to switch. Build and test the FlowRunner flow while the n8n workflow keeps running, then move the webhook callers or the trigger over and turn the n8n workflow off once the new runs look right.

## Keep reading

-   [n8n alternative: FlowRunner vs n8n](https://flowrunner.ai/alternatives/n8n)

[All alternatives](https://flowrunner.ai/alternatives)

By [Mark Piller](https://flowrunner.ai/about#mark-piller), Founder of FlowRunner [Editorial policy](https://flowrunner.ai/editorial-policy)

---
Markdown version of https://flowrunner.ai/alternatives/n8n/migrate. Site index: https://flowrunner.ai/llms.txt
