Reference - Nodes
Nodes are the basic unit that compose a workflow in Cargo. All nodes, except the start node, is able to serve two functions, i.e. to capture data and to perform an operation.
To configure a node's operation, users can pass data and logic as the input and the node will return an output. The output can be used as input for subsequent nodes in the workflow. The reference below lists all the different types of Nodes that can be used in Cargo workflows.
Node Categories
Cargo's workflow editor offer over 120 different nodes that are grouped into four main categories.
- Name
Logic Nodes
- Description
General workflow logic nodes such as "If", "Branch" or "Group Node". These nodes are building blocks for creating complex workflows mimicking oft-used programming constructs like loops, conditions, and branches.
- Name
Sales Nodes
- Description
Dedicated nodes to work with the revenue organization and lead prioritization features such as allocate and scoring. These nodes are used to replicate complex logic that is often used in large sales organizations.
- Name
Storage nodes
- Description
Nodes that allow interaction with data models present in the user's Cargo workspace, for storing and retrieving data from within the workflow.
- Name
Integration nodes
- Description
Nodes for actions are provided by each connector which is natively integrated into Cargo. For instance, a CRM connector may offer a number of actions such as write, list, and merge that are available as separate nodes.
Logic Nodes
Logic nodes abstract conditional and iterative logic inside a simplified interface so that users can avoid buildinng boilerplate code and can focus on the business logic of the workflow.
- Name
Filter
- Description
Evaluate if the input expression resolves to true or false. When true, the output will be of the type boolean (appearing as a ticked checkbox) and vice versa. When the output is false, the node will not proceed to the next node during a test execution.
Example: if the expression is
{{ nodes.var.email }}' and the value of
nodes.var.emailis
truthy, the output will be
true` and the node will proceed to the next node.
- Name
Branch
- Description
Similar to the filter node, however, instead of stopping the workflow execution when the output is false, the branch offers two output routes, i.e.
Yes
andNo
which can be used to branch the workflow based on the output of the input expression.Namely, the branch node has two output links:
- a node attached to the "YES" outgoing link in case of truthy result
- a node attached to the "NO" outgoing link in case of a falsy result
- Name
Delay
- Description
Pauses workflow execution for a defined number of minutes before resuming it automatically.
This is useful if the workflow needs to wait for certain resources externally to become available in 3rd party tools. A delay node only adds a delay during an actual run and does not affect the test execution.
- Name
Split
- Description
Splits the execution into one of the two branches on a randomized basis based on a defined proportion.
- Name
Variables
- Description
Allows to add one or more variables to store workflow context that will become available for consecutive nodes. Each variable is defined by an expression that can be a static value or value based on previous nodes' results.
- Name
Switch
- Description
A more complex version of the basic branch node that allows to define any number of output links with their conditions. The first matching condition will be executed ignoring the rest.
This node will always run only one consecutive node on the first matching route. If no route matches, the node will not proceed to the next node.
- Name
Balance
- Description
Can be configured to split the workflow into any number of different routes and the node will split the traffic equally. Example: creating 2 routes will split workflow runs 50%/50%, creating 3 routes will split it by 33%/33%/33%
- Name
Group
- Description
Accepts an array of items and creates a sub-workflow that will be executed for each item of the array individually. Each element of the array can be accessed in the sub-workflow using the
nodes.start
object. The output of the sub-workflow can be accessed in the main workflow as the output of the group node itself (also in an array format).Configuration:
- Items (expression) - used to modify or select the list of items to process with the node
- Fail on item failure? - decide if the group node should immediately stop iterating over items in case of an error inside the sub-workflow
See Loop over an array using a group node to learn about how to operate the group node.
Sales Nodes
Sales nodes provide operations for Revenue organization.
- Name
Allocate
- Description
Runs an allocation logic based on the provided configuration. When successful it will return a "member" object with details of the sales representative chosen during allocation.
- Name
Scoring
- Description
Runs customizable scoring logic and returns one parameter "score" with the computed value.
Configuration accepts any number of criteria, each consisting of an expression. All expressions resolving to true lead to a defined score operation (increase or decrease) that is applied to the final score.
Storage Nodes
Storage nodes allow to work with an underlying system of record that allows persistent data.
- Name
Model custom column
- Description
Adds a value to a pre-existing custom columns to a record identified by the provided ID in the selected data model.
- Name
Model record
- Description
Inserts a new record to the selected data model.
- Name
Model search
- Description
The search node can be used to find records that match certain criteria and then use the results in the workflow. The search can be filtered by any number of conditions.
- Name
Memory
- Description
The memory node is useful for storing temporary data that is not persisted in the system of record. It can be used to store data that is needed for the duration of the workflow run. The memory node is also useful for storing data that is needed across multiple workflows.
The node configuration provides a set of general key/value storage operations:
- get
- set
- get or set
- increment
- decrement
- remove
It can operate on the following scopes:
- workflow
- workspace
Integration Nodes
Integration nodes represent individual operations that can be made using connectors available in Cargo. Most connectors offer a standardized set of operations (read/write/search), but some expose very custom nodes offer access to the special features of a given 3rd party platform, such as in the of a (web) crawl node.
- Name
Read
- Description
Used to fetch data associated with a certain key. For example, a read node for HubSpot returns a data object associated identified by the provided key.
- Name
Enrich
- Description
Used to enrich data with additional information. For example, an enrich node for Clearbit enriches a contact with additional information like company name, industry, etc.
- Name
Write
- Description
Used to write data to 3rd party service using a connector. For example, a write node for Outreach connector creates a contact in Outreach. Most of the time this operation allows an upsert strategy that will work regardless of the state of the 3rd party tool.
- Name
Search
- Description
Accepts a search term and filters through a dataset to find matching records, typically available for CRM or enrichment connectors like Salesforce and Apollo, respectively.
- Name
Match nodes
- Description
Checks if a record exists in a 3rd party system. Similar to search but instead of returning an array of results it returns a single "match" boolean.
- Name
Associate nodes
- Description
Associates two different objects in 3rd party platform to each other, such as associating a HubSpot contact with a HubSpot account.
- Name
Verify nodes
- Description
Verifies an email address using 3rd party tool.
- Name
Other nodes
- Description
Although Cargo standardized most of the typical operations across all connected platforms and tools, certain connectors expose very specific actions, such as AI Instruct that runs an AI prompt or Web Crawl that downloads the content of a website.
All are available in the Nodes Catalog with short descriptions and are documented in connectors documentation.
Start Node
There is always s start node for each workflow that only has a single outgoing link. It represents a starting point for each run.
- Name
List last records
- Description
Brings a list of recent records for the selected data model. On this list, you can select which record will serve as a test record to run the workflow nodes in test mode while in the editor.
- Name
Or select in model
- Description
Available when the system of record is set up. Allows picking any record from the storage.
Node Lifecycle
After adding to a workflow a node can be in multiple different states:
- Name
Adding a new node
- Description
Any node can be added using the plus icon in the top right of a workflow canvas and dragging a node from the catalog. The new node is not linked by default and needs to be linked before it can be run. Linking a new node is also very helpful for getting a preview of all variables the node can access.
- Name
Linking a node
- Description
Except for the start node, all other nodes have one input link.
Each node can accept multiple input links and most of the nodes have one output link and one optional fallback link. On the other hand, some Logic nodes can have multiple exit links:
- Branch, Split - 2 exit nodes
- Switch, Balance - variable number of exit nodes depending on the configuration
- Name
Configuring a node (configuration tab)
- Description
A node can be configured at any time, but ensuring a node is linked and the previous node was run is the most helpful approach. After the node was run the "In" tab will show the read-only state of the node's configuration at the time of the preview run.
A node's configuration can be edited at any time, it can be accessed via the configuration tab at the top of the node side panel.
- Name
Running a node
- Description
A node can be run only if it's configured correctly and linked to a node that was already run.
A node can be re-run any number of times to refresh the output results. Once a node was run its results can be accessed by following nodes.
- Name
Previewing node results (Out Tab)
- Description
After a node was successfully run it will show a preview of the results that will be passed to the following node or nodes in the "Out" tab.
Fail mode
Right clicking a node will open a context menu with a few options. One of them is the fail mode option that allows to change how the node will handle node failure.
By default, workflow will fail and stop if there is an error in any node. This can be adjusted in Node settings. There are two modes available:
- Name
Exit
- Description
The workflow will stop and fail immediately. Consecutive nodes won't be executed.
- Name
Fallback
- Description
Allows to branch workflow with a separate link that will be run in case of node error. Any node can be linked as a fallback and can access error details.
Node Settings
Each node, regardless of its type has a few common settings. They can be accessed by perfoming a right-click on a selected node. This will open up a node settings context menu with following options:
- Name
Edit
- Description
- Slug - the human- and machine-readable name of the node. It is used for access node's results in consecutive nodes.
- Description - Free from the text field to store notes and additional information about a given node.
- Name
Retry Policy
- Description
Some of the nodes that perform more complex or brittle operations that can fail transiently have a built-in retry policy. It allows us to define how the node should retry its action before erroring out.
- Maximum attempts - a number that defines how many times the node will retry before erroring out
- Initial interval - a number of seconds between 1st and 2nd attempt
- Interval increase coefficient - a number used for exponential backoff. The initial interval will be multiplied by this value after each attempt
- Name
Failure
- Description
By default, workflow will fail and stop if there is an error in any node. This can be adjusted using the failure settings. By default, the fail mode is set to "Exit" which ends the workflow immediately, in which case the workflow will stop and fail immediately and consecutive nodes won't be executed.
In case a user chooses the fallback option. Allows to branch the failing node with a separate node connected via a link that will be run in case of a node error. Any node can be linked as a fallback and can access error details.
- Name
Duplicate
- Description
Creates a copy of a given node with the same configuration. The data preview is not duplicated and the duplicated node needs to be run before the output preview is available
- Name
Remove
- Description
Removes a given node immediately, all configuration and data preview is lost