A revenue engine on your stack
Workato is an enterprise iPaaS built on recipes. Cargo is GTM infrastructure: accounts, enrichment, routing and plays as primitives.
Trusted by GTM teams at
Augment Code
Weights & Biases
Dust
WorkOS
Braintrust
Descript
Alaan
Engine
Scaleway
Preply
DataDome
Oneflow
A recipe moves a payload. A play acts on the account.
Same company, different jobs. Workato moves data between systems; Cargo decides what that data means for ownership and pipeline.
| Cargo | ||
|---|---|---|
| Built for | Enterprise integration across the company | GTM infrastructure for revenue-critical workflows |
| Artifact | A recipe: connectors, steps, and actions | An engine: models, plays, and agents |
| Starting point | Triggers, payloads, and API steps | Accounts, contacts, territories, and CRM state |
| GTM logic | Custom-built on top of every recipe | Native: enrichment, routing, scoring, sync |
| GTM as code | Recipes built in the Workato recipe editor | The workspace in TypeScript, in your git repo |
| Best when | The job is connecting systems | The job is running the revenue engine |
In short. Use Workato to move data between systems. Use Cargo when that data has to decide ownership, enrichment, routing, or pipeline.
What recipes make you rebuild
Workato's primitives are connectors and steps. Cargo's are the objects a revenue team already thinks in.
One GTM data model
Accounts, contacts, deals and custom objects every play reads.
CompaniesAll recordsFilterSort12,480 records6/24 columnsName+23
DomainEmployeesCountryIndustryICP fitAdd columnNorthwindnorthwind.com420United StatesLogistics82Contosocontoso.com1,200FranceSoftware74Globexglobex.com3,400GermanyManufacturing91Initechinitech.com260United StatesSoftware68Fabrikamfabrikam.com880FranceRetail55Umbrellaumbrella.com2,100United KingdomHealthcare79Stark Logisticsstarklogistics.com640United StatesLogistics88Wayne Freightwaynefreight.com1,450SpainLogistics71Plays that fire on change
A row updates, a play runs: research, qualify, engage. Traced.
Route inbound leadsSchedule
Type*ManualEnroll records manuallyReal-timeTrigger your play when new records are addedIntervalSchedule your play to run on a set interval (e.g., once per hour)CronSchedule your play using a cron expressionDependencySchedule after a play finished runningInterval*Every hourSyncs are scheduled in UTC
Conditions
FilterLifecycle stage is LeadANDEmail is not emptyAdd groupChanges
Mode*New records onlyOnly new records that match the conditions will be enrolled in the playNew and updated recordsNew and updated records that match the conditions will be enrolled in the playFullProcess all matching recordsCustomAdvanced modeChanges included*AddedUpdatedUnchangedEnrollment
Rule*Always enrollEnroll the record into a new play run every time the trigger fires for that recordEnroll onceOnly enroll each record once, even if the trigger fires multiple times for the same recordIf is not currently enrolledOnly enroll a record if it's not already in an active run, preventing concurrent runsSaveModelContacts
The model associated with this play. Each record within this model is eligible for enrollment in the play.
Enroll manuallySync nowCRM-safe writes
Dedupe, protected fields and attribution, built in.
EnabledRoute inbound leadsSearch...2/2 nodesFilter5/5 statusesAll versionsAll batchesAll datesStartstart
Update ownerupdate_owner
Ada LovelaceOwner updated
Grace HopperOwner updated
Alan TuringOwner updated
Katherine JohnsonNo Salesforce lead matches this emailEdsger DijkstraMary JacksonOwner updated
Claude ShannonOwner updated
Barbara LiskovOwner updated
DefaultRouting that knows the org
Territory, capacity, ownership and fallback, not a branch in a recipe.
Revenue organizationNew territoryNew capacityMembersTerritoriesCapacitiesA group of members that shares incoming records. Weights and a fallback decide who is next.
Territories3 territoriesUnited StatesInbound from North AmericaFranceInbound from FranceEMEAEverything else in EuropeUnited StatesLabel*United StatesChoose a label to your territory
Color*Choose a color to represent your territory
DescriptionInbound from North AmericaChoose a description
Members*AMAlice Martin50SOSam Okoro50Add memberPick members you want to be part of your territory
Fallback MemberDCDana ColeThe member that will be used when other territory members are not available (e.g. Capacity reached).
SaveEnrichment without the contracts
Credit-based providers and waterfalls. Test before you sign a vendor.
EnabledEnrich inbound leadsSearch...4/4 nodesFilter5/5 statusesAll versionsAll batchesAll datesStartstart
Find emailfind_email
Enrich companyenrich_company
ICP fitscore_icpAda Lovelaceada@northwind.com
Northwind, 420 employees
82/100Grace Hoppergrace@contoso.com
Contoso, 1,200 employees
74/100Alan TuringNo email found, 0 credits
Globex, 3,400 employees
91/100Katherine Johnsonkatherine@initech.com
Running...DefaultAgents on the same runtime
Agents see account state, ICP and history, and follow your rules.
Account researcherDeployInstructionsResearch 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.ActionsEnrich 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 secondsGet 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 request
cargo-ai project planshows 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 coversexport 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.
- The mandate is “connect these thirty systems”
- Go-to-market is one consumer among many
- Procurement needs an enterprise iPaaS
- Recipes already run the company's integration estate
- The job is the revenue engine, not the integration estate
- Accounts, enrichment, routing, and CRM writes are the work
- You want plays and agents, not recipes for GTM concepts
- Cost should follow GTM volume, not iPaaS task counts
Both true. Workato is the better iPaaS. Cargo is the better GTM runtime. Teams often keep Workato for the integration estate and run the revenue engine on Cargo.
Frequently asked questions
How Cargo and Workato differ, when to use each, and whether teams run both.
“Essential. Innovative. Indispensable. Cargo let you build your unique growth engine, a much-needed solution in the market today.”
Guillaume Cabane · Co-Founder @HypergrowthBuild the self-driving GTM engine
Your coding agents build it on Cargo.Or our team builds, operates and improves it with you.

