Domain model
The records Cypress keeps, their ids, how they link, their states, what changes them and what they announce. The map an agent platform builds its own model from.
TL;DRAI summary
This chapter explains how Cypress organizes your business information, like vehicles, listings, and offers. Understanding these "records" helps you see how they connect, what different states they can be in, and what actions change them within the platform.
An agent platform that keeps its own model of your business, such as Palantir Foundry's ontology, Salesforce Data 360 or Dataverse tables, or your own warehouse, maps Cypress onto it from this page. It lists the records, what identifies them, how they link, the states they move through, what changes them, and the events that say they changed.
What every record carries
id: Cypress's own, an opaque string such asclx…. It never changes and has no type prefix: keep it as it comes.externalIds: your own systems' ids (sourceandid, one per source), on vehicles, listings, contacts, companies, deals and tasks. A list finds the record your system calls by one withexternalId=<source>:<id>. See Your own ids.links.app: where a person opens it in Cypress, a/go/<type>/<id>link that checks the access of whoever follows it. Never build one yourself.href: the API address of its latest state.
The records
| Record | Read it with | Your ids | Opens at |
|---|---|---|---|
| Vehicle | GET /api/v1/vehicles, find with type: vehicle | Yes | /go/vehicle/… |
| Listing | GET /api/v1/listings | Yes | Its vehicle |
| Offer | GET /api/v1/offers | No | /go/offer/… |
| Closing | GET /api/v1/closings | No | /go/closing/… |
| Contact | GET /api/v1/contacts | Yes | /go/contact/… |
| Company | GET /api/v1/businesses | Yes | /go/business/… |
| Deal | GET /api/v1/deals | Yes | /go/deal/… |
| Task | GET /api/v1/tasks | Yes | /go/task/… |
| Campaign | GET /api/v1/campaigns | No | /go/campaign/… |
| Buy target | GET /api/v1/buy-planning/targets | No | /go/buy-target/… |
| Plan vehicle | GET /api/v1/planning/vehicles | No | Its vehicle |
A plan vehicle is a vehicle's place in the Sell plan, by the vehicle's own
id. A company is a business in the API's paths and links.
States
| Record | Field | Values |
|---|---|---|
| Vehicle | status | DRAFT, REVIEW, PENDING_APPROVAL, APPROVED, PRE_LISTED, LISTED, ON_HOLD, UNDER_OFFER, OFFER_ACCEPTED, DUE_DILIGENCE, READY_TO_DELIVER, SOLD, ARCHIVED |
| Vehicle | lifeStage | OPERATION, PLANNING, REMARKETING, POST_SALE, RETIRED |
| Listing | status | REQUESTED, ACTIVE, PAUSED, SOLD, NOT_SOLD, CANCELLED |
| Offer | status | NEW, REVIEWED, COUNTERED, ACCEPTED, REJECTED, EXPIRED, WITHDRAWN, CANCELLED |
| Closing | status | IN_PROGRESS, COMPLETED, CANCELLED |
| Contact | lifecycle | PROSPECT, REACHED, ENGAGED, ON_PLATFORM, ACTIVE, DORMANT |
| Task | status | OPEN, DONE, CANCELLED |
| Campaign | status | DRAFT, ACTIVE, PAUSED |
| Buy target | status | OPEN, FILLED, PAUSED, CLOSED, ENDED |
| Plan vehicle | membershipState | CANDIDATE, STAGED, CONDITIONAL, PROMOTED, SLIPPED, HELD, IN_OPERATION, PARKED |
A deal's stage is one of its pipeline's stages, which your organization
names: read them with GET /api/v1/deals/stages. A closing moves through
steps, each with whose turn it is and its deadline.
How they link
| From | To | By | Note |
|---|---|---|---|
| Listing | Vehicle | vehicleId | A vehicle has at most one open listing, named on it as listing |
| Offer | Vehicle | vehicleId | An offer never names the other side's buyer or seller |
| Closing | Vehicle | vehicle | |
| Closing | The other side | counterparty | Its organization's name only, never a person |
| Contact | Company | businessId | |
| Deal | Contact, company | contactId, businessId | |
| Deal | Vehicles | vehicles | Many: each with its ask amount and outcome; GET /api/v1/deals?vehicleId= reads the other way |
| Task | What it is about | links | A contact, deal, company, vehicle, buy target or part of the Sell plan |
| Campaign | Vehicles | vehicleIds | |
| Plan vehicle | Vehicle | vehicleId |
Prices are the same three numbers wherever they appear: a vehicle's
pricing and a listing's own fields, floorPrice (the seller's reserve),
buyNowPrice (what buyers see) and startBidPrice, in US dollars.
What changes them, and what they announce
| Record | Changed by | Kept for a person | Events |
|---|---|---|---|
| Vehicle | add_vehicle, edit_vehicle, launch, pause_vehicle, request_vehicle_archive | The floor, resuming a car or taking it off the market, its status by hand | VEHICLES.CREATED, VEHICLES.UPDATED, VEHICLES.DISPOSITION.STAGED |
| Listing | launch, reprice, update_listing | Taking a car off the market | LISTINGS.ACTIVATED, LISTINGS.PAUSED, LISTINGS.CANCELLED, LISTINGS.PURCHASED |
| Offer | answer_offer | Accepting or countering below the floor | OFFERS.CREATED, OFFERS.ACCEPTED, OFFERS.DECLINED, OFFERS.COUNTERED |
| Closing | advance_closing | Confirming that money arrived, documents and signatures | CLOSING.STARTED, CLOSING.STEP.COMPLETED, CLOSING.STEP.DUE, CLOSING.COMPLETED |
| Contact | create_contact, update_contact, log | Emailing it in your name, deleting it | CONTACT.CREATED, CONTACT.UPDATED, OUTREACH.LOGGED |
| Company | create_business, update_business, log | Deleting it | BUSINESS.CREATED, BUSINESS.UPDATED |
| Deal | create_deal, move_deal_stage, log | Deleting it | DEAL.CREATED, DEAL.STAGE_CHANGED |
| Task | log, update_task, complete_task | TASK.CREATED, TASK.ASSIGNED, TASK.COMPLETED | |
| Campaign | create_campaign, set_campaign_content, pause_campaign | Activating and sending it | CAMPAIGN.ACTIVATED, CAMPAIGN.SENT, CAMPAIGN.PAUSED |
| Buy target | create_buy_target, change_buy_target | Approving the quarter | BUY.TARGET.CREATED, BUY.TARGET.MATCHED, BUY.TARGET.FILLED |
| Plan vehicle | schedule_plan_vehicles, move_plan_vehicles | Approving the quarter | PLAN.VEHICLE.SCHEDULED, PLAN.HANDED_TO_SELL |
Every tool here is in MCP servers and Core tools; every event, with its body, in Webhooks. What an agent may do on each is in What an agent can and cannot do. To keep a copy in step, see Events and sync.
Core tools
Thirteen tools for an agent's everyday work in Cypress, and every other operation through discovery. What Cypress Operate shows an agent by default.
Events and sync
Keep a copy of your Cypress records in step, in a platform's model or your own warehouse. Backfill with the lists, follow every change by webhook or from the event log, reconcile, and mirror what waits for a person.