Migrate from Node-RED to Heym
Move Node-RED flows to Heym. Paste an exported flow JSON, watch AI Convert rebuild each node on a live canvas, then run it on your own infrastructure.
Node-RED describes itself as a flow-based programming tool where nodes are wired on a canvas and pass messages to one another, widely used for event-driven and device integration work.
When it is worth moving a workflow
Node-RED already thinks in graphs, so the move is rarely about the shape of the work. It is about what the graph now has to contain: an agent that chooses tools, retrieval over internal documents, a reviewer in the middle, and a record of what each model call cost. Those arrive as first-class nodes here rather than as function nodes calling an API.
If you are still deciding rather than moving, the Heym and Node-RED comparison covers the evaluation side with links to first-party documentation.
How the move works
- 1
Export from Node-RED
Select the flow in the Node-RED editor, use Export from the menu to copy the flow JSON, and paste it.
- 2
Paste it into AI Convert
A safety check runs, then each construct is mapped to the closest native Heym node and streamed onto a live canvas while you watch.
- 3
Review, download, and import
Read the rebuilt workflow, download or copy it, import it into your own instance, and attach your credentials.
What each Node-RED concept becomes
A reviewer's guide to the rebuilt workflow. Constructs without an exact equivalent are mapped to the closest Heym primitive, which is why the result is worth reading before it handles real traffic.
| In Node-RED | In Heym | What changes |
|---|---|---|
| Flow (a tab) | Workflow | One tab becomes one workflow, and the wires become canvas edges. |
| Inject node | Input node or Cron node | A manual inject becomes the Input node; a repeating inject becomes a cron expression. |
| HTTP In and HTTP Response | Workflow webhook trigger and Output node | The request entry point becomes a property of the workflow rather than a node, so the URL is new. |
| Function node | Code node | Function nodes are JavaScript; the Heym Code node runs sandboxed Python, so these are rewritten rather than copied. |
| Switch node | Switch node | Rule-based routing carries over, with each rule becoming a labelled outgoing edge. |
| Change node | Set node | Setting, moving, and deleting message properties becomes field assignment with expressions. |
| Template node | Set node with expressions | String templating becomes an expression in a field rather than a separate node. |
| Subflow | Execute node | A subflow becomes a sub-workflow, which an agent can also invoke as a tool. |
| Link in and Link out | Canvas edges and the Execute node | Jumps within a flow become direct edges; jumps across flows become sub-workflow calls. |
| Catch and Status nodes | Error Handler node | Error routing becomes a branch you wire, with a workflow-level error workflow catching anything without one. |
| Flow and global context | Variable node | Values that outlive a single node become variables scoped to the run or persisted globally. |
| msg.payload references | Expression DSL, for example $nodeName.field | A single travelling message becomes named node outputs, which is the biggest conceptual change in this move. |
Check these before it goes live
- Rethink anything that relied on one msg object travelling through the flow. Heym addresses each node output by name instead.
- Read every converted function node. JavaScript became Python, and this is where behavior differences hide.
- Update the HTTP endpoint URL anywhere a device or service posts into the flow.
- Confirm context values landed as variables with the right scope.
- Run one test execution and compare the output against a recent run on the source side.
Node-RED migration FAQ
Can AI Convert read a Node-RED flow export?
Yes. Paste the exported flow JSON into AI Convert. Node-RED translates well because both tools are graphs of wired nodes rather than linear step lists.
What replaces the msg object?
Named node outputs. Instead of one message mutating as it travels, each node produces an output you reference by node name, for example $httpNode.body. It is the main thing to re-read after a conversion, because a flow that repeatedly overwrote msg.payload becomes several distinct references.
Do my credentials come across?
No, and that is deliberate. Exported workflow files hold no API keys or secrets, so AI Convert rebuilds the structure only and you attach your own credentials in the Heym Credentials tab afterwards. Nothing copies a secret between two systems on your behalf.
Is the converted workflow ready to run?
Treat it as a reviewed starting point rather than a finished port. Open it on the canvas, attach credentials, run one test execution, and adjust any node that was mapped to the closest Heym primitive rather than an exact equivalent.
Can I run the result on my own infrastructure?
Yes. Heym is source-available under an MIT license with a Commons Clause and runs on your own servers with Docker or Kubernetes, so migrated workflows, their credentials, and their model calls stay inside your environment.
Moving from something else
AI Convert reads exports from 12 tools, and it also accepts a plain description of the automation when there is no file to export.