Nabrio Help
Nabrio Help

Getting Started

Nara Overview

Understanding Nara

Basic Course
Intermediate Course
Course Introduction · Designing Flows for Different Tasks
Operation
IO · Talking to the outside
Part 1 · Email · Sending mail from a FlowPart 2 · HTTP Connection · Connecting to an external system
Mini Project 1 · Danger Zone MonitoringMini Project 2 · Machine Status MonitoringMini Project 3 · Conveyor Parcel Processing

Using Nara

Components

Widgets

Miscellaneous

Nomenclature
Troubleshooting
Notice and DisclaimerEULA
CoursesIntermediate CourseIO · Talking to the outside

Part 2 · HTTP Connection · Connecting to an external system

Use HTTP Client, HTTP Request Polling Trigger, and HTTP Client Request to retrieve data from an external server and display it on the Dashboard using a Postman Mock Server.

The previous Flows processed data within NARA. In production, a Flow may also need to communicate with a company API, an ERP system, or a machine server. HTTP is a common protocol for these connections.

In this topic, you will build a Flow that sends HTTP Requests at a configured interval and displays the Response on the Dashboard. The Workshop uses a Postman Mock Server, allowing you to test the complete Flow without depending on a production API.

The result is a Dashboard that pulls fresh data every cycle, matching whatever was set up in Postman:

{ "status": "online", "deviceId": "DEV-001", "temperature": 28.5 }

1. How Request–Response and Polling work

Core concept of this topic

The heart of HTTP is the Request–Response cycle: we ask, the server answers, and we repeat it over and over with Polling so we always have the latest data.

Request–Response is the fundamental HTTP communication pattern. The Client sends a request out, the Server processes it and returns a response. The Response contains both a status code (e.g. 200 = success) and a body, which is the actual data, usually in JSON form.

Polling is when the Client keeps sending Requests to ask the Server for data repeatedly on a set interval, so that it always has the latest data. For example, setting it to fire every 1 second gives you updated data every second.

A Mock Server is a simulated server we create so that it returns predefined data. When someone sends a Request in, it returns the data set we prepared. It is very useful for testing when the real API is not ready yet, or when you want to verify that the receiving side (NARA) works correctly.

Here, NARA acts as the Client and the Postman Mock Server acts as the Server.

NARA External GET Request JSON Response HTTP Polling Trigger HTTP Client Request Variable Dashboard Widget Postman Mock Server

2. NARA's HTTP Nodes

The Nodes come in two groups. The first is the core group for connecting over HTTP:

  1. HTTP Client: Create, which holds the shared connection settings
  2. HTTP Request Polling Trigger, which fires Requests repeatedly
  3. HTTP Client: Request, which sends the actual Request and receives the Response

The second group brings the data onto the Dashboard, and is made of Nodes we've already used: Variable: Create and Variable: Modify.

The Flow runs in this order:

OrderNodePurpose
1HTTP Client: CreateDefines the connection settings (Host, HTTPS, Auth)
2HTTP Request Polling TriggerSends a GET Request to the server repeatedly on the set Interval
3HTTP Client: RequestSends the HTTP Request and receives the Response body
4Variable: CreateCreates the variable that holds the received data
5Variable: ModifyUpdates that variable with responseBodyText on every Polling cycle

HTTP Flow Overview

3. Workshop · Setting up the Postman Mock Server

Postman required

This topic needs Postman installed. If you don't have it, download it at postman.com/downloads. Some familiarity with HTTP methods (GET, POST) and the JSON format helps too.

Start by creating a Mock Server. Once created, Postman gives you a link that looks like this:

https://51f83b83-9a30-4aab-a63c-88fa8cfa52db.mock.pstmn.io

This link is very important, because we will use it as the endpoint NARA sends Requests to.

Create Mock Server

Next, set the Request Method to GET and click Save first. Then go to Add Example to define what it should return when someone calls it.

  1. Name the Example Success
  2. In the Response field below, enter the data you want it to return in JSON format:
{
  "status": "online",
  "deviceId": "DEV-001",
  "temperature": 28.5
}
  1. Set the Status code to 200 (meaning success)
  2. Click Save, then click Try to test it

Add Example Success

If configured correctly, you will get a 200 OK status along with the JSON data you entered returned back. That means the Mock Server is ready to use.

Mock Server 200 OK

4. Workshop · Configuring the Nodes on NARA

With the Postman side ready, let's build the NARA side, configuring each Node as follows.

Node 1 · HTTP Client: Create

This is the starting Node that defines the HTTP connection settings. Other Nodes that need to send Requests reference the values from this Node.

ParameterValueDescription
Use HTTPSOFFThis exercise uses plain HTTP only, not HTTPS yet
Host51f83b83-9a30-4aab-a63c-88fa8cfa52db.mock.pstmn.ioThe server's domain name, bare domain only
Authorization TypeNoneNo authentication needed since it's a general Mock Server
Common HeadersemptyAdd Headers shared across all Requests here
Client FrameworkFallback OnlyUse Fallback for compatibility with servers sensitive to headers

HTTP Client Create Node

Note

· In the Host field, enter only the bare domain name, e.g. api.example.com, and do not add https:// in front, because HTTPS is toggled on/off in the Use HTTPS field instead.

· This Node's Output Schema only has root > common (object); it has no response data directly.

Node 2 · HTTP Request Polling Trigger

This is a Trigger Node that keeps firing Requests to the endpoint on a set interval (Polling Interval). When it gets a Response back, it passes control to the next Node.

ParameterValueDescription
Setup ToolHTTP Client: Create 1References the Node where the Host was configured
MethodGETThe method for retrieving data
Path/api/devices/statusThe endpoint path on the server
ParamsemptyQuery parameters (if any)
Body typeNoneA GET Request has no body
Polling Interval (ms)as desiredHow often to fire, e.g. 1000 = every 1 second

HTTP Polling Trigger Node

Key data this Node returns (Output Schema):

  • isPending boolean: true = waiting for a Response, false = Response received
  • responseHttpStatus integer: the status code, e.g. 200, 404, 504
  • responseHeaders array: the Headers returned from the server
  • responseBodyText string: the entire Response body as a string. This is what we will display

Node 3 · HTTP Client: Request

This Action Node sends one Request each time it is called. It works with the Polling Trigger, but the two have different roles. The Polling Trigger starts the Flow at each interval. HTTP Client: Request performs the request and passes the Response to downstream Nodes.

ParameterValueDescription
Setup ToolHTTP Client: Create 1References the same Node as the Trigger
MethodGETThe method for retrieving data
Path/api/devices/statusThe same Path as the Trigger
ParamsemptyQuery parameters
Body typeNoneNo body

HTTP Client Request Node

The Output is identical to the Polling Trigger in every respect, including responseBodyText, which we will use next in Variable: Modify.

Node 4 · Variable: Create

Creates a variable to store the data from the HTTP Response. This variable will later be referenced by the Dashboard Widget for display.

ParameterValueDescription
Variable NameVariable: SuccessThe variable name, for referencing elsewhere
Variable ValueConnecting.....The initial value before real data arrives
TypeStringThe data type (responseBodyText is a String)

Variable Create Node

Note

This Node must be created before Variable: Modify, and only needs to be created once, so there is no need to recreate it on every Polling cycle.

Node 5 · Variable: Modify

Updates the variable's value with the new data from HTTP Client: Request every time the Polling Trigger fires.

ParameterValueDescription
Variable SourceVariable: SuccessSelect the variable created in Node 4
Variable ValueresponseBodyText from HTTP Client: Request 2The value pulled in to update on each cycle

Variable Modify Node

How to set the Variable Value:

  1. Click Insert Template in the Variable Value field
  2. Select HTTP Client: Request 2 from the list
  3. Select responseBodyText string
  4. Click Apply

Insert Template responseBodyText

5. Workshop · Connecting the Nodes

Once every Node is configured, wire them together on the Canvas in this order:

  1. HTTP Request Polling Trigger → HTTP Client: Request: the Trigger starts the Flow on each Polling cycle and passes control to the Request Node.
  2. HTTP Client: Request → Variable: Modify: the fetched Response is passed on so its value can be written into the variable.

Variable: Create and HTTP Client: Create are setup Nodes that are not wired into this main line. Variable: Create runs once to declare the variable, and HTTP Client: Create is referenced by the other Nodes through the Setup Tool field rather than connected with a wire.

The reason Variable: Create and Variable: Modify are separated is that Create declares the variable just once, while Modify overwrites it with a new value on every Polling cycle, which keeps the data on the Dashboard continuously updated.

6. Workshop · The Dashboard side

  1. Create a Basic Display Widget
  2. Set the Data Source to Variable: Success
  3. Go back to the Flow page and click Deploy

Dashboard Widget Setting

7. Trying it out

After deploying, while waiting for the first Polling cycle (based on the Interval, e.g. 1000 ms), the screen shows Connecting...... Once Polling succeeds, it pulls new data to display every 1 second, and the data shown matches what was set in Postman.

Dashboard Connecting

Dashboard Result

Try editing a value in the Mock Server too, such as changing temperature, and see whether the data on the Dashboard updates on the next Polling cycle. Or try changing the Status code to 404 to observe the behaviour when a Request is unsuccessful.

If the result isn't what you expected, work through these:

SymptomLikely cause
Dashboard stuck at Connecting..... with no dataThe Host in HTTP Client: Create has https:// in front, or Use HTTPS doesn't match the Mock Server link
A Response arrives but nothing shows on the WidgetVariable: Modify isn't referencing responseBodyText, or the Widget isn't pointed at Variable: Success
responseHttpStatus isn't 200The Path doesn't match the endpoint on the Mock Server, or the Postman Example's Status code isn't 200
The data never updatesThe Polling Interval is set too long, or the Nodes aren't wired in the right order

8. Challenges

Challenge 1: Create another endpoint on the Mock Server, such as /api/devices/list, and configure it to return a list of devices. Then update the Flow to request data from this new endpoint and display the result in an additional Dashboard Widget.

Challenge 2 (POST): Create a POST endpoint on the Mock Server, such as /api/devices/command, that accepts data in a JSON body. Then update the Flow to send a request to this endpoint using the POST method. Set the Body type to JSON and use a sample payload such as:

{
  "deviceId": "DEV-001",
  "action": "restart"
}

After sending the request, check the Response returned by the Mock Server. This challenge introduces the process of sending data from a Client to a Server, which differs from the GET pattern used in the main workshop, where the Flow only requests data.

Once you understand this process, you can apply the same approach to real APIs and other external services. You only need to adjust the Host, Path, Method, and Authentication settings to match the target server.

Ready to go

That's the groundwork covered. Head to Mini Project 1 · Danger Zone Monitoring to build your first Flow, watching a danger area with video.

Part 1 · Email · Sending mail from a Flow

Get an App Password from Google, then configure Email Initialise and Email Send to send notification mail out of a Flow.

Mini Project 1 · Danger Zone Monitoring

Practice building a Flow that reads video, detects people with a pre-trained model, counts how many are standing inside a defined zone, and raises an alert when someone walks into the danger area.

On this page

1. How Request–Response and Polling work2. NARA's HTTP Nodes3. Workshop · Setting up the Postman Mock Server4. Workshop · Configuring the Nodes on NARA5. Workshop · Connecting the Nodes6. Workshop · The Dashboard side7. Trying it out8. Challenges