Article Type: Node Reference
Audience: Developers, App Admins
Module: Data Flows / Node Designer
Applies to Versions: Platform 3.0+
Prerequisites: Basic understanding of Data Flow concepts, familiarity with GraphQL
What are Fuuz Platform Nodes?
Fuuz Platform Nodes are specialized nodes that interact directly with core Fuuz platform capabilities. These nodes provide access to the GraphQL API, document generation, email services, calendar functions, and flow orchestration - enabling deep integration with the platform's data and services.
Why are they important?
These nodes eliminate the need for external API calls when working with Fuuz data and services. They provide optimized, secure access to query and modify data models, generate documents, send notifications, and orchestrate complex multi-flow processes.
| Node | Purpose |
|---|---|
| Query | Execute GraphQL queries against Fuuz API (system and custom models) |
| Mutate | Perform CRUD operations (Create, Update, Delete) on Fuuz Data Models |
| Aggregate | Execute MongoDB pipelines for grouping, aggregation, and analytics |
| Saved Query | Execute reusable saved queries with variable inputs |
| Execute Flow | Call deployed flows with Request/Response nodes |
| System Email | Send emails via Amazon SES for alerts, reports, and notifications |
| Render Document | Generate documents from Document Designs (PDF, Word, Excel, HTML) - Depends on the Stimulsoft Module (cloud only) |
| Get Calendar | Retrieve calendar data for event and availability functions - Deprecated functionality |
The Query node gives you access to the Fuuz GraphQL API including custom schema. The node supports both handwritten GraphQL statements as well as a query builder where you can build out what you want the query to return.
You provide the filtering parameters you require into the variables section. For better type hinting, you can use the API explorer to provide auto-completes for the structure of the variables based on your $variable definitions in the query.
| Parameter | Description |
|---|---|
| API | Application or System (select which API to query) |
| Query | GraphQL query statement |
| Variables | Payload to provide filtering parameters to the query |
query Query($where: CalendarWhereInput, $orderBy:
calendar(where: $where, orderBy: $orderBy, first:
edges {
node {
id
}
}
}
}
The Mutate node provides the ability to perform CRUD (Create, Update, Delete) operations on Fuuz Data Models. This includes both System and Application models.
| Parameter | Description |
|---|---|
| Mutation | GraphQL Mutation statement |
| Variables | Payload to provide to the mutation |
Mutation:
mutation upsertCalendar($payload: [UpsertCalendarInput!]!) {
upsertCalendar(payload: $payload) {
id
name
description
}
}Variables:
{
"payload": [
{
"where": { "name": "My Test Calendar" },
"create": {
"name": "My Test Calendar",
"description": "New Calendar"
},
"update": {
"name": "My Test Calendar",
"description": "The Test Calendar"
}
}
]
}The Aggregate node allows you to write MongoDB pipelines against the current tenant's data. This gives the ability to group, unique, and aggregate data.
| Parameter | Description |
|---|---|
| Collection Transform | Dynamic or hard-coded collection name. By default, collections are named the same as the data model with the first character lowercased. |
| Pipeline Transform | MongoDB pipeline stages. This is a transform to allow conditional logic to change your pipeline. |
| Explain Plan | Shows what indexes were used and how the database processed your request. Helpful for optimizing queries on large data sets. |
The Saved Query Node allows you to select a saved query to run and provide the variables required to it. This node is useful if you are copying/pasting the same query in many different places - you only need to edit it in one place and all flows using it will be updated.
| Parameter | Description |
|---|---|
| Saved Query | The query you want to run (select from dropdown) |
| Variables | The filtering parameters/payload for the query |
| Type | Description |
|---|---|
| Query | An operation which retrieves data from the system |
| Mutation | An operation which changes data in the system |
| Subscription | An operation which listens for changes in the system |
The Execute Flow node allows you to call a deployed flow that has Request and Response nodes. The node makes an HTTP POST request to the selected Data Flow. The Data Flow will receive the data you provide in the payload transform at its Request Node.
When the called Data Flow hits its Response Node, the result is returned through the output of this Execute Flow node. If the called Data Flow throws an error, it will be bubbled up to the Execute Flow node that called it.
| Parameter | Description |
|---|---|
| Flow | The flow you are requesting (must have Request/Response nodes) |
| Payload Transform | The data to send as payload to the corresponding Request Node |
There is a need for a common way to format a payload to create a document in the same format. Rather than copying and pasting the same chain of nodes to each data flow, you could create a single flow that formats the data. Other flows can then execute the formatting flow through an Execute Flow node for consistent formatting.
The System Email node utilizes Amazon SES (Simple Email Service) to send emails. This node is useful for automated error emails and reports. Emails are sent from mail@{enterprise_name}.fuuz.app.
| Parameter | Description |
|---|---|
| To | Email address(es) to send to. Can be provided as a transform for lists stored in context. |
| CC | Email address(es) to copy on the email |
| BCC | Email address(es) to blind copy. Useful for QA monitoring without appearing as recipient. |
| Reply To | Email address for replies. Useful for routing customer replies to IT personnel. |
| Subject | Email subject. Be specific so you can identify resources at a glance (e.g., "Purchase Order 1234 failed upload" not "Purchase Order failed upload"). |
| Body | Email body - can be sent as Text or HTML. You can use HTML to create tables instead of attachments. |
| Attachments | Files to send with the email (PDF, CSV, XLS, etc.) |
The Render Document Node is used to generate document designs within a Data Flow. Documents are generally emailed out or written to an FTP after generation.
| Parameter | Description |
|---|---|
| Document Design | The document design template to use |
| Payload Transform | The data to send to the document for rendering |
| File Name | How the document should be named |
| Format | Output format: PDF, Microsoft Word, Plain Text, HTML, Legacy HTML, or Microsoft Excel |
| Culture | Culture code for multilingual documents. Changes formatting of dates, times, words to match the culture. |
The Get Calendar Node allows you to retrieve a calendar formatted for the JSONata bindings to find events within the calendar. This can be done by selecting a static calendar from the Combobox picker or through a transform for dynamic evaluation.
| Parameter | Description |
|---|---|
| Calendar | Selected calendar or dynamic transform referencing the calendar's name |
The calendar data retrieved can be used with the following JSONata bindings:
| Function | Description |
|---|---|
$eventsBetween() |
Get events between two dates |
$getEventEnd() |
Get the end time of an event |
$getEventsAt() |
Get events at a specific time |
$getAvailabilityBetween() |
Get availability windows between two dates |
$availableAt() |
Check availability at a specific time |
$integrate() in transforms is highly discouraged (may be deprecated)| Symptom | Likely Cause | Resolution |
|---|---|---|
| Query returns empty | Incorrect where clause or variables | Test query in API Explorer with same variables |
| Execute Flow timeout | Called flow missing Response node | Ensure all branches terminate with Response node |
| Email attachment corrupted | Wrong encoding selected | Use Base64 for PDFs/images, UTF8 for text files |
| Saved Query broken | Fields removed that flows expect | Review all flows using the query before modifying |
| Document dates wrong format | Culture not specified | Set Culture parameter on Render Document node |
| Context not in called flow | Execute Flow doesn't pass context | Include needed context in payload transform |
| Version | Date | Author | Description |
|---|---|---|---|
| 1.0 | 2025-01-01 | Craig Scott | Initial release - Complete guide covering 8 Fuuz Platform nodes: Query, Mutate, Aggregate, Saved Query, Execute Flow, System Email, Render Document, and Get Calendar. |