CTR-CRM · version 2
Customer Relationship Management — Opportunities
Privacy conditions: contact-level personal data is excluded from the contract entirely. The connector reads account and opportunity shape, not people.
What the contract says
These are the terms the connector is generated against. A source that stops matching them is a drift finding, not a silent data change.
Review state
Neither review is performed by the team that wrote the contract.
Validation and drift
Drift is only detectable on a contract that has been read against a sample.
The field list
6 fields · 1 key · 1 personal. The validation rule on each row is what admits or rejects a record at the staging boundary.
| Field | Source | Target | Type | Flags | Drift | Validation |
|---|---|---|---|---|---|---|
| Opportunity id | Opportunity.Id | opportunity.ref | string(18) | keyinternal | In contract | Eighteen-character Salesforce id. The fifteen-character form is rejected because it is case-sensitive and collides. |
| Account id | Opportunity.AccountId | opportunity.accountRef | string(18) | internal | In contract | Must resolve to an account already admitted. |
| Stage | Opportunity.StageName | opportunity.stage | enum(8) | internal | In contract | One of eight declared stages. A custom stage added in the source without a contract version bump fails the batch. |
| Amount | Opportunity.Amount | opportunity.amount | decimal(15,2) | nullableinternal | In contract | Null is permitted before qualification. Null after stage 3 is a contract violation. |
| Close date | Opportunity.CloseDate | opportunity.closesOn | date | internal | In contract | Future-dated on open opportunities. A past close date on an open row quarantines. |
| Owner | Opportunity.OwnerId | opportunity.ownerHash | string(64) | personalconfidential | In contract | Pseudonymized. Used for routing only, never for individual performance measurement, which the contract states in words. |
What has passed the staging boundary against this contract
2 batches · 18,342 arrived · 17,949 admitted · 305 quarantined · 88 rejected
| Batch | Arrived | In | Admitted | Quarantined | Rejected | Result | Gate |
|---|---|---|---|---|---|---|---|
| STG-0009 | Aug 18, 08:00 | 9,330 | 9,086 | 156 | 88 | Partly admitted | 9,086 admitted · 156 quarantined · 88 rejected outright. |
| STG-0010 | Aug 18, 07:00 | 9,012 | 8,863 | 149 | 0 | Partly admitted | 8,863 admitted · 149 quarantined · 0 rejected outright. |
Rejects raised against these batches
3 reasons covering 393 records. Each one names a field, what was observed and what the contract expected.
Replay windows
1 window recorded against this contract.
Write-back routes into this system
2 routes designed against Customer Relationship Management.
What goes stale when this feed does
3 asserted figures depend on Customer Relationship Management. The rule on each row is what the surface does when the feed misses its commitment.
| Figure | Where it is shown | Role | On stale | Note |
|---|---|---|---|---|
| Transactions processed each week | AI GBS towers | contributing | Show it unchanged | Order events move the count by under a percent. A stale feed here is not worth marking the figure for. |
| Contract value under management | Legal cockpit | contributing | Show it unchanged | Opportunity value is a forecast, not a contracted value, and is excluded from the sum. |
| Work units under management | Subway map, function cockpit | contributing | Show it unchanged | Sales-side units are created in the platform rather than read from the source. |
A contract, a validation rule, a freshness commitment and a replay path are real mechanisms and they are what this wave builds. What they are not is a connection. No connector on this estate is attached to a customer instance, so every batch, every replay and every write-back attempt recorded here ran against a modeled extract or a sandbox, and the registry keeps saying modeled.
The last validation read 9,000 records 21 days ago, which is 43% of a single day at the declared volume. A sample proves the shape of what it read and nothing beyond it.