How SchemaForce works
From OAuth to a living change history — the model behind the product.
SchemaForce turns your Salesforce metadata into a living record of how your schema changes over time. It reads the structure of your org — never your records — and compares each new read against what it saw before. This page walks through that lifecycle end to end.
Metadata-only by design
Everything below operates on schema definitions: objects, fields, relationships, permissions, and their attributes. SchemaForce never reads, stores, or displays a single record.
The lifecycle
Connect over OAuth
You authorize SchemaForce to read your org's metadata via OAuth — production or sandbox, My Domain or standard login. See Connect your Salesforce org.
Baseline snapshot
The first full crawl stores a complete snapshot of your schema — every object, field, relationship, and attribute as it exists the moment you connect. This becomes your baseline.
Diff on every sync
Each sync re-reads your metadata and diffs it against the stored snapshot. Nothing is assumed — the live schema is compared attribute by attribute against what was last recorded.
Change events
Every added, modified, or removed object, field, or attribute becomes an append-only change event. Each event captures the old → new values — schema attribute values such as a field's prior label or type, never record data — and survives deletion of the underlying field or object.
Attribution
SchemaForce correlates each change to who made it using Salesforce's Setup Audit Trail, with honest confidence levels. A custom-field name match is high-confidence; platform-driven changes are attributed to "Salesforce"; and where there's no reliable match, a change is left unattributed rather than guessed at.
Sync cadence
SchemaForce keeps your snapshot current on a schedule, with an on-demand escape hatch:
Re-reads only what changed since the last run — fast and low-overhead.
A complete re-crawl catches deletes, renames, and anything an incremental sync missed.
Run a sync on demand from the org's page — useful right after a big deployment.
The first sync won't flood your timeline
Baseline suppression makes your first sync insert-only — it records what exists without emitting an "added" event for everything that was already there. The timeline starts clean, with real changes only.
Glossary
A few terms used throughout the docs:
The stored representation of your schema at a point in time. The first one is your baseline; every sync diffs against the latest.
The difference between your live schema and the stored snapshot — what a sync detects and turns into change events.
An append-only record of a single added, modified, or removed object, field, or attribute, with its old → new values. It survives deletion of the underlying schema.
What depends on a field or object — the reports, automations, and other components that could break if you change it.
A profile, permission set, or permission-set group that grants access to an object or field.