Records and CRM
A CRM your agent can read, write, and explain
A CRM is only worth what it can prove. Every attribute records who wrote it, which run, and from which source, so an agent can update a record and you can still audit the change afterwards.
Most CRMs assume a human types and a manager reports. This one assumes an agent writes and a human audits. Companies, people, and deals carry typed attributes, relationships, a linked activity timeline, dedupe lineage, and provenance on every write, because a record an agent changed is trustworthy only when the change is legible.
The default model is opinionated on purpose. A person moves new, contacted, engaged, meeting, customer, with nurture and disqualified off-ramps. Deals run discovery through won or lost with stakeholder roles on each edge. Company lifecycle is derived from its people and deals until a human overrides it, and that override is recorded rather than guessed.
Example searches
Ask for it the way you'd say it
Every search below runs on the same hosted Tables, with the cost previewed before anything is spent.
The stale pipeline question
which open deals have had no activity in three weeks and who owns each one
The pipeline read groups by stage with counts and totals, and each deal links through to the timeline behind it.
Where did this value come from
who set this company's headcount and which run wrote that number
Field-level provenance names the source, the run, and the timestamp, down to a single attribute on a single record.
Clean up the duplicates
find the companies we have stored twice and merge them without losing history
Merges preserve lineage, so the surviving record still shows what the merged one contributed and when.
Plays
Three motions you can run this week
Each one is a chain of Oxygen primitives — the same hosted objects your workspace already has, composed.
Promote work into truth
A qualified list stops being a spreadsheet and becomes canonical companies and people with provenance.
- 1Finish the argument in a table, where rows are candidates and mistakes are cheap.
- 2Promote only the rows that survived, and let dedupe resolve them against existing records.
oxygen tables promoteBackfill what the record is missing
Thin records get filled from providers on a schedule, without anyone re-uploading a list.
- 1Enable enrichment on the attributes that actually matter and leave the rest empty.
- 2Backfill existing records, then read the per-field cost and source afterwards.
oxygen crm enrichment backfillLet intent reorder the pipeline
Accounts with a hiring or funding event surface above accounts that have simply been quiet.
- 1Record signals against companies so the timeline shows more than your own touches.
- 2Read the pipeline with recent events in view and work the top of it first.
oxygen crm pipeline
Capabilities
What you get
Provenance on every write
Each attribute records its source, run, and timestamp, whether a human, a promotion, or a provider wrote it. An agent editing records is safe because the edit is legible.
A stage model that ships working
Person funnel, deal pipeline, and a derived company lifecycle come configured for early-stage B2B. Option sets stay customizable; the default is what most teams would build anyway.
Nothing silently disappears
Automation merges or archives, never hard-deletes. Merges keep lineage, so a cleanup you regret is recoverable and a cleanup you wanted is still explicit.
One contract, three surfaces
Assert, search, and update share a single API, so the web CRM, the terminal, and an MCP client do the same things with the same guards and the same audit trail.
Boundaries
What Records does not own
Records holds canon. It is not the workbench: sourcing, waterfalls, AI columns, and any list still being argued about belong to Tables, where a row is a candidate until promoted. Conversations are Messages, and the durable company knowledge behind your ICP is the Knowledge Graph.
Data sources
What the data actually comes from
Every value lands with its provider and cost recorded on the cell.

People Data Labs
Firmographic and person records for filling gaps on a company or contact that arrived thin.

Blitz API
Profile and company reads that resolve a person to a real identity before the record is asserted.
LeadMagic
Email, mobile, and company enrichment aimed at the specific attributes a record is missing.

Crustdata
Headcount trend and funding context, which is what lets a lifecycle stage move for a stated reason.
PredictLeads
Hiring and technology events attached to the company, so the timeline carries more than your own touches.
Run these on Oxygen's managed credits, or connect your own provider keys and pay the vendor directly — the same columns, the same runs, the same provenance either way. See every integration.
Limits
Where this stops
- The stage model is opinionated and customizable, not free-form. Changing the stage vocabulary is a migration with cell remaps rather than an inline rename.
- Two gaps worth knowing: a stage edited in the web grid or the record panel writes no timeline activity today, so a move you need on the record should go through assert, and custom objects are scoped to the CRM domain rather than a general object graph.
FAQ
Questions people ask first
Is this a real CRM or a table with a nicer name?
Can I keep the CRM I already run?
What stops an agent corrupting my data?
How is a record different from a table row?
Does the CRM itself cost credits?
How are duplicates handled?
Run a crm your agent can read, write, and explain on your own workspace
Sign up, get a working workspace with a one-time credit grant, and run the first play from the web app, the CLI, or your AI assistant over MCP.