Course Introduction · Designing Flows for Different Tasks
Preview the three Mini Projects, compare their Flow patterns, and learn how Triggers determine when each Flow starts.
This chapter introduces the design concepts you will use throughout the three Mini Projects. There is no Workshop to complete yet.
In the Basic Course, you built straightforward Flows that ran from start to finish. In this course, you will learn how to select a Flow pattern based on the task: different tasks require different Flow designs.
Different tasks require different Flow patterns
The goal of this course is not to memorize every Node. It is to understand how the requirements of a task determine the way a Flow should be organized. Each Mini Project demonstrates a different pattern.
| Mini Project | Task | Flow pattern |
|---|---|---|
| Restricted Area Monitoring | Continuously monitor a video source and respond when a person enters a defined area | Continuous monitoring |
| Machine Status Monitoring | Classify scheduled readings and respond when the status changes | Scheduled status monitoring |
| Conveyor Parcel Processing | Repeat a process while preserving state between video frames | Stateful processing |
Before selecting individual Nodes, identify what starts the task, what data it uses, how often it runs, and whether it needs to preserve state. These requirements will help you choose an appropriate Flow design.
Triggers: where every Flow Path starts
Every Flow Path begins with a Trigger. The Trigger determines when the path starts and what event causes it to run.
The core idea of this chapter
A Trigger is more than a way to separate Flow Paths. It defines when and why each path begins running.
Trigger types in NARA
NARA provides several Trigger types for different tasks.
| Trigger | Starts the Flow when | Suitable for |
|---|---|---|
| Dashboard Trigger | A user starts it from the Dashboard | Manual runs and testing |
| Deploy Trigger | The project is deployed | Initial setup and preparing state when the system starts |
| HTTP Request Polling Trigger | A scheduled poll is sent to an endpoint | Checking an external API periodically |
| MQTT Subscribe Trigger | A message arrives on a Topic | Receiving data from IoT devices |
| Recurring Trigger | A scheduled time is reached | Tasks that run on a recurring schedule |
| Time Interval Trigger | A configured interval elapses | Tasks that repeat at fixed intervals |
| Webhook Trigger | An HTTP request reaches an Endpoint | Receiving events from external systems as they occur |
| WebSocket Server Trigger | A WebSocket client connects or sends a message | Two-way, real-time communication |
Triggers used in this course
The Mini Projects mainly use the Deploy Trigger, Time Interval Trigger, and Dashboard Trigger. This keeps the focus on Flow design while the table above serves as a reference. After completing a project, you can replace its Trigger to explore how a different starting event changes the Flow's behavior.
Core concepts used throughout the course
The three Mini Projects build on the following concepts:
- Flow and Flow Path
- Triggers as the starting point of a Flow Path
- Manual, scheduled, and event-driven execution
- Control Flow and Data Flow
- Input, Process, and Output stages
- Passing data between Nodes
- Separating Flow Paths by responsibility
- Testing each path independently
How a Flow Path works
Regardless of the task, a Flow Path usually follows the same basic structure. It begins with a Trigger, receives or creates data, processes that data, and produces an action or output. It then ends or waits for the next Trigger.
Trigger
│
▼
Receive or Create Data
│
▼
Process and Make a Decision
│
▼
Perform an Action or Produce Output
│
▼
End or Wait for the Next TriggerThe Mini Projects apply this basic structure in different ways, depending on how each task starts, processes data, and preserves state.
Intermediate Course
Build 3 different Flows in NARA: monitor a danger zone with vision, turn a temperature reading into a machine status, and count parcels moving along a conveyor.
Operation · Controlling how a Flow runs
Learn how to process video frames with While Loop and create branching paths with If-Then and Switch Case.