Skip to main content
Actions are the operations that make things happen in Cargo. They’re the individual steps that enrich data, write to CRMs, send messages, apply logic, and connect to external services.

Action categories

Cargo organizes actions into two groups: workflow actions for building logic in tools and plays, and connectors for integrating with external systems and AI.

Workflow actions

These actions are available in the Tool and Play editors for building automation logic:

Universal actions

These actions are available everywhere in Cargo—in tools, plays, agents, and via API:

Where actions are used

ContextDescription
ToolsBuild reusable workflows by connecting actions visually in the tool editor
PlaysAutomate data-driven workflows that trigger when data model records change
AgentsGive AI the ability to select and execute actions autonomously
MCPExpose your Cargo tools to any MCP-compatible AI system (Claude, Cursor, etc.)
APICall tools and actions programmatically from your own applications
Learn more about leveraging actions in different contexts in Using Actions.

Retry policy

Some actions can retry automatically when they hit transient failures (rate limits, timeouts, temporary outages). In tools and plays, open the node options menu and select Retry policy. This setting is available for connector actions that use your own credentials; credit-based connectors follow the integration defaults. Retry settings:
  • Maximum attempts: Total attempts including the first run (set to 1 to disable retries).
  • Initial interval: Wait time before the second attempt, in seconds.
  • Backoff coefficient: Multiplies the delay after each attempt. Delay = initial interval * backoff coefficient^(attempt - 1).
  • Defaults: Leave a field empty to use the integration defaults.

Logic

Logic actions control how your workflow executes—branching based on conditions, looping through arrays, or applying filters.
Logic actions are available in Tools and Plays only.
ActionPurposeUse when…
BalanceDistribute records across multiple routes proportionallyYou need even workload distribution
BranchRoute execution based on a Yes/No conditionYou have a single condition to evaluate
DelayPause execution for a specified timeYou need to wait for external processes or rate limits
FilterStop execution if a condition is falseYou want to gate workflow continuation
GroupExecute a sub-workflow for each item in an arrayYou’re processing multiple records in parallel
Human ReviewPause for human approval via SlackYou need manual approval before proceeding
SplitRandomly route to one of two branchesYou’re A/B testing or sampling
SwitchRoute based on multiple conditionsYou have several possible paths
VariablesCreate and store values for later useYou need to maintain state across nodes

Code

Code actions let you run custom scripts when built-in actions don’t cover your specific transformation, calculation, or logic requirements.
Code actions are available in Tools and Plays only.
ActionPurposeUse when…
JavaScriptRun custom JavaScriptYou need custom logic or transformations
PythonRun custom Python codeYou prefer Python for data transformations
Code actions execute arbitrary code. Use caution with external inputs and always validate data before processing.

AI

AI actions leverage large language models to process, generate, and understand content.
AI actions are available in Tools and Plays only.
ActionDescription
File searchSearch through files and documents using semantic understanding. Find relevant content based on meaning, not just keywords.
Model askQuery an LLM with a prompt. Generate text, analyze data, extract information, or make decisions.
AI actions consume credits based on token usage. Check the node picker for current pricing per 1K tokens.

Sales

Sales actions are purpose-built for revenue operations, replicating complex routing and scoring logic.
Sales actions are available in Tools and Plays only.
ActionDescription
AllocateDistribute leads to team members based on rules. Supports round-robin, territory-based, and capacity-weighted distribution.
ScoringCreate scoring models to evaluate records. Determine lead priority and potential value based on business rules.
Learn more about lead distribution in the revenue organization guide.

Storage

Storage actions interact with data models in your Cargo workspace, enabling data persistence and retrieval.
Storage actions are available in Tools and Plays only.
ActionDescription
MemoryKey/value store for temporary data during a workflow run
Model custom columnSet custom column values on existing records
Model recordAdd new records to your data models
Model searchQuery your data models with filters and conditions
Storage actions work with your Cargo data models. Make sure you’ve set up your models before using these actions.

Memory

The Memory action provides a key/value store for persisting data across nodes. Use it to save values early in your workflow and retrieve them later—without passing data through every intermediate node. Scope options:
ScopeBehavior
WorkspaceData is shared across all plays in your workspace
PlayData is isolated to the current play
Available actions:
ActionDescription
GetRetrieve a value by its key
SetStore a value at a key (overwrites existing)
Get or SetReturn existing value, or set a default if none exists
IncrementAdd to a numeric value (useful for counters)
DecrementSubtract from a numeric value
RemoveDelete a key and its value
Configuration options:
PropertyDescription
ScopeChoose between Workspace (shared) or Play (isolated).
KeyA unique identifier for the stored value. Use descriptive names like original_company_name or enrichment_result. Supports expressions.
Value(Set/Get or Set only) The value to store. Can be any data type—strings, numbers, objects, or arrays. Supports expressions.
Common use cases:
  • Preserve original data — Save input values before transformations so you can reference them later
  • Build counters — Use Increment to track how many times a play has run or count leads processed
  • Cache enrichment results — Store API responses to avoid duplicate calls within the same workflow
  • Share state across plays — Use Workspace scope to share data between different plays
  • Implement rate limiting — Track request counts with Increment/Decrement
Use the Increment action to build simple counters—track how many times a play has run, count leads processed today, or implement rate limiting logic.
Best practice: Use clear, descriptive key names that indicate what’s being stored and why. This makes your workflows easier to understand and debug.
Use a model search node Search and retrieve records from any data model or dataset in your workspace. This action queries your data and returns matching records that you can use in subsequent steps. Common use cases:
Use caseExample
Find related recordsLook up all contacts at a company when a deal is created
Check for duplicatesSearch for existing leads before creating new ones
Aggregate dataRetrieve all recent activities for a given account
Cross-referenceMatch records between different data sources
Configuration:
PropertyDescription
ModelThe data model to search (e.g., Contacts, Companies, Deals)
FiltersConditions that records must match
LimitMaximum number of records to return
SortOrder results by a specific field
Use expressions in your filter values to create dynamic searches. For example, filter by {{nodes.start.company_domain}} to find records related to the triggering record.

Model Record

Use a model record node Create new records in compatible data models directly from your workflows. This action allows you to write structured data back to models that support record creation. Supported data models:
Model typeSupport
HTTP models✅ Full support for creating records
All others❌ Not supported
Data models synchronized from external services like CRMs don’t support creating records with this action. Use the dedicated write actions for each service (e.g., HubSpot Create Contact, Salesforce Create Lead) to ensure proper data sync.
Data type behavior: When you create a new record, the first value written to each field determines its data type. This type cannot be changed afterward, so plan your schema carefully before writing production data.

Model Custom Column

Use a custom column node Extend synchronized data models with additional columns without modifying the source system. Custom columns let you store Cargo-specific metadata, flags, or computed values alongside your CRM or warehouse data. Examples of custom columns:
  • Lead scoring values calculated by your workflows
  • Enrichment timestamps for tracking data freshness
  • Processing flags like needs_review or outreach_sent
  • Aggregated metrics from other data sources
Configuration:
PropertyDescription
ModelThe data model to extend with a custom column
Record IDThe primary identifier of the record to update
Column nameName for the custom column (creates it if it doesn’t exist)
ValueThe data to write to this column
Finding the correct Record ID:
ScenarioHow to get the ID
Same data model as play triggerUse {{nodes.start._id}}
Different data modelUse a Model Search action to find the record, then reference its ID
Known external IDUse the external system’s ID (e.g., HubSpot contact ID)
If you’re updating records in the same data model that triggered your play, {{nodes.start._id}} is the simplest approach. For cross-data-model updates, always use a Model Search action first to locate the target record.

Storage best practices

Before creating or updating records, search for existing entries to prevent duplicates. This is especially important when processing data from multiple sources.
Track when records were last enriched, which providers were used, and whether the enrichment succeeded. This helps you avoid re-processing records unnecessarily.
Use play-scoped memory for play-specific state (like deduplication within a run) and workspace-scoped memory for cross-play coordination (like global rate limiting).
Model Search actions can return zero results. Add a Branch action to check for empty results and handle them gracefully—either skip processing or create a new record.

Integrations

Integration actions connect Cargo to external platforms. Each integration provides a set of actions specific to that platform.

Common actions

ActionDescription
InsertCreate new records in the connected system
FindRetrieve a specific record by ID
MatchCheck if a record exists based on criteria
SearchFind multiple records based on filters
UpdateModify existing records
UpsertInsert or update based on matching criteria
DeleteRemove records from the connected system
AssociateLink two records together (e.g., contact to company)

Tools

Call other Cargo tools from within your workflows. This lets you compose complex automations from smaller, reusable building blocks. Use cases:
  • Modular design — Build small, focused tools and combine them into larger workflows
  • Reuse logic — Share common operations (like enrichment or CRM writes) across multiple plays
  • Abstraction — Hide complexity behind a simple tool interface
When a tool is used inside another tool or play, it runs as a sub-workflow with its own inputs and outputs.

Agents

Invoke AI agents from within your workflows. Agents can handle complex, multi-step tasks that require reasoning and decision-making. Use cases:
  • Research tasks — Have an agent gather and synthesize information
  • Dynamic decisions — Let the agent choose the best action based on context
  • Complex workflows — Delegate multi-step processes to an autonomous agent

Learn more about agents

Understand how to build and configure AI agents.

Browsing actions

Cargo offers 120+ actions across all categories. To explore them:
  1. Open the Tool or Play editor
  2. Click the + button to open the node picker
  3. Browse by category or search for specific capabilities
  4. Click any action to see its configuration options and documentation

Next steps