Executive Progress Report · Wk 8 close

SOW HLT-DC-MCN-001 · Confidential

SOW HLT-DC-MCN-001 · Wk 8 close

Data Cloud & Marketing Cloud Next
Wk 8 close · Engagement complete

Prepared for James · Ku · Simon · Ash · 12 Jun 2026 · Wk 8 close (4–10 Jun) + Wk 9 post-SOW workshop delivery · 8 of 8 weeks complete · ✅ F-20/2026 sent · SOW fully invoiced

8 of 8
Weeks Complete
SOW closed · workshop delivered 12 Jun
PILOT READY
MCN E2E architected
15-slide deck · 5 UI playbooks shipped
5
Prod streams cleared
SFMC Bounce 1.4M deleted · MC conn recreated
18.13M
Consent records ready
UMA pipeline live · OPT_IN 14.6M · OPT_OUT 3.5M
£20k
✅ Fully invoiced
4 of 4 sent · F-14/15/16/20 · awaiting payment
SOW Closed · Pilot End-to-End Architected · ✅ F-20/2026 Sent (SOW fully invoiced)
29.0h
Wk 8 actual
8 of 8
Weeks delivered
15
Slides MCN pilot deck
5 PRs
Merged Thu 11 alone
F-20
Sent · pending payment

Wk 8 (4–10 Jun · 29.0h · +9.0h over cap absorbed): Mon 8 — pilot PG/UG segments built with Identity Link bridge fix · cross-DMO filtered segment authoring confirmed UI-only path (Visual creationFlow API returns 403 EXTERNAL_RESOURCE_FORBIDDEN for external users). Tue 9 — prod SFMC Bounce cleanup breakthrough: re-reading the platform validation error revealed a 2nd action path · built CSV stub populator on ssot__EmailEngagement__dlm · 5 streams DELETED including 1.4M-row Bounce wedged since 21 May · DC MC connection disabled + deleted + recreated · UMA install handed to Jess via AppExchange. Wed 10 — pilot re-audit + 3 Workshop Flows cleared + flow-rebuild playbook drafted + MyStudents partialQA companion ready relayed.

Wk 9 Day 1 (Thu 11 Jun · 10.0h · post-SOW workshop delivery extension): MCN pilot prep · token render debug confirmed Pillar_Lead_DataGraph materialised (Query Editor explore on Intira UnifiedRecordId · NOT 0-row SOQL on internal fragment DMOs as initially suspected) · Filter+Sort dialog discovered as documented MCN UX for OneToMany Data Graph resolution · Preference Page setup path verified (Step 1c in Consent app · NOT Setup as one might assume). End-to-end 15-slide deck shipped in Hult brand format via existing render pipeline. 5 UI playbooks in audit/phase-4/_handoff/ for Jonatan + Jess execution.

Workshop Fri 12 Jun: live walkthrough of the production-ready architecture with stakeholders · 15-slide deck covers source → Snowflake → DC → MCN end-to-end · Identity Resolution rationale · BDT canvas pattern · token Filter+Sort dialog · consent pipeline (CRM → UMA pkg → 18.13M records) · Preference Center setup. ✅ F-20/2026 SENT post-workshop · closes the 20,000 EUR equivalent SOW · all 4 invoices pending payment.

Where Each Team Is at Engagement Close
BI · Snowflake
Hristo · Chris
  • 3 SNOW_GLD_* tables in prod (Individual_Unified 18.1M · Application_Program_Preference 3.5M · Campus_Preference 3.5M)
  • Individual stream PK collision fix — recreate stream with individual_id__c PK · fix path documented · execution pending
  • Silver R1+R2 filter dbt models (drop 3.4M converted + 21k ghost leads per #312 lock)
  • GA ID fields inventory on Lead + Contact (Phase 2 anonymous→known stitch)
MAT · Marketing
Polly · Simon · Ash
  • Workshop 4 Jun delivered + Workshop 12 Jun (today)
  • Consent CRM-as-source-of-truth proposed + 356k delta diagnosed via UMA pipeline (18.13M consent records · OPT_IN 14.6M · OPT_OUT 3.5M)
  • Polly TOTAL_REPLACE seed enrichment — Programme brochure URLs + Staff phone/photo/calendly
  • 3 v3/v4 emails in CMS workspace · 23-token Filter+Sort dialog config (~25 min UI work · playbook ready)
  • Preference Page setup (Step 1a Setup → Marketing Features · Step 1c Consent app → Set as Default)
DC Config
Jess
  • Prod SFMC Bounce cleanup breakthrough — 5 streams deleted including 1.4M Bounce wedged since 21 May
  • DC MC connection disabled + deleted + recreated (Steps 1-3 of SF Support 4-step plan)
  • UMA install via AppExchange (Marketing Analytics + Marketing Performance + Flow Performance) · Step 4 of 4 · gates Flow Performance dashboard
  • HULT-22242 sandbox 4-layer block argument — SF Engineering response pending
  • 3 Workshop Flows rebuild via UI (per flow-rebuild-stepbystep-10jun.md)
Ohana Cloud
Jonatan
  • MCN pilot architected end-to-end · 2 segments published (2.07M PG + 825k UG · 2.9M addressable)
  • 6 emails in CMS workspace (v3 + v4 clones) · MCP wrapper contentType bug worked around via /clone endpoint
  • 15-slide MCN pilot deck · Hult brand format · IR + BDT + Token Resolution SVGs + Preference Center + HasOptedOut linkage
  • 5 UI handover playbooks in audit/phase-4/_handoff/ (DG token Filter+Sort · Preference Page · Flow rebuild · 3 email HTML drop-ins)
  • Token render path verified (Filter+Sort dialog · Nishantha test user UnifiedRecordId 48c901c5…)
  • ✅ F-20/2026 invoice SENT (Wks 7+8 · 5,000 GBP equiv) — closes 20K EUR SOW · all 4 invoices pending payment
5 Streams Deleted · MC Connection Recreated · UMA Install In Flight

Tue 9 Jun · 8.0h. Months-blocked SFMC Bounce stream (1.4M rows · ERROR since 21 May) cleared via stub-populator workaround. Platform validation error read twice this week revealed a 2nd action path — "link another data stream to the object with mappings to these fields" — built CSV stub Stub_EmailEngagement_Populator.csv (8 cols mapping the 7 wedged DMO fields + BounceDate) · uploaded as new data stream · 2nd populator established on ssot__EmailEngagement__dlm · original Bounce stream unmapped successfully · DELETED.

StreamStatus beforeActionStatus after
SFMC_Email_Engagement_Bounce_5230009691.4M rows · ERROR since 21 MayStub-populator workaround + unmap originalDELETED
DV_JobActive siblingInventory + cascade deleteDELETED
Event_Pillar_UnionActive siblingInventory + cascade deleteDELETED
Event_Pillar_Union_DVActive siblingInventory + cascade deleteDELETED
Staging_DV_subscriberActive sibling · UI cascade raceMapping-first manual sequence (d360 MCP)DELETED
MC Connection Salesforce_Marketing_Cloud_NA1Original connection brokenDisabled + deleted + recreated cleanlyRECREATED
UMA package install (Step 4 of 4)Required for Flow Performance dashboardAppExchange handover to Jess · install in flightIN PROGRESS
Every Layer Built · Token Render Path = MCN UI Config
LayerBuiltStatus
SegmentsWorkshop_PG_Announce_Lead_FINAL (2,070,683 PG) + Workshop_UG_Announce_Lead_FINAL (825,128 UG) · published · SM tables populatedREADY
Identity ResolutionUnifiedIndividual__dlm · 18.16M records · IR ruleset live · bridge IndividualIdentityLink__dlm OneToManyREADY
Data GraphPillar_Lead_DataGraph · UnifiedIndividual primary · Bridge to ssot__Individual → GLD_PERS_CAMPUS + GLD_PERS_PROGRAMME · materialisation confirmed via Query Editor exploreREADY
CMS Emails6 records (v3 originals + v4 clones via /clone endpoint workaround) · PG MBA + PG Masters + UG BBA · 7 + 7 + 9 merge tokensCREATED
Consent pipeline18.13M records via UMA installed pkg (UMsgConsentProd v1.5) · OPT_IN 14.6M · OPT_OUT 3.5M · MCN auto-gates send by consentREADY
MC ConnectionTenant 523000969 · stack s4 · cleaned + recreated 9 Jun · UMA install in flightREADY
Token renderPer-token Filter+Sort dialog config (~25 min UI work for 23 tokens · playbook ready) OR Default Personalization Data Graph assignmentUI config pending
Preference PageStep 1a Setup → Marketing Features → toggle ON · 1b Landing Page · 1c Consent app → Set as Default · Variant A footer (OptOutUrl only) works nowUI config pending
Flows3 old Workshop Flows deleted Wed 10 · UI rebuild per flow-rebuild-stepbystep-10jun.md playbookUI rebuild pending
5 Architectural Decisions Confirmed
SourceDecisionStatus
Pilot re-audit (Wed 10)3 Workshop Flows deleted via UI · clean slate for rebuild against new DG schemaLOCKED
Prod cleanup (Tue 9)Stub-populator workaround is the canonical pattern for clearing wedged DMO-dependent streams · documented in audit/phase-2/_handoff/stub-stream-create-instructions-9jun.mdLOCKED
Pilot debug (Thu 11)DG materialisation probe = Query Editor explore (NOT SOQL on internal fragment DMOs which return 0 rows by design)LOCKED
MCN UX (Thu 11)Token render path = Filter+Sort dialog per token (documented MCN UX for OneToMany Data Graph traversal · prefer over array-indexer hacks)LOCKED
Preference Page (Thu 11)Default Preference Page assignment lives in Consent app (NOT Setup as one might assume) · 3-step setup verified against SF Help docsLOCKED
What's Shipped This Week
TypeArtifactStatus
DC sandboxPilot segments published — PG 1sgbb0000000ocjAAA (2.07M) + UG 1sgbb0000000oeLAAQ (825k)ACTIVE
DC sandbox6 emails in CMS workspace (v3 originals + v4 clones) — PG MBA + PG Masters + UG BBACREATED
DC prod5 SFMC streams deleted (Bounce 1.4M + 4 siblings) · MC connection recreated · UMA install in flightCLEARED
Deckp5-mcn-pilot-deck · 15 slides · 4.1 MB · Hult brand format · IR + BDT + Token Resolution SVGs + Preference Center + HasOptedOut linkageSHIPPED
Playbookdg-personalization-tokens-playbook-11jun.md · 23-token Filter+Sort dialog steps · ~25 min UI workSHIPPED
Playbookpreference-page-and-footer-11jun.md · 3-step Pref Page setup + Variant A/B footer HTMLSHIPPED
Playbookflow-rebuild-stepbystep-10jun.md · 3 DC-triggered Flow UI rebuild pathSHIPPED
Playbookjess-uma-install-handover-9jun.md · UMA AppExchange install order + smoke testSHIPPED
Session log2026-06-11-pilot-prep-workshop-12jun.md · 6 threads · 10h prep day capturedCOMMITTED
AuditBounce stream DE linkage evaluation (corrected root cause) + stub stream create instructionsCOMMITTED
PRs11 PRs merged Wk 8 + Wk 9 D1 (#352 #353 #354 #355 #356 #357 #358 #359 #360 #361 #362 #363)MERGED
2 Items for Engagement Close
#ItemDecision neededWhen
1 ✅ F-20/2026 SENT (Wks 7+8 · 5,000 GBP equiv) F-20/2026 sent post-workshop · pending payment. All 4 invoices now in finance queue: F-14 + F-15 sent 15 May · F-16 sent end Wk 6 · F-20 sent post-workshop. Numbering jump F-16 → F-20: Ohana invoice book is sequential across all clients · F-17/18/19 issued to other clients between Hult F-16 (end Wk 6) and this invoice. SOW fully invoiced. ✅ Done
2 SF Engineering response pressure HULT-22242 sandbox (sent Mon 1 Jun · 4-layer block argument · 78-object dependency tree · awaiting SF Engineering call) + CI Email Engagement deadlock prod ticket (draft ready). Both bottom out at platform-side cleanup that customer APIs do not expose. Decision: continue waiting for SF or escalate via Premier Support / Account team. Ongoing
✅ £20,000 SOW Fully Invoiced · 4 of 4 sent (F-14/15/16/20) · Net-Absorbed +63.3h
WkDatesHoursInvoiceStatus
1+216-29 Apr64.5hF-14 (GBP reissue)Sent 15 May · pending payment
3+430 Apr-13 May61.3hF-15 (GBP)Sent 15 May · pending payment
5+614-27 May39.0hF-16 (GBP)Sent end Wk 6 · pending payment
7+828 May-10 Jun48.5h (19.5 Wk 7 + 29.0 Wk 8)F-20/2026 (GBP)Sent · pending payment
Total · 8-wk SOW213.3h✅ £20,000 fully invoiced (F-14/15/16/20)+53.3h absorbed · cap rule honored
9 (post-SOW)11-12 Jun10.0h Thu 11 + workshop Fri 12No additional billingWorkshop delivery extension · absorbed
Grand total inc. workshop223.3h✅ £20,000 SOW fully invoiced · all 4 invoices pending payment+63.3h absorbed net

Wk 8 actual: 29.0h vs 20h cap (+9.0h absorbed). Wk 9 Day 1 Thu 11 Jun (10.0h prep) + Workshop Fri 12 Jun = post-SOW workshop delivery · absorbed as engagement-close extension · no additional billing per fixed-scope SOW cap. Cumulative engagement 223.3h delivered against 160h cap-equivalent (8 weeks × 20h). All overage hours align with engagement letter cap-rule — no overage billed.

5 Playbooks Ready · 23-Token UI Config = Critical Path
#HandoverOwner
1Pilot token render config — 23 merge fields × Filter+Sort dialog (~25 min UI work) · test with Nishantha (UnifiedRecordId 48c901c5… · MBA Dubai EMEA full data) · playbook dg-personalization-tokens-playbook-11jun.mdJonatan
23 Workshop Flows rebuild via UI · playbook flow-rebuild-stepbystep-10jun.md (175 lines · Trigger config · Decision split · Send_Email action · Save+Activate)Jess
3UMA install completion · Marketing Analytics + Marketing Performance + Flow Performance via AppExchange · playbook jess-uma-install-handover-9jun.md · gates Flow Performance dashboardJess
4Preference Page setup · Step 1a Setup → Marketing Features → Custom Preference Pages ON · 1b Landing Page Hult_Email_Preferences · 1c Consent app → Set as Default · playbook preference-page-and-footer-11jun.md · enables PreferenceCenterUrl footer tokenAsh + Polly
5HULT-22242 SF Engineering follow-up — sandbox 4-layer block · 78-object dependency · awaiting Engineering response · pair with Premier Support / Account team if no movementJess + James
SOW Delivered · Workshop Delivered · Pilot Architected · ✅ F-20/2026 Sent
Schedule
SOW closed on plan

Phases 1-5 delivered · workshop today closes the cycle · 8 weeks complete

Budget
Cap honored

✅ £20k SOW fully invoiced (4 of 4 sent) · 63.3h net absorbed · workshop ext. absorbed

Scope
No expansion

SOW §5 boundaries respected · 5 playbooks shipped for Hult team execution post-SOW

Risk
Amber

2 SF Engineering tickets pending · UMA install in flight · Hult team to execute UI config