Skip to content

For n8n Users

Flow-Like and n8n both use connected workflow graphs, but their data, configuration, and execution models are different. Flow-Like includes a clipboard importer for n8n workflow JSON; use it as a migration starting point, then validate every imported node and boundary.

  1. Export the workflow as JSON from n8n.
  2. Create or open the destination Flow in Flow-Like Studio.
  3. Copy the complete exported JSON.
  4. Place the pointer on an empty area of the Flow canvas and paste.
  5. Review the imported nodes, layers, variables, defaults, and connections.

The importer recognizes the n8n nodes and connections structure. It places the translated graph at the paste location and uses the current Flow-Like node catalog when a mapping exists.

The current repository includes mappings for selected workflow primitives, integrations, and model nodes.

n8n sourceImported Flow-Like shapeRequired review
Manual, schedule, webhook, and chat triggersEvent-node candidatesCreate the matching App Event and verify its payload
HTTP RequestLayer containing request construction, API Call, and response conversionHeaders, authentication, body, response field, and error behavior
IFBranchRebuild the source condition from typed values
SwitchBranchMulti-way routing must be rebuilt with additional branches
Split In BatchesFor EachBatch size, loop completion, and retry behavior
SetSet FieldField paths, types, and retained input fields
WaitDelayUnit, duration, and resume expectations
Merge or No OpSequence-style placeholderOrdering and actual merge semantics
CodePython Interpreter-style nodeConvert JavaScript manually and review its permissions
GmailSMTP connection and send layerHost, port, message fields, and credentials
Google Sheets, Discord, and TelegramCatalog mapping where availableOperation-specific inputs and authorization
Selected chat-model nodesModel-builder mapping where availableModel selection and credentials

Unsupported node types become named TODO layers with placeholder nodes. Do not delete those markers until the missing behavior has been rebuilt or intentionally removed.

Sticky notes become Flow comments. Disabled n8n nodes are skipped.

n8n credential references do not contain the secret value, and the importer does not attempt to fetch it. For each imported credential reference it creates a secret Flow variable and, when possible, wires a Get Variable node to a matching authentication pin.

After import:

  1. inspect every generated credential variable;
  2. rename it if several credentials need clearer identities;
  3. enable Runtime Configured;
  4. set the value through the App’s Runtime Variables screen;
  5. confirm that no token or password remains in an ordinary node default;
  6. configure the value independently on every machine or environment that will execute the Flow.
n8n conceptFlow-Like concept
WorkflowFlow
Project boundaryApp
NodeNode
ConnectionExecution or data wire
Trigger nodeEvent node plus an App Event
ExecutionRun
JSON itemTyped value, often a Struct
List of itemsTyped Array
ExpressionExplicit data-access, transform, and math nodes
CredentialSecret, runtime-configured variable
Sub-workflowFlow function, Layer, or separately invoked Flow
Sticky noteComment

The important difference is data flow. n8n commonly passes JSON items through a node. Flow-Like pins carry declared types, and a node receives only the values wired to its inputs.

n8n expressions can combine lookup and transformation in one field:

{{ $json.customer.name }}
{{ $json.items[0].price * $json.items[0].quantity }}

In Flow-Like, keep those steps explicit:

Expression stepCurrent node
Read customer.name or items[0].priceGet Field, which supports dot notation and array access
Multiply numeric valuesTyped Math node
Insert values into textRender Template or Format String
Parse JSON with a known shapeParse JSON with Schema

This adds nodes, but it also makes type mismatches and data dependencies visible before the Flow reaches an external side effect.

n8n’s item propagation does not translate to implicit repeated execution. When a Flow-Like node returns an Array, choose the intended collection behavior:

IntentFlow-Like node
Process each item in orderFor Each
Stop earlyFor Each (Break)
Process items concurrentlyParallel For Each
Retrieve an item by indexGet Element
Add an itemPush
Query tabular dataDataFusion SQL rather than a graph-sized loop

Check empty arrays, ordering, duplicate handling, and concurrency limits explicitly.

An imported trigger node is only the entry point inside the Flow. Configure an App Event to invoke it.

Desired entryFlow node and Event configuration
User-initiated actionSimple Event node with a Quick Action
ScheduleSimple Event node with a cron Event
HTTP endpointSimple or Generic Event node with an API Event, depending on the required payload
Built-in chatChat Event node with a Chat UI Event
Local deep linkCompatible event node with a deeplink Event
Long-running local processSimple Event node with a daemon Event

Event availability depends on local versus remote execution. API and cron Events can be configured for supported local or remote execution; deep links and daemon Events are local, while REST and MCP server Events are remote. See Offline versus online before choosing the location.

Do not assume an n8n Execute Workflow node imported successfully. For reusable logic inside one Flow, define a typed Flow function and call it with Call Function. Use a Layer when the main goal is to collapse and name a graph section.

When a separately deployed Flow is the correct boundary, give it its own event contract and invoke that contract deliberately. Preserve correlation IDs, timeouts, authorization, and failure handling across the boundary.

Suppose the source receives an order, enriches it through an API, branches on the result, and sends a notification. Rebuild and verify it in this order:

StageMigration action
EntryUse a Generic or Simple Event node and define the expected payload
ExposureConfigure an API Event with the required method and path
ValidationParse or constrain the incoming Struct before using its fields
EnrichmentBuild the request, perform the API Call, and validate status and response
DecisionFeed an explicit Boolean condition into Branch
NotificationUse a catalog integration or a narrowly configured HTTP call
FailureReturn or log a clear failure without implying the notification succeeded

Use a test endpoint until both the success and failure paths match the source. If the notification is not safe to repeat, add an idempotency check before retrying.

  • Every TODO layer is resolved or intentionally removed
  • Every imported warning or review comment is addressed
  • Trigger nodes have matching App Events
  • Event payloads and response behavior are defined
  • Credentials are runtime configured
  • JavaScript Code nodes are manually converted and reviewed
  • Arrays, loops, ordering, and empty-input behavior are tested
  • External writes are idempotent or protected from duplicate runs
  • Local-only nodes use a compatible execution mode
  • A verified Flow version is pinned before production use