Office hours: Build your self-driving GTM engine·Oct 29, 9:00am PT, onlineRegister→
Cargo
  • PrimitivesData ModelsYour companies, contacts and deals, merged from every sourceContextWhat your team knows, as files every agent readsTerritoriesWho sells where, defined onceMailboxesMailboxes in your reps' names, warmed up and kept under limitsToolsThe actions your agents, plays and reps callAgentsAI that researches, decides and writes, reading your contextPlaysWorkflows that run on a trigger or a schedule, with retriesAppsInternal apps for your reps, hosted on Cargo
    Add-onsChrome ExtensionSell faster, right in your browserButtonTrigger AI agents inside your CRMFormTurn any tool into an embeddable formSlackTag Cargo in Slack. It does the GTM workGitHubPlan on every pull request, deploy on merge
    MoreProjectsDefine your entire GTM in codeCLIUse Cargo from your terminalMCPUse Cargo from Claude and ChatGPTDeveloper resourcesCargo API docs, OpenAPI spec, auth docs, webhooks, MCP serverAPI ReferenceExplore the Cargo APIDocumentationLearn how to use CargoIntegrationsConnected to your entire GTM stack
  • VeriffHow Veriff replaced MuleSoft with Cargo under NetSuite, Stripe and SalesforceAugmentHow Augment Code routes developer sign-ups to reps in under an hourWeights & BiasesHow Weights & Biases ships a new purchase signal in 2 days on CargoSee all
  • Pricing
  • Cookbooks
  • Blog
Sign in
LeanData

Route on records you trust

LeanData is mature at matching and routing in Salesforce. Cargo enriches, dedupes and scores the record first, then routes it across any CRM.

Start building

Trusted by GTM teams at

  • <1 h to a repAugment Code
  • New signal in 2 daysWeights & Biases
  • Dust
  • −40% enrichment costWorkOS
  • Braintrust
  • 2x pipelineDescript
  • 3x card spend per oppAlaan
  • +30% pipelineEngine
  • Scaleway
  • Preply
  • DataDome
  • 80% CRM enrichedOneflow
backed by y combinator

LeanData routes the record. Cargo makes the record right first.

Leads reach the wrong rep because of duplicates, missing fields and unmapped territories more often than because of rules.

LeanData and Cargo compared
LeanDataLeanDataCargo
Built forLeanDataLeanDataLead routing and matching in SalesforceCargoThe revenue engine, with routing as one primitive
GTM as codeLeanDataLeanDataA routing graph in a Salesforce builderCargoTerritories and assignment in TypeScript, in your git repo
CRMLeanDataLeanDataSalesforceCargoSalesforce, HubSpot, a warehouse, or several
Before assignmentLeanDataLeanDataLeft to other toolsCargoEnrichment, dedupe and scoring on the same record
Changing a ruleLeanDataLeanDataEdited in the graphCargoPlanned as a diff, tested before production

In short. Use LeanData to route inside Salesforce. Use Cargo when the data under the routing is the problem, or the engine spans more than Salesforce.

What routing depends on

A route is only as good as the record it reads.

  • Routing that knows the org

    Territory, capacity, ownership and fallback, not tied to one CRM.

    Back to appWorkspaceGeneralBillingUsageUsersRolesIntegrationsDomainsRevenue organizationAPIEnvironmentSystem of record
    Revenue organization
    New territoryNew capacity
    MembersTerritoriesCapacities

    A group of members that shares incoming records. Weights and a fallback decide who is next.

    Territories3 territories
    United StatesInbound from North America
    2 membersAdded 3 days ago
    FranceInbound from France
    1 memberAdded 3 days ago
    EMEAEverything else in Europe
    1 memberAdded a week ago
    United States
    EditAllocations
    Label*
    United States

    Choose a label to your territory

    Color*

    Choose a color to represent your territory

    Description
    Inbound from North America

    Choose a description

    Members*
    AMAlice Martin
    50
    SOSam Okoro
    50
    Add member

    Pick members you want to be part of your territory

    Fallback Member
    DCDana Cole

    The member that will be used when other territory members are not available (e.g. Capacity reached).

    Save
  • Matching and dedupe

    Lead-to-account matching and dedupe before assignment.

    Enabled
    Route inbound leads
    TriggerEditorRecordsMetrics
    Search...
    2/2 nodesFilter5/5 statusesAll versionsAll batchesAll dates
    1,284 records
    Startstart
    Update ownerupdate_owner
    Ada Lovelace
    Owner updated
    Grace Hopper
    Owner updated
    Alan Turing
    Owner updated
    Katherine Johnson
    No Salesforce lead matches this email
    Edsger Dijkstra
    Mary Jackson
    Owner updated
    Claude Shannon
    Owner updated
    Barbara Liskov
    Owner updated
    Default
  • Enrichment waterfalls

    Fill the fields a route depends on before it runs.

    Enabled
    Enrich inbound leads
    TriggerEditorRecordsMetrics
    Search...
    4/4 nodesFilter5/5 statusesAll versionsAll batchesAll dates
    1,284 records
    Startstart
    Find emailfind_email
    Enrich companyenrich_company
    ICP fitscore_icp
    Ada Lovelace
    ada@northwind.com
    Northwind, 420 employees
    82/100
    Grace Hopper
    grace@contoso.com
    Contoso, 1,200 employees
    74/100
    Alan Turing
    No email found, 0 credits
    Globex, 3,400 employees
    91/100
    Katherine Johnson
    katherine@initech.com
    Running...
    Default
  • Every assignment traced

    Each run leaves a log, so why a lead reached a rep has an answer.

    Traces
    All triggers4/4 statusesLast 7 days
    3,912 traces
    Record
    Trigger
    Spans
    User
    Duration
    Started at
    Finished at
    Credits
    Ada Lovelace
    Route inbound leads
    6 spans60
    2.41s
    Nov 3rd, 2026 10:14:02
    Nov 3rd, 2026 10:14:04
    1
    Northwind
    Account researcher
    3 spans30
    AMAlice Martin
    8.62s
    Nov 3rd, 2026 10:11:40
    Nov 3rd, 2026 10:11:49
    3
    Katherine Johnson
    Route inbound leads
    5 spans41
    1.97s
    Nov 3rd, 2026 10:09:13
    Nov 3rd, 2026 10:09:15
    1
    Contoso
    Enrich new accounts
    4 spans40
    3.18s
    Nov 3rd, 2026 09:58:21
    Nov 3rd, 2026 09:58:24
    2
    Grace Hopper
    Route inbound leads
    6 spans60
    2.06s
    Nov 3rd, 2026 09:51:07
    Nov 3rd, 2026 09:51:09
    1
    Globex
    Account researcher
    4 spans40
    MDMarc Dubois
    11.3s
    Nov 3rd, 2026 09:44:52
    Nov 3rd, 2026 09:45:03
    4
    Alan Turing
    Route inbound leads
    6 spans60
    2.28s
    Nov 3rd, 2026 09:39:18
    Nov 3rd, 2026 09:39:20
    1
    Initech
    Enrich new accounts
    4 spans31
    4.05s
    Nov 3rd, 2026 09:31:46
    Nov 3rd, 2026 09:31:50
    2
  • One GTM data model

    Accounts, contacts, deals and custom objects every play reads.

    Companies
    2 hours ago
    All records
    FilterSort12,480 records6/24 columns
    Name+23
    Domain
    Employees
    Country
    Industry
    ICP fit
    Add column
    Northwind
    northwind.com
    420
    United States
    Logistics
    82
    Contoso
    contoso.com
    1,200
    France
    Software
    74
    Globex
    globex.com
    3,400
    Germany
    Manufacturing
    91
    Initech
    initech.com
    260
    United States
    Software
    68
    Fabrikam
    fabrikam.com
    880
    France
    Retail
    55
    Umbrella
    umbrella.com
    2,100
    United Kingdom
    Healthcare
    79
    Stark Logistics
    starklogistics.com
    640
    United States
    Logistics
    88
    Wayne Freight
    waynefreight.com
    1,450
    Spain
    Logistics
    71
  • Built by coding agents

    Your coding agent changes it as diffs, over the CLI or MCP.

    Account researcher
    TriggerEditorActivities
    Deploy
    Instructions
    Research the account, score it against our ICP and write a two-line brief for the owner. Use our ICP definition from context, not your own.
    Actions
    Enrich companyenrich_company
    Search the webweb_search
    Get companyhubspot_get_company

    The building blocks of the agent. They are the actions the agent can take. The agent will use the actions to achieve the goal.

    Advanced settingsClaude Sonnet 5
    Research Northwind and tell me if it fits our ICP.
    Reasoned for a few seconds
    Get company0
    Enrich company1
    Search the web2

    Northwind fits: 82/100. 420 employees, logistics, and two open SDR roles, which is the growth trigger in your ICP.

    It sits in the United States territory, so the owner is Alice Martin. Lead with routing: their HubSpot assigns inbound by hand today.

    Ask agent...

GTM as code, in your repo.

Your whole Cargo workspace is TypeScript in git: every change reviewed, planned and reversible.

  • In your repoThe whole workspace, declared in TypeScript.
  • Planned on every pull requestcargo-ai project plan shows the diff. Merging deploys it.
  • Undone with git revertRevert the commit and the previous version deploys.
  • Written by your coding agent: Claude Code, Cursor or Codex.
import { defineMember, defineTerritory } from "@cargo-ai/cdk";
const alice = defineMember("alice@acme.com");
const dana = defineMember("dana@acme.com");
// United States accounts go to Alice, Dana covers
export const unitedStates = defineTerritory("united-states", {
label: "United States",
members: [{ ref: alice, weight: 1 }],
fallback: dana,
});

When to choose which

Both products have a real job. The decision is which job you are hiring for.

LeanDataChoose LeanData when…
  • You are Salesforce-native
  • Routing is the whole problem and the data is clean
  • RevOps should keep routing where they already work
  • You need scheduling in the same product
Choose Cargo when…
  • Leads go to the wrong rep because the data is wrong
  • Your engine spans more than Salesforce
  • Routing changes should be tested before production
  • Coding agents should own territories and assignment

Both true. LeanData is the better Salesforce router. Cargo is the better GTM engine. A common split: Cargo enriches, dedupes and scores, and LeanData keeps routing inside Salesforce.

Cargo vs LeanData, in short

If routing inside Salesforce is the problem and your data is clean, LeanData is mature at that. If leads go wrong because the record is wrong, or the engine spans more than Salesforce, Cargo.
Start underneath it. Let Cargo enrich, dedupe and score leads and write the fields back, so your current routing runs on correct data. Then move rules into code one territory at a time.
LeanData orchestrates lead routing and matching inside Salesforce, and the artifact is a routing graph in Salesforce. Cargo orchestrates the whole revenue engine, and routing is one primitive among data models, enrichment, scoring and agents, defined in code rather than in a Salesforce-native builder.
When your company is Salesforce-native, the problem is genuinely routing and duplicate management, and you want the routing graph to live where your RevOps team already works. LeanData is deep and mature at that specific job.
Yes, with territories and assignment as first-class primitives rather than as a Salesforce-only feature. Because routing is defined in code, a change is reviewable as a diff and can be tested before it reaches production, which is the part a routing graph in a UI cannot give you.
No. Cargo is CRM-agnostic and works with Salesforce, HubSpot, a warehouse, or a combination. LeanData's platform is Salesforce, so if your engine has to span systems that is where the fit ends.
Yes. A common split is LeanData keeping the in-Salesforce routing and matching it is already trusted for, with Cargo owning enrichment, scoring and the plays that decide what happens before and after the assignment.
Hypergrowth
“Essential. Innovative. Indispensable. Cargo let you build your unique growth engine, a much-needed solution in the market today.”
Guillaume CabaneGuillaume Cabane · Co-Founder @Hypergrowth
Oneflow
“Cargo allows us to aggregate data from external sources and orchestrate it to meet our go-to-market needs across different countries.”
Alexandre BejaouiAlexandre Bejaoui · Head of Revenue Operations @Oneflow
Weights & Biases
“Cargo allows us to grease the wheels across the revenue organization, surfacing signals to AEs, customer success, and leadership at just the right moment.”
Frederic PinchonFrederic Pinchon · Director Revenue Analytics @Weights & Biases

Build the self-driving GTM engine

Your coding agents build it on Cargo.Or our team builds, operates and improves it with you.

Start building
Cargo
Backed byY CombinatorSOC 2 Type IICertified
LinkedinX

Product

Data ModelsContextTerritoriesMailboxesToolsAI AgentsPlaysAppsIntegrationsPricing

Add-ons

Chrome extensionButtonFormSlackGitHub

Build

DocsDeveloper resourcesCargo API docsCargo OpenAPI specCargo auth docsCargo webhooksCargo MCP serverProjectsClaude CodeCodexCursorAll coding agents

Resources

ReportsBlogCustomer storiesCookbooksEnrichmentRoutingSignalsScoringCRM hygieneAd audiencesGTM skillsGTM EngineeringGlossaryCompareCargo x ClayCargo x WorkatoCargo x n8nCargo x DeeplineCargo x DefaultCargo x LeanDataCargo x UnifyCargo x ValleyCargo x GojiberryCargo x PhantomBusterCargo x ZapierCargo x ApolloCargo x Chili PiperCargo x Common RoomCargo x MakeCargo x Tray.io

Company

ManifestoCommunityEventsJobsPartners DirectoryPartner Program

Legal

SecurityTerms of servicePrivacy PolicyRefundsDPASupport
© 2026 Cargo
 ////////    ///////    ////////     ////////    ///////
///         ///   ///   ///   ///   ///         ///   ///
///         ///   ///   ///   ///   ///         ///   ///
///         /////////   ////////    ///  ////   ///   ///
///         ///   ///   /// ///     ///   ///   ///   ///
///         ///   ///   ///  ///    ///   ///   ///   ///
 ////////   ///   ///   ///   ///    ///////     ///////

$ npm install -g @cargo-ai/cli