OwnCRM
Position paper · MetadataContext

The middle step to an agentic company.

Every company is about to become agentic — or start renting agents to do the work. Either way, the AI is only as good as the context of your business it can stand on: not just your rows, but your schema, the meaning behind it, and who touches what. OwnCRM hands you that context machine-readable and self-hosted — so any AI you choose can ground on it, and no vendor can sell your own org's meaning back to you.

Own your data and the context that explains it Works standalone — you don't have to migrate to get the map
The thesis Own the data now · own the context now plug in any AI later, on your terms
§ 01The coming forkof 05

Two roads. Both lead through AI.

Within a few years, the question stops being whether a company uses AI and becomes how. Some firms will build agents into their own operations. Others will buy agents from vendors and point them at their business. There is no third road where the software you run stays static.

Both roads share one on-ramp: the AI has to understand your business before it can act on it. And that understanding does not come from a language model's general knowledge — it comes from your org: the objects you invented, the fields fifteen years of admins added, the automations that quietly enforce how work actually happens.

So the real question underneath the hype is narrow and practical: who owns the context your future AI will stand on — you, or the vendor you rent it from?

Road A — rent the agents

Buy AI from the platform

  • $Per-seat, per-conversation pricing that climbs with usage.
  • Your org's meaning lives behind the vendor's API — and their model.
  • The context that makes the AI useful is theirs to price.
Road B — own the ground

Run any AI on owned context

  • Your schema + meaning + usage graph, in files you hold.
  • Point any model at it — RAG, agents, fine-tuning, your call.
  • No per-conversation tax on understanding your own business.

The fork is decided upstream. Whichever agents you eventually run, they need the same thing first — and that thing is either yours or rented.

§ 02What AI actually needsof 05

Not the rows. The grounding.

Everyone can export their data. A CSV of accounts is not context — it's the shadow of it. An agent that can act correctly on your business needs four layers, and only the first is in the rows:

  • 1Schema — the objects and fields that actually exist, with their real types and relationships.
  • 2Meaning — what Grade__c or Interest2__c is for, in plain language, when the name no longer explains itself.
  • 3Usage — which automations, layouts, and code read or write each field, so the agent knows what a change will disturb.
  • 4Provenance — what is live and load-bearing versus what is dead metadata no one has touched in years.

This is exactly the layer OwnCRM builds while it reads your org — because it's the same layer a faithful migration needs anyway. To translate an automation correctly, the engine has to know every field that automation touches. That cross-reference is the context an agent needs.

We call the artifact MetadataContext. It's a resolver that walks your metadata and records, for every element, the facts underneath — who references it, whether it's part of a naming family, and whether anything uses it at all. Facts first, machine-readable, no model required to produce them.

Note — facts before opinions

The factual layer — labels, types, picklist values, the usage graph, dead-metadata risk — is computed deterministically, with no LLM and no network. It's a complete, useful org atlas on its own.

An optional inference pass can add a plain-language business purpose for each element. That pass is engagement-key-gated — it runs only against an API key you provide for your own engagement, is never read from the environment, and is never written to disk. Keyless, you still get the whole facts layer.

§ 03The rented pathof 05

Paying millions for AI — then crying for the data.

Here's the trap in slow motion. You stay on the platform. The vendor ships AI agents and prices them per seat and per conversation, layered on top of the per-seat rent you already pay. The bill for a mid-size org can run into seven figures a year — the platform's own AI add-on lists at $125–$550/user/mo.

But the deeper cost isn't the invoice. It's that the agent only works because it's standing on your org's context — and that context now lives behind the vendor's API, in the vendor's model, on the vendor's terms. You supplied the meaning; you rent back the understanding.

And the day you want to leave, or point a different, cheaper, or better model at your own business, you discover the hard part was never the rows. It was the context — and you never held a machine-readable copy of it.

Failure sequence — Road A
  • 1Pay per-seat rent to stay on the platform.
  • 2Pay again, per conversation, for the vendor's agents.
  • 3Your context is inferred and held by the vendor, not you.
  • 4Want a different AI? The meaning doesn't come with the export.
  • Locked in twice — once on the app, once on its understanding.

Framed qualitatively: the exact figure depends on your org. The mechanism is the point — you generate the context, and the vendor monetizes it back to you.

§ 04The owned path — what it actually producesof 05

Real output, not a pitch.

Below is honest, unedited output from running the facts layer on two real sample orgs — Salesforce's own Coral Cloud demo and the open-source Dreamhouse app. No LLM was used; this is the deterministic map. Run it yourself with pnpm metacontext.

metadata-context · Coral Cloudpnpm metacontext · facts-only
[metacontext] parsed 6 object(s), 10 flow(s), 7 layout(s), 3 permission set(s), 26 apex unit(s)
[metacontext] SUMMARY
  elements:              74 (68 fields, 6 objects)
  automation-referenced: 35
  likely-dead (high):    3
  top naming clusters:
    - Contact: 3 fields [Interest1__c, Interest2__c, Interest3__c]
    - Contact: 3 fields [Lifetime_Experience_Bookings__c, Lifetime_Reservations__c, Lifetime_Value__c]
    - Guest_Review__c: 2 fields [Experience_Name__c, Experience__c]
74 metadata elements resolved · 35 carry live automation references · 3 flagged likely-dead, for a human to confirm.

The clusters aren't cosmetic. Interest1/2/3__c is a naming family an agent should treat as one repeated concept, not three unrelated columns — the kind of structural hint a raw row export throws away.

usage graph · one fieldSession__c.Date__c
element     Session__c.Date__c        (type: Date)
referenced  8 total · 4 from automation
   Apex       ExperienceController          read
   Apex       ExperienceSessionController   read
   Flow       Get_Sessions                  filtered
   Layout     Experience Instance Layout    displayed
   ListView   All                           displayed
   PermSet    Coral_Cloud_Admin             restricted
disposition transcribe · dead-risk: none
"4 automation reference(s) act on this element. Actively used — transcribe."
Every arrow into one field — the exact map an agent (or a migration) needs before it changes anything.

This is what "who-touches-what" means concretely: two Apex classes read it, a flow filters on it, a layout and a list view display it, a permission set governs it. Change the field and you now know precisely what you'd disturb.

dead-metadata ledger · Coral Cloud3 flagged
# fields with zero inbound references
Booking__c.Name       Booking Record No.  → review · HIGH
Credit__c.Name        Record Number      → review · HIGH
Guest_Review__c.Name  Review Number      → review · HIGH
"No inbound references found in any parsed
 metadata. Likely dead — confirm before dropping."
Flagged, not deleted. The tool never drops on its own judgment.

Honest nuance: these three are auto-number Name fields — often genuinely unreferenced, sometimes load-bearing. So the verdict is "confirm before dropping," never "delete."

naming cluster · DreamhouseProperty__c
[metacontext] parsed 2 object(s), 1 flow(s),
              1 permission set(s), 9 apex unit(s)
  elements:              36 (34 fields, 2 objects)
  automation-referenced: 17
  top naming clusters:
    - Property__c: 5 fields [Date_Agreement__c,
        Date_Closed__c, Date_Contracted__c,
        Date_Listed__c, Date_Pre_Market__c]
    - Property__c: 2 fields [Price__c, Price_Sold__c]
A five-field date lifecycle, recognized as one family — the shape of the sales process, made explicit.

The five Date_* fields are a property's lifecycle: listed → pre-market → agreement → contracted → closed. That's business meaning an agent can reason over — surfaced from field names alone.

Also — the standalone artifact

The same resolver backs Knowledge Map (pnpm knowledge-map) — a self-contained HTML atlas of your org: every object, field, relationship, and cleanup candidate. On Coral Cloud it reports 6 objects, 68 fields, 6 relationships, 3 cleanup candidates, facts-only. It ships as living documentation next to the code, and it's useful even if you never migrate — which is the point of the next section.

§ 05The middle stepof 05

Own the data. Own the context. Then choose the AI.

You don't have to bet on which model wins, or sign up for a vendor's agent roadmap, to get ready for an agentic future. You have to do the unglamorous middle step first: get your data and its context into a form you own.

When OwnCRM migrates you off Salesforce, the same run that ships your PostgreSQL database also ships this machine-readable context graph, self-hosted alongside it. Any AI you later choose — retrieval, agents, fine-tuning — grounds on it directly. No per-conversation vendor tax on understanding your own business.

And if you're not ready to migrate, the map stands alone. Run MetadataContext or Knowledge Map on your org today and you already own the hardest, most valuable layer — long before the first agent goes live.

The order that keeps you free
  • 1Own your data — PostgreSQL you host, no export wall.
  • 2Own your context — schema, meaning, usage graph, in files.
  • 3Then plug in any AI — on your terms, swap it whenever.
  • Agentic-ready without being vendor-locked.

This is the middle step between where you are — renting a CRM — and where you're going — running AI on your business. Skip it, and you arrive owing the vendor for your own org's meaning.

Own the ground your AI will
stand on.

Start with a free Org X-Ray — an honest inventory, coverage, and the context map of your org. No card, no sales call.