The HTTP Node enables external systems to send data into Rayven workflows using an HTTP POST request. It supports multiple payload formats and optional authentication, with flexible handling of arrays, timestamps, and UID mapping.
What It Does
This node exposes a predefined HTTP endpoint that accepts inbound data. It is used to integrate devices, third-party systems, or external applications that can post data in JSON, XML, CSV, or compressed bulk formats. Upon receiving a valid payload, the node parses it and emits it into the Rayven workflow.
Step-by-Step: How to Configure the HTTP Node
-
Add the node
-
Drag the HTTP Node from the Inputs panel to your canvas.
-
-
Configure endpoint and payload handling
-
Double-click the node to open the configuration window and complete required fields.
-
-
Activate the node
-
Click the Activate button and then click Save. The node is now listening for incoming data.
-
-
Send a
POST
request to the node URL-
Transmit data to the provided URL using your device or application.
-
Configuration Fields
Section: General
Field | Requirement | Description |
---|---|---|
Node Name* | Required | Unique name to identify the node in your workflow. |
URL | Auto-filled | This is the endpoint for incoming HTTP POST requests. Format:https://my.rayven.io:8082/api/main?uid=xxxxx&deviceid=[[device_id]] Replace [[device_id]] with the actual device ID configured in Rayven. |
Password | Optional | Enables basic password authentication. Minimum 8 characters, with at least one uppercase, one lowercase, and one special character. |
Payload Format* | Required | Format of incoming data. Options: - JSON - XML - CSV - JSON Array - Bulk Compressed XML ZIP - Bulk Compressed CSV - GET Query Strings |
Section: Advanced Features
These options allow for timestamp alignment and parsing nested JSON arrays.
Field | Requirement | Description |
---|---|---|
Location of Child Array | Optional | For JSON Array payloads, specify the path to the array (e.g., data.readings ). |
Timestamp JSON Key | Optional | Field in the payload that contains the timestamp value. |
Timestamp Format | Optional | Format of the timestamp (e.g., yyyy-MM-dd HH:mm:ss , EPOCH , EPOCHMS ).Use HH for 24-hour clock. |
Time Zone | Optional | Select the time zone used by the device sending the data (e.g., UTC, UID time zone). |
Output Behavior
Each received record is parsed and emitted as a Rayven JSON payload. If a child array is defined, each element in the array becomes a separate emitted message.
Example Input:
{
"device_id": "pump-001",
"data": [
{ "temperature": 24.5, "timestamp": "2025-07-15 10:00:00" },
{ "temperature": 24.8, "timestamp": "2025-07-15 10:05:00" }
]
}
With:
-
Location of Child Array = data
-
Timestamp JSON Key = timestamp
-
Timestamp Format = yyyy-MM-dd HH:mm:ss
Output:
{
"uid": "pump-001",
"temperature": 24.5,
"timestamp": "2025-07-15T10:00:00Z"
}
And a second payload for the next item.
Security
-
If a password is configured, external devices must use Basic Auth.
-
If
[[device_id]]
is part of the URL, it must match the UID configured in Device Management.
Best Practices
-
Use consistent timestamp formats and time zones across devices.
-
Enable password protection for public-facing URLs.
-
Use JSON Array with Child Array location if sending batches of data.
-
Validate device IDs to match Rayven UIDs for proper routing.
Use Cases
-
Ingest real-time telemetry from external microservices
-
Receive alert data from third-party systems
-
Capture batched sensor readings in compressed or array formats
-
Stream webhook content from partner platforms into the workflow
FAQ
Q: Can this node accept HTTP GET requests?
A: Only GET Query Strings
payload format supports GET
requests. All others require POST
.
Q: Does the node provide a response?
A: Yes. It returns standard HTTP response codes (e.g., 200 OK, 400 Bad Request) and may return minimal feedback (e.g., "Payload received").
Q: What happens if the payload format doesn’t match?
A: The request is rejected and not processed. Ensure format, keys, and structure match what is configured.