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
Common Room

Act on every signal

Common Room captures signals and resolves them to people and accounts. Cargo enriches, scores, routes and acts on them, with the logic held as code.

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

Common Room sees the signal. Cargo decides what to do about it.

A signal is an input. Something still has to enrich the record, score it, decide who owns it and act.

Common Room and Cargo compared
Common RoomCommon RoomCargo
Built forCommon RoomCommon RoomSeeing activity across community, social and productCargoDeciding what to do about a signal
IdentityCommon RoomCommon RoomResolves activity to people and accountsCargoTakes the resolved signal as an input
After the signalCommon RoomCommon RoomSurfaces who is worth a conversationCargoEnriches, scores against your ICP, assigns and acts
GTM as codeCommon RoomCommon RoomConfigured in the Common Room appCargoThe workspace in TypeScript, in your git repo
Best whenCommon RoomCommon RoomYou cannot see the signals yetCargoEvery signal needs the same decision, whatever its source

In short. Teams often run both: Common Room detects and resolves, and Cargo takes the resolved signal and runs the engine against it.

What a signal still needs

A signal is an input. These turn it into an action.

  • Enrichment waterfalls

    Fill the fields a decision 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
  • Scoring on your ICP

    Each account gets a fit score and a readiness score from signals.

    Enabled
    Route inbound leads
    TriggerEditorRecordsMetrics
    Search...
    2/2 nodesFilter5/5 statusesAll versionsAll batchesAll dates
    1,284 records
    Startstart
    ICP fitscore_icp
    Ada Lovelace
    82/100
    Grace Hopper
    74/100
    Alan Turing
    91/100
    Katherine Johnson
    68/100
    Edsger Dijkstra
    55/100
    Mary Jackson
    77/100
    Claude Shannon
    86/100
    Barbara Liskov
    63/100
    Default
  • Signals from any source

    Every signal, whatever its source, runs through the same logic.

    NorthwindSignals this week
    • Ada Lovelace reacted to your post2h
    • Ada Lovelace commented on your post3h
    • Ada Lovelace viewed your profile1d
    • Northwind viewed your company page1d
  • 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
  • Plays that fire on change

    A signal lands, a play runs. Retried and traced.

    Route inbound leads
    TriggerEditorRecordsMetrics

    Schedule

    Type*
    ManualEnroll records manually
    Real-timeTrigger your play when new records are added
    IntervalSchedule your play to run on a set interval (e.g., once per hour)
    CronSchedule your play using a cron expression
    DependencySchedule after a play finished running
    Interval*
    Every hour

    Syncs are scheduled in UTC

    Conditions

    Filter
    Lifecycle stage is LeadANDEmail is not empty
    Add group

    Changes

    Mode*
    New records onlyOnly new records that match the conditions will be enrolled in the play
    New and updated recordsNew and updated records that match the conditions will be enrolled in the play
    FullProcess all matching records
    CustomAdvanced mode
    Changes included*
    AddedUpdatedUnchanged

    Enrollment

    Rule*
    Always enrollEnroll the record into a new play run every time the trigger fires for that record
    Enroll onceOnly enroll each record once, even if the trigger fires multiple times for the same record
    If is not currently enrolledOnly enroll a record if it's not already in an active run, preventing concurrent runs
    Save
    Model
    Contacts

    The model associated with this play. Each record within this model is eligible for enrollment in the play.

    Enroll manuallySync now
  • 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.

Common RoomChoose Common Room when…
  • You cannot see the signals yet
  • The activity happens in community, social or product
  • Identity resolution across those surfaces is the gap
  • Surfacing who is worth a conversation is enough
Choose Cargo when…
  • Every signal needs the same decision, whatever its source
  • Records should be enriched and scored before anyone acts
  • Each signal should end with an owner and an action
  • The logic should live in code a coding agent can change

Both true. Common Room is the better signal layer. Cargo is the better GTM engine. Teams often run both: Common Room detects and resolves, and Cargo runs the engine against the resolved signal.

Cargo vs Common Room, in short

If you need to see community, social and product activity in the first place, compare signal platforms directly. If the problem is what happens after the signal, Cargo: it enriches the record, scores it against your ICP, decides who owns it and acts, the same way for every source.
Common Room is a signal layer: it captures activity across community, social and product surfaces, resolves it to people and accounts, and surfaces who is worth a conversation. Cargo is the orchestration layer that decides what to do about a signal, with the data model, enrichment, scoring, routing and agents held as code.
When the problem is that you cannot see the signals in the first place, particularly community-led or product-led motions where the interesting activity happens outside the CRM. Common Room's identity resolution across those surfaces is the thing it is built for, and Cargo does not replace it.
Not really, which is why teams often run both. A signal is an input. Something still has to enrich the record, score it against your ICP, decide who owns it and act, and it should do that the same way whether the trigger came from a community post or a form. That decision layer is the part Cargo is.
Yes, and it is the natural pairing. Common Room detects and resolves; Cargo takes the resolved signal and runs the engine against it.
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