Create a Project, Workflow, and HTTP Source Node
In this step you build the structure of your first interface: a project to hold it, a workflow to define the message path, and a Source → HTTP node to receive requests.
You will write the script and start the listener in the next step.
1. Create the project
- Open Projects in the Studio.
- Click the chevron on Add Project and choose New project.
- Name it
Getting Started. A description is optional. - Save.
A project holds workflows, scripts, schemas, project variables, credentials, and libraries.
:::tip Names versus identifiers Linkiir gives every project, workflow, and node a stable internal identifier separate from its display name. Renaming something for clarity later will not break the interface, so pick a readable name now. :::
2. Create the workflow
- Click the
Getting Startedproject card to open it. - On the Workflows tab, click Add Workflow.
- Name it
HTTP Intakeand save.
The workflow is the unit you start and stop. Everything you add next lives inside it.
3. Add the HTTP source node
Click the hammer icon on the workflow row (Open in Builder) to reach the Workflow Builder, then drag HTTP from the Source group of the node palette onto the canvas.
The node palette
The palette groups node types under three headings. This walkthrough uses Source → HTTP.
| Group | Node | What it does |
|---|---|---|
| Source | HTTP | Accepts inbound HTTP requests on a route |
| Source | LLP | Accepts inbound HL7 v2 over MLLP on a listen port |
| Source | File/FTP | Polls a local directory or an FTP/FTPS/SFTP server for files |
| Source | Custom | Runs your script on a timer to generate or fetch messages |
| Transform | Custom | Runs your script on each inbound message |
| Destination | File/FTP | Writes messages to files locally or over FTP/FTPS/SFTP |
| Destination | LLP | Sends HL7 v2 over MLLP to a remote host and handles the ACK |
See Source Nodes and Destination Nodes for the full field reference for each.
:::note Naming in this documentation The palette shows a group heading and a short node name. This documentation writes them together — "Source HTTP", "Destination File/FTP" — so a node type can be named unambiguously in running text. In the Studio you will see HTTP under Source. :::
Configure the node
Open the node's configuration and set:
| Field | Set it to | Notes |
|---|---|---|
| Route Path | /intake | The path this node answers on. Must be unique across the HTTP nodes sharing the server. |
| Worker Count | 1 | How many requests the node handles at the same time. Defaults to 1. |
Name the node Intake and save. Its Lua script, main.lua, is created with the node.
These are the fields the node needs before it will start. The Studio does not mark fields as required — a node with a missing value fails at start with a message naming the field, for example missing required field: Route Path.
:::info There is no port field on the node The HTTP server and its port are configured once for the installation, in Settings → Http Server. Every HTTP source node answers on that one server and is told apart by its Route Path. You set the port in the next step.
That is why Route Path has to be unique: two nodes claiming /intake cannot both answer it.
:::
4. Turn on the HTTP server
The HTTP server is an installation-wide setting, not a per-project one.
- Open Settings and select the Http Server tab.
- Click Edit.
- Turn on Use Server.
- Set Port to
9001. - Save.
Combined with the node's Route Path, your endpoint will be:
http://127.0.0.1:9001/intake
Choosing a port
| Guidance | Reason |
|---|---|
Do not use 8080 | The Studio itself uses it by default |
Do not use 9092 | The bundled message broker uses it |
| Pick a port nothing else on the host holds | The server fails to start if the port is already bound |
Other settings on this tab:
| Setting | What it does |
|---|---|
| Secure | Turns the server into HTTPS, and reveals Certificate Authority File, Certificate, Private Key, and Verify Peer. |
| Serve Files | Serves static files from the directory named in Serve Files Directory. |
Leave Secure off for this local walkthrough. Adding TLS is covered in Security.
5. Confirm the structure
Your project should now look like this:
Getting Started (project)
└─ HTTP Intake (workflow)
└─ Intake (Source HTTP, Route Path /intake, 1 worker)
Settings → Http Server (installation-wide, port 9001)
A single-node workflow is valid and useful for a first test: the node receives a request and replies to it. Adding a Transform or Destination node after it is what makes messages flow onward — see Interfaces and Core Nodes when you are ready to extend this.
Next
Continue with Edit the Script and Start the HTTP Server.
Also worth knowing
The project popout has more than the Workflows tab. You do not need them for this walkthrough, but they are where project-wide settings live:
| Tab | Use it for |
|---|---|
| Variables | Project-level variables available to all workflows in this project |
| Credentials | Project-level credentials, with a Secret flag that masks the value |
| Templates | Reusable node templates, and importing them from another project |
| Libraries | Versioned code bundles shared across the project's nodes |
| Git | Project history, remote configuration, and Export project |
See Project Settings.