Article Type: Reference Audience: Developers, App Admins, Solution Architects Module: Data Flows / Data Ops Applies to Versions: All
The Fuuz Industrial Operations Platform provides a comprehensive visual flow designer with 50+ specialized nodes enabling sophisticated business logic, data transformations, integrations, and device interactions without extensive coding. These nodes build Data Flows (backend processing), Web Flows (screen-side UI logic), and Edge Flows (gateway-based device interactions).
Nodes reduce manual pro-coding through visual drag-and-drop configuration. Fuuz engineering uses these same nodes for commercial solutions, ensuring ultimate flexibility. Primary languages are JSONata (data transformations) and JavaScript (complex logic), with external integration via Open API, AWS Lambda, Python notebooks, and HTTP connectors.
Note: Data Ops Paradigm: Fuuz implements complete iPaaS for ETL and data contextualization on sedentary data (databases, files) and data in motion (real-time edge streams, API calls, events).
Fuuz supports three distinct execution contexts:
| Flow Type | Execution Context | Categories | Primary Use Cases |
|---|---|---|---|
| Backend Flows | Server-side/Cloud | System, Integration, Document | Data processing, API integration, scheduled jobs, document generation |
| Edge Flows | Edge Gateway (customer device) | IIoT, Device Integration | Real-time device data, PLC communication, printer control |
| Web Flows | Screen-side (browser) | UI Logic, Validation | Complex HMI workflows, form validation, CFR Part 11 signoffs |
Flow execution is triggered by nodes included in the flow. A single flow can contain multiple triggers:
Important: Critical Distinction: Request-Response triggers do NOT fire during data import. Data Change Source subscriptions DO fire on imports. Use Data Change Source for automated processing regardless of entry method.
Fuuz flows can integrate with external code via HTTP connectors:
Note: Concurrent Execution: The
degreeOfParallelismsetting controls concurrent executions.returnErrorsincludes external system errors in flow output.
Nodes are located in the Toolbox, grouped by function. Each node shares common structural elements:
| Component | Location | Function |
|---|---|---|
| Input Port | Left side | Receives payload from previous node |
| Output Port | Right side | Sends processed data to next node(s) |
| Node Name | Header | User-editable label (defaults to node type) |
| Node Type | Subtitle | Read-only identifier of functionality |
| Grab Handle | Appears on hover | Drag to reposition node |
Workflow: Drag nodes from Toolbox → Connect ports → Configure properties → Test with Source/Log nodes. Use Ctrl+S to save, Ctrl+C/Ctrl+V to copy/paste. The Node Editor panel is resizable for better workspace management.
This section documents all node types organized by category. Each entry includes purpose, configuration, flow type compatibility, and use cases.
These nodes initiate flow execution and provide initial payload for processing.
| Node | Purpose & Configuration | Use Cases |
|---|---|---|
| Source | Manual trigger for testing. Click "Execute" to run flow with test data. No configuration required. | Development, debugging, proof-of-concept |
| Request | Synchronous request-response trigger. Must pair with Response node. Does NOT fire on import. | API endpoints, screen button actions, calculated fields |
| Response | Returns processed data to caller. Terminates flow. Optional output transform. | Completing API flows, returning screen action results |
| Webhook | Receives HTTP POST from external systems. Generates unique URL for incoming webhooks. | Third-party integrations, payment callbacks, event notifications |
| Data Change Source | Subscribes to database changes. DOES fire on import. Select collection and operation type (insert, update, delete). | Automated processing, audit trails, downstream notifications |
| File Source | Triggers when files appear in monitored folders. Configure via gateway folder monitoring. | File imports, batch processing, automated uploads |
| Device Subscription | Subscribes to device data streams. Select device and data tags. Edge flows only. | Real-time PLC monitoring, sensor alerts, production tracking |
| Topic | Subscribes to pub/sub messaging topics. Specify topic name. | Event-driven architecture, microservices communication |
Transform nodes convert data between formats and manipulate arrays/objects. All support Input/Output transforms via Advanced Configuration.
| Node | Purpose & Configuration | Key Options |
|---|---|---|
| JSON to CSV | Converts JSON array to comma-separated values string. | Field delimiter, field wrap, end of line, prependHeader, keys, expandArrayObjects, unwindArrays |
| CSV to JSON | Parses CSV string into JSON array of objects. | Field delimiter, quote character, escape character, headers, skipEmptyLines |
| JSON to XML | Converts JSON to XML format string. | Root element name, attribute handling, CDATA support |
| XML to JSON | Parses XML string into JSON object. | Attribute prefix, text node name, preserve ordering |
| Unique Array | Removes duplicate items from array based on specified field. | Unique field selector (JSONata), preserve first or last occurrence |
| Filter Array | Filters array items based on condition expression. | Filter expression (JSONata), returns items where condition is true |
| Group Array | Groups array items by specified field(s). | Group by field(s), aggregation functions (sum, count, avg, min, max) |
Note: Transform Terminology: An Input Transform reformats payload/context before node execution. An Output Transform runs after processing, with access to the original input via the
$$binding.
Control flow execution paths, parallel processing, timing, and sub-flow invocation.
Execute custom logic using JSONata or JavaScript:
$, context via $$. Supports the custom Fuuz functions library.msg.payload and context. Use for complex logic, loops, async operations.Core platform operations:
Note: No Specialized Knowledge Required: Query and Mutate nodes provide visual interfaces. Developers don't need GraphQL, MongoDB, React, RabbitMQ, Stimulsoft, or Oracle expertise.
Pre-built connectors for enterprise systems:
Important: returnErrors Configuration: Enable
returnErrorson integration nodes to include external system error details in output rather than failing silently.
Edge-side device integration (Edge Flows only):
Set Context, Merge Context, Remove From Context — manage flow-level stateValidate node enforces data quality and business rules (critical for CFR Part 11 compliance)Log (write to platform logs), Echo (display in designer console), Preview File (download generated files)Send Notification (publish to channel), Receive Notification (trigger on receipt)| Issue | Cause | Resolution |
|---|---|---|
| Flow not triggering on data import | Using Request/Response trigger | Use Data Change Source node which DOES fire on import |
| Integration node failing silently | returnErrors not enabled |
Enable returnErrors config, add Log node after integration |
| Transform unexpected results | JSONata syntax error or incorrect data access | Add Echo node to inspect payload, use $ for payload, $$ for context |
| Data Mapping validation errors | Input or output doesn't match schema | Use Try/Catch around Data Mapping node, check both schemas |
| Concurrent execution issues | Multiple instances running simultaneously | Adjust degreeOfParallelism OR use Mutex Lock/Unlock |
| Gateway device timeout | Default 60s timeout exceeded | Increase Function Timeout parameter on IIoT nodes |
Note: Debug Configuration: Enable
breakpointEnabled,executionMetrics,executionStarted/Succeeded/Failedlogging, andenableTraceLoggingon nodes during development.
degreeOfParallelism appropriately for high-volume flowsImportant: Golden Rule: Always use Data Change Source (not Request/Response) for automated processing that must trigger regardless of data entry method (manual input, import, API).
| Component | Details |
|---|---|
| Database | MongoDB with proprietary ORM layer, accessed via GraphQL API |
| Gateway | Drivers for PLCs, databases, printers, folder monitoring. Edge flow execution environment. |
| Messaging | RabbitMQ for pub/sub topics, Queue nodes, event-driven architecture |
| Document Engine | Stimulsoft for PDF/report generation, custom templates |
| UI Framework | React-based with FusionCharts, Font Awesome. Web flows execute client-side. |
A Data Flow is the object containing nodes. Data Ops is the paradigm describing ETL and data contextualization on sedentary data (databases, files) and data in motion (real-time edge streams, API calls, events).
breakpointEnabled: Pause execution at node for debuggingexecutionMetrics: Track execution time and performanceexecutionStarted/Succeeded/Failed: Log execution lifecycle eventsenableTraceLogging: Detailed execution trace for troubleshootingdegreeOfParallelism: Number of concurrent flow executions supportedreturnErrors: Include external system errors in output vs failing silently (integration nodes)Note: No Specialized Knowledge Required: App designers don't need specialized knowledge of GraphQL, MongoDB, React, RabbitMQ, Stimulsoft, FusionCharts, Font Awesome, Oracle, or other underlying libraries to build applications.