Skip to main content

Interfaces and Core Nodes

A workflow is built from three kinds of node.

Source → Transform → Destination

The node palette

In the Workflow Builder, the palette groups node types under three headings. Drag one onto the canvas to add it.

GroupNodeTriggered byScript
SourceHTTPAn inbound HTTP request on a routeRequired
SourceLLPAn inbound HL7 v2 message over MLLPOnly for a custom ACK
SourceFile/FTPA timer, polling a directory or FTP/FTPS/SFTP serverNot used
SourceCustomA timerRequired
TransformCustomAn inbound message from an upstream nodeRequired
DestinationFile/FTPAn inbound message from an upstream nodeNot used
DestinationLLPAn inbound message from an upstream nodeNot used

Transport nodes are configured with fields, not code. You write Lua only where the work is genuinely yours: HTTP handling, transformation, and generated or fetched messages.

How this documentation names nodes

The palette shows a group heading and a short name. In running text, naming a node type needs both, so this documentation writes them together — "Source HTTP", "Destination File/FTP". In the Grid you will see HTTP under Source.

Your project's own node templates appear in the same palette, under the group matching their type. Prebuilt adapters arrive as templates too, so an Epic or S3 node is added the same way as any other and configured with fields.

Finding things in the palette

ControlWhat it does
SearchFilters the palette by node name
All / Project / Catalog tabsNarrows to built-in nodes, this project's own templates, or adapters from a subscribed catalog
Catalog filterOn the Catalog tab, shows or hides individual catalogs when several are subscribed
Drag the palette's edgeResizes it, for adapter names too long to read at the default width
Destination Custom

The palette also offers Custom under Destination. It has no runtime implementation in this release — a workflow containing one will not run it. Use Transform Custom for script-driven delivery instead: a transform node that calls out and never pushes is a destination in every practical sense. See Custom Scripting Nodes.

Choosing a source

You need to receiveUse
HL7 v2 over an MLLP socketSource LLP
An HTTP or REST callSource HTTP
Files from a directorySource File/FTP
Files from an FTP, FTPS, or SFTP serverSource File/FTP with Use FTP enabled
Data you fetch or generate yourself on a scheduleSource Custom

Choosing a destination

You need to deliverUse
HL7 v2 over MLLP, with ACK handlingDestination LLP
Files to a directoryDestination File/FTP
Files to an FTP, FTPS, or SFTP serverDestination File/FTP with Upload to FTP enabled
An outbound HTTP callTransform Custom, calling linkiir.link.web.post
EmailTransform Custom, calling linkiir.link.mail.send
A database writeTransform Custom, calling linkiir.store

The last three are transform nodes rather than dedicated destination types: you make the outbound call from a script. See Linkiir Scripting API.

The Node Parameters panel

Click a node on the canvas to open Node Parameters on the right. Everything about the node lives there — there is no separate node details dialog.

In the panelHolds
TitleThe node's name, editable in place
DescriptionFree text describing what the node does
Debug LoggingPer-node switch for verbose logging
Run From CommitWhich commit of the node's files the Runtime executes
Configuration fieldsThe node type's own fields, plus any you added

The panel is read-only until you click Edit in its header, and Save writes the name, description, debug logging, and configuration fields together. The permissions behind them are separate: changing a field's value needs Edit config values, adding or redefining a field needs Edit config fields, and the name, description, and debug logging need Edit node details. A refused save says which permission it wanted rather than failing quietly. See Users and Roles.

Run From Commit is the exception: it saves the moment you pick a commit, because pinning reloads the node in the Runtime. Choosing the newest commit means "follow the latest" — the node keeps picking up new commits instead of freezing on that one. Pinning needs the Set run commit permission.

Required fields and when they are checked

Node configuration forms do not mark fields as required, and they let you save an incomplete node. Validation happens when the node starts: a missing or invalid value stops the start and names the field.

missing required field: Route Path
invalid required field: Interval (must be > 0)
missing required field: FTP Server (required when Use FTP is enabled)

The reference pages below mark the fields each node type needs to start. Everything else has a working default.

This is why Run Test followed by starting a single node is the right order when building: the test catches script errors, the start catches configuration errors.

Fields you can add yourself

Beyond the fields a node type defines, you can add your own to a node's configuration and read them from your script. Useful for values you want configurable without editing code.

Nodes created from a Linkiir-supplied template have their built-in fields locked: you can change a value, but not a label, type, or option list, and you cannot remove one. Fields you add yourself remain fully editable.

Editing the canvas

Adding, moving, connecting, and deleting all happen in the Workflow Builder's Edit mode. Outside it the canvas is read-only, though you can still select a node to read its parameters and open its script.

Right-click a node for:

ItemAvailable
Create templateAlways
Edit scriptAlways, except on File/FTP nodes, which have no script
Remove upstream connectionEdit mode
Remove downstream connectionEdit mode, and not on a destination node
Delete nodeEdit mode

Right-click a connection, in edit mode, for Delete connection — that one line only, rather than everything running into or out of a node.

Each of these asks before it acts, naming what it is about to change: the node by name, or the two nodes a connection joins. Canvas changes stay local until you click Save; Cancel restores the canvas as it was when you entered edit mode.

The breadcrumb above the canvas switches project and workflow, and creates them too: the project dropdown offers New project and the workflow dropdown New workflow, each taking a name and description and opening what it creates.

Reference pages

Conditional fields

Many fields appear only once the setting they depend on is enabled. The FTP fields on a File/FTP node appear after you turn Use FTP on; the TLS fields appear after Use SSL. If a field in these pages is not visible, check the setting it depends on.