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.emailistruthy, 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 and No 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.

    See the Introduction to revenue organizations

  • 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.


NODES

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