CTR-MKT-AUTOMATION · version 1
Marketing Automation — Campaign engagements
Consent is the whole question. An engagement feed under a consent basis needs a withdrawal path that propagates into the platform, and none exists.
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
5 fields · 1 key · 2 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 |
|---|---|---|---|---|---|---|
| Activity id | activity.id | engagement.ref | string(24) | keyinternal | Never checked | Source-generated. |
| Campaign id | campaign.id | engagement.campaignRef | string(24) | internal | Never checked | Must resolve to a campaign. |
| Activity type | activity.type | engagement.kind | enum(12) | internal | Never checked | Twelve declared types. |
| Person id | lead.id | engagement.personHash | string(64) | nullablepersonalrestricted | Never checked | Pseudonymized, nullable for anonymous engagement. The consent basis is why the privacy review is open. |
| Consent state | lead.consentStatus | engagement.consentState | enum(4) | personalrestricted | Never checked | Must be present on every non-anonymous row. A missing consent state rejects the record outright rather than quarantining it. |
What has passed the staging boundary against this contract
1 batch · 5,610 arrived · 5,406 admitted · 0 quarantined · 204 rejected
| Batch | Arrived | In | Admitted | Quarantined | Rejected | Result | Gate |
|---|---|---|---|---|---|---|---|
| STG-0025 | Aug 18, 07:00 | 5,610 | 5,406 | 0 | 204 | Partly admitted | 5,406 admitted · 0 quarantined · 204 rejected outright. |
Rejects raised against these batches
1 reason covering 204 records. Each one names a field, what was observed and what the contract expected.
Replay windows
No replay has been requested against this contract.
Write-back routes into this system
1 route designed against Marketing Automation.
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.
This contract has never been validated against a sample. Every type, every cardinality statement and every validation rule on this page is a declaration taken from documentation, not an observation. Its drift state is unknown rather than clean.