SOW HLT-DC-MCN-001 · Confidential
Prepared for James · Ku · Simon · Ash · 5 Jun 2026 · Wk 7 wrap (28 May–3 Jun) + Wk 8 Day 1 workshop (4 Jun) · Day 50 of 56 · 89% through engagement
Wk 7 wrap (28 May–3 Jun · 19.5h · -0.5h under cap): 5 cross-org IR decisions locked with Chris + Hristo + Jess (Thu 28 May session) · v5 cross-org spec FINAL merged (4 normalised gold tables 1:1 with DC DMOs · PR #333) · Programme + Staff seeds added to make 3 of 3 Track B canonical seeds live in DC sandbox (PR #336) · Snowflake gold deploy (Chris) verified — 2 of 3 DLOs fully populated, 3rd (Individual_Unified) diagnosed with PK collision (fix path ready) · invoicing F-14 → F-20 sequence locked.
Wk 8 Day 1 workshop (Thu 4 Jun · 9h): MAT + MCN E2E pilot delivered end-to-end in DC sandbox — Segment Workshop_PG_Announce_Demo ACTIVE · EmailContent created · Flow Workshop_PG_Announce_Send_Flow Draft segment-triggered · CI Microsoft_Email_Detection_By_Campus__cio ACTIVE · MCN merge tokens resolving via Data Graph. Consent session with Simon + Ash: CRM-as-source-of-truth proposed, pending BI root-cause on 356k delta. Post-workshop roadmap committed with 7 priorities P1-P7 (`p4-89` spec).
Two functionally distinct SF Support cases (both evidence-ready): (1) HULT-22242 / #294 sandbox case — V1/V3 Data Kit field-naming mismatch on Lead/Account/Contact bundle streams · 78-object dependency tree on Individual Match 1 IR ruleset · sent Mon 1 Jun · 6 Jun update with 3-layer SObject error chain · awaiting SF Engineering. (2) NEW: prod CI deadlock case (5 Jun · tasks/sf-support-ticket-ci-deadlock.md) — circular Key Qualifier reference between 2 Email Engagement CIs in prod · part of MC connector reinstall (#80) which gates UMA packages (Marketing Analytics + Marketing Performance + Flow Performance). Different org, different bug, different root cause — lodged separately so SF Engineering can action each cleanly.
SNOW_GLD_* tables deployed to prod (Individual_Unified 18.1M · Application_Program_Preference 3.5M · Campus_Preference 3.5M)account_id__c rejects 14.6M NULL leads + collapses 3.5M Contacts to 1,213 distinct Account FKs · fix path: recreate stream with individual_id__c or source_id__c PKp4-89): seed extensions · DMO+DSDMFM build · Data Graph R6+R7 · per-row formula gating · Staff Assignment matrix · Opportunity BDTp4-89-bdt-roadmap-post-workshop.md · 7 priorities P1-P7 with owners + ETAs| Ticket | Workstream | Owner | Status |
|---|---|---|---|
| Salesforce / Platform Escalations | |||
| HULT-22242 / #294 SANDBOX | 331 orphan DLO fields blocking Lead/Account/Contact stream activation in sandbox · 4-layer circular block argument sent Mon 1 Jun · 78-object dependency tree (48 segments · 21 CIs · 3 Data Graphs owned by Automated Process · bottoms out on standard platform DMOs) · awaiting SF Engineering call | SF Support · Jess | HIGH · open |
| CI Cleanup (5 Jun) PROD | 2 Email Engagement CIs (Last7D_UniqueEmailOpens_All/Converted) wedged in DELETE_FAILED in prod org · circular KQ reference on shared ssot__EmailEngagement__dlm.KQ_IndividualId__c · 14 API paths exhausted · separate SF Support case (different bug from HULT-22242) · part of prod MC connector reinstall chain (#80) which gates UMA packages (Marketing Analytics, Marketing Performance, Flow Performance) | Jonatan · SF Support | Draft ready |
| MCN Cutover · Email Sending | |||
| GH #80 | MC connection recreation + UMA packages reinstall · gates email personalisation in prod MC · gated on HULT-22242 resolution | Jess | Blocked on SF |
| Workshop MCN E2E | Segment + EmailContent + Flow + CI built LIVE in sandbox · merge tokens resolving · ready for first test send when Flow activated | Jess + Ash + Jonatan | Live · awaiting send |
| GH #219 | MCN deliverability — IP warming · subdomain reputation · Classic→Next sending strategy | Ash + Polly | Pending |
| GH #83 | Sender profiles + Reply Mail Management — per-campus sender setup | Ash | Pending |
| Preference Center · Consent | |||
| GH #79 + Consent | CRM-as-source-of-truth proposed at Thu 4 Jun session · 356k delta CRM (730k opted-out) vs SFMC live (374k) requires BI root-cause via Ash + Chris before pilot launch · Classic-vs-Next preference page conflict deferred to separate session | Simon + Ash + Jonatan | In flight |
| GH #221 | MCN Preference Center config — Next-native page + CloudPage migration cutover | Ash + Simon | Pending |
| GH #289 | Dual preference centre — planning session | Ash + Simon | Planning |
| Canonical Layer · Post-Workshop | |||
| GH #312 + p4-89 | 3 of 3 Track B seeds LIVE in DC sandbox (Campus + Programme + Staff) · workshop established marketing-team autonomy pattern · 7 post-workshop priorities P1-P7 in spec (seed extensions · DMO+DSDMFM build · Data Graph R6+R7 · per-row formula gating · Staff Assignment matrix · Opportunity BDT) | Jonatan + Polly + Jess | Live · roadmap |
| Session | Decision | Status |
|---|---|---|
| #312 Cross-org IR Thu 28 May · Chris+Hristo+Jess |
R1 drop 3.4M converted leads at Snowflake silver layer | LOCKED |
| R2 drop 21k ghost leads at silver layer | LOCKED | |
| Snowflake = noise removal · DC IR = cross-row identity merging (layer-of-responsibility lock) | LOCKED | |
| Marketing autonomy for canonical seed CSV uploads to DC | LOCKED | |
| Multi-approach exploration Track A (dbt) vs Track B (DC native) · workshop Wk 8 | LOCKED | |
| Spec refinement Thu 28 May EOD |
p2-312 v5 normalised 4-table model (supersedes v4 single-table) · 1:1 DLO→DMO | LOCKED |
| Invoicing numbering F-14 → F-20 sequence (NOT INV-XXX naming) | LOCKED | |
| Workshop MAT Thu 4 Jun |
6-layer architecture pattern adopted (Bronze/Silver/Gold/DC ingestion/DC marketing transforms/CIs) | LOCKED | P1-P7 post-workshop roadmap committed (seed extensions · DMO+DSDMFM build · Data Graph R6+R7 · per-row formula gating · Staff Assignment matrix · Opportunity BDT) | LOCKED |
| Consent · Simon+Ash Thu 4 Jun |
CRM-as-source-of-truth for opt-out conflicts (Jonatan proposed · pending BI root-cause) | PROPOSED |
| 356k delta investigation gating pilot launch (Ash + Chris) | IN FLIGHT |
| Type | Artifact | Status |
|---|---|---|
| MCN sandbox | Segment Workshop_PG_Announce_Demo · PG INNER JOIN GLD_PERS_PROGRAMME + GLD_PERS_CAMPUS · 18.1M flagged | ACTIVE |
| MCN sandbox | EmailContent · 10+ merge tokens resolving via PG_Pillar_Lead_DataGraph | CREATED |
| MCN sandbox | Flow Workshop_PG_Announce_Send_Flow · Draft segment-triggered · v2 post timezone+startDate fix | DRAFT |
| MCN sandbox | CI Microsoft_Email_Detection_By_Campus__cio · Hotmail/Outlook/Live/MSN aggregation by campus | ACTIVE |
| DC sandbox | 3 of 3 Track B seeds (Campus 8 rows + Programme 9 rows + Staff 12 rows) · DLO+DMO+DSDMFM 1:1 · queryable end-to-end | ACTIVE |
| Spec | p2-312 v5 cross-org IR spec FINAL · 4 normalised gold tables · 1503 lines (PR #333) | MERGED |
| Spec | p4-89 BDT roadmap post-workshop · 7 priorities P1-P7 (PR #347) | MERGED |
| Spec | Programme + Staff seeds v3 SFMC-verified (PR #336) | MERGED |
| Deck | MAT session deck slides 34-36 · pipeline + IDs + demo walk-through (PR #347) | COMMITTED |
| Session log | Workshop MAT + MCN pilot 4 Jun (PR #349) · Consent session Simon+Ash CRM-as-source-of-truth (PR #348) | COMMITTED |
| Escalation | HULT-22242 / #294 SF Support reply with 4-layer block + 78-dependency table sent Mon 1 Jun | AWAITING SF |
| Escalation | 2nd SF Support ticket draft — CI Email Engagement deadlock (14 API paths exhausted) | DRAFT READY |
| Audit | Chris Snowflake gold deploy audit · 3 SNOW_GLD tables · Individual PK collision diagnosed | COMMITTED |
| PRs | 14 PRs merged Wk 7 + Wk 8 D1 (#326 #327 #328 #329 #330 #333 #335 #336 #347 #348 #349 #350 #351 + this report) | MERGED |
Workshop Thu 4 Jun demoed the full 6-layer architecture end-to-end with real data: 18.1M Individuals + 3M Programme Prefs + 3M Campus Prefs federated zero-copy · BDT vs CI tradeoffs compared (Microsoft email exclusion CI active) · Campus + Programme personalisation BDT chains live · Data Graph → Segment → Flow chain wired. Marketing-team autonomy pattern validated — seed maintenance + BDT authoring within MAT without engineering bottleneck. Workshop recorded as MAT reference guide. 7-priority roadmap (P1-P7 · p4-89 spec) captures the remaining 30% gap.
Two functionally distinct platform bugs surfaced as SF Support cases: (a) HULT-22242 sandbox is a V1/V3 Data Kit field-naming mismatch on Lead/Account/Contact bundle streams (orphan `_c__c` legacy fields blocking activation · sandbox-only); (b) prod Email Engagement CI deadlock is a circular Key Qualifier reference between two CIs · part of MC connector reinstall chain (#80) which gates UMA packages (Marketing Analytics + Marketing Performance + Flow Performance). Different org, different bug, different root cause — but both have been exhaustively API-tested (12+14 paths respectively) and bottom out at platform-side cleanup that customer APIs do not expose.
Implication for cutover: the workshop established the technical pattern works · the marketing team can self-serve · the post-workshop 7-priority roadmap closes the remaining gaps. Remaining critical-path is SF Engineering response on HULT-22242 (gates #80 MC connection recreation) + Polly's seed enrichment for the first real send.
| # | Item | Decision needed | When |
|---|---|---|---|
| 1 | SF Engineering escalation pressure on HULT-22242 + 2nd CI deadlock ticket | Two functionally distinct SF Support cases to push this week: (a) HULT-22242 / #294 sandbox — V1/V3 Data Kit field-naming mismatch on Lead/Account/Contact bundle streams · sent Mon 1 Jun · 6 Jun 3-layer SObject error chain update sent. (b) Prod CI Email Engagement deadlock (NEW) — circular KQ reference on EmailEngagement DMO · part of MC connector reinstall chain (#80) which gates UMA packages (Marketing Analytics, Marketing Performance, Flow Performance). Lodged as separate cases so SF Engineering can action each org cleanly. Decision: confirm engineering-call route or escalate via Premier Support / Account team. | This week |
| 2 | F-20 issuance (Wks 7+8 · 5,000 GBP) | Approve sending to finance at end of Wk 8 (week of 10 Jun). F-14 + F-15 sent 15 May · F-16 sent end Wk 6 · all 3 pending payment. F-20 will close out the 20,000 EUR equivalent SOW. Standard process: finance inbox · CC James for priority. | End Wk 8 |
| Wk | Dates | Hours | Invoice | Status |
|---|---|---|---|---|
| 1+2 | 16-29 Apr | 64.5h | F-14 (GBP reissue) | Sent 15 May · pending payment |
| 3+4 | 30 Apr-13 May | 61.3h | F-15 (GBP) | Sent 15 May · pending payment |
| 5+6 | 14-27 May | 39.0h | F-16 (GBP) | Sent end Wk 6 · pending payment |
| 7+8 | 28 May-10 Jun | ~28.5h (19.5 + 9.0) | F-20 (GBP) | Pending end Wk 8 |
| Total | 193.3h | £15,000 sent · £5,000 to send (F-20) | +54.3h absorbed · cap rule honored | |
Wk 7 actual: 19.5h vs 20h cap (-0.5h under). Wk 8 Day 1 (Thu 4 Jun workshop): 9.0h. Cumulative engagement 193.3h delivered against 160h cap-equivalent (8 weeks × 20h). All absorbed hours align with engagement letter cap-rule — no overage billed.
| # | Item | Owner |
|---|---|---|
| 1 | Activate Workshop_PG_Announce_Send_Flow for first test send when QA passes · validates MCN sandbox E2E end-to-end with a real send | Jonatan + Jess |
| 2 | SF Engineering escalation push — pair HULT-22242 + CI Email Engagement tickets · target engineering call this week | James + Jess + Jonatan |
| 3 | Polly TOTAL_REPLACE seed enrichment — Programme brochure URLs (Masters/DBA/OnlineMasters) + Staff phone/photo/calendly/bio/reply_inbox · unblocks BDT outputs for real campaigns | Polly |
| 4 | 356k consent delta BI root-cause analysis · gates consent pilot launch | Ash + Chris |
| 5 | Individual stream PK fix in DC sandbox (recreate stream with individual_id__c PK) · unblocks Individual_enrich BDT scenario | Chris + Jonatan |
| 6 | Share DC segment limits documentation (count + concurrency) — Workshop action item #1 | Jonatan |
| 7 | Schedule 30-min follow-up workshop (email creation deep-dive) — Workshop action item #2 | Jonatan + Polly |
| 8 | F-20 invoice issuance (Wks 7+8 · 5,000 GBP · closes 20,000 EUR equivalent SOW) — with James approval end Wk 8 | Jonatan + James |
Phase 4 workshop delivered · Phase 5 (validation + handover) starts this week
75% sent · 54.3h net absorbed · F-20 closes SOW
SOW §5 boundaries respected · post-workshop roadmap captures post-engagement work
2 SF Engineering tickets pending · MCN cutover gated · all evidence-ready for escalation