SFMC Personalisation

In Progress

Persona-based content personalisation powered by Salesforce Marketing Cloud, delivering tailored banners, related content, and GA4 tracking.

Member Portals

Complete

Stakeholder registration and login system with role-based Resource Hub access for Schools, Workplaces, and Professionals, with Foxy SSO integration.

E-Commerce Operations

Planned

Stock management, order workflows, reporting, and fulfilment process enhancements for the MHF webstore.

SFMC Personalisation — Business Requirements

Executive Summary

Integrate Salesforce Marketing Cloud (SFMC) personalisation capabilities with the MHF website to deliver tailored content based on visitor personas. This Phase 1 implementation delivers four personalisation components with graceful fallbacks for unrecognised visitors, enabling persona-driven content experiences and GA4 tracking for engagement measurement by segment.

Business Drivers

Improved User Engagement Delivering relevant content increases time on site, page views, and resource utilisation
Better Content Targeting Ensure the right mental health resources reach the right audiences
Data-Driven Decisions Measure content performance by persona to inform future content strategy
Platform Investment ROI Leverage existing SFMC investment to enhance the website experience

Business Objectives

ObjectiveSuccess MeasureTarget
Increase content relevanceEngagement rate by persona segmentBaseline + 15%
Enable persona-based reportingGA4 custom dimension tracking100% of page views tagged
Maintain consistent UXFallback content served when no persona100% graceful degradation
Establish personalisation foundationComponents delivered for Phase 14 components live

Scope

Phase 1 — MVP

  • Persona retrieval via SFMC API
  • Personalised banner carousel
  • Related content filtering (main area)
  • Related content pod (sidebar)
  • GA4 persona tracking
  • First-party cookie for persona storage
  • Fallback content for unrecognised visitors

Future Phases

  • Content editor training & onboarding
  • Additional personalised components
  • A/B testing capability
  • Enhanced segment definitions

Out of Scope

  • SFMC platform configuration
  • Real-time persona calculation on website
  • Personalisation of navigation or site structure
  • User authentication-based personalisation
  • Email personalisation
  • Mobile app integration

Constraints

  • First-party cookies only
  • No server-side SFMC calls on page render
  • Umbraco owns all content (SFMC provides persona data only)
  • Must maintain uSkinned design patterns
Risks & Dependencies

Risks

RiskLikelihoodImpactMitigation
SFMC API latency affects page performanceMediumHighClient-side async loading, no blocking renders
Low persona match rate limits impactMediumMediumEnsure fallback content is high quality
Cookie consent impacts persona availabilityMediumMediumClear consent flow, graceful degradation
Content editor adoption of persona taggingLowHighTraining, clear documentation, simple UX
Vendor delivery delays impact timelineMediumHighEarly engagement, clear milestones

Dependencies

DependencyTypeStatus
SFMC tracking beacon deployedExternal (Vendor)Complete
SFMC API endpoint availableExternal (Vendor)Complete
SFMC API documentation providedExternal (Vendor)Complete
Persona values definedExternal (Vendor)Complete
GA4 implementationInternalComplete
uSkinned Site Builder licenceInternalComplete
Cookie consent mechanismInternalTBC

SFMC Personalisation — Functional Requirements

Overview

Four personalisation components plus GA4 tracking, all with graceful fallback for unrecognised visitors.

F-01: Persona Retrieval & Storage
IDRequirementPriority
FR-01Retrieve persona value from SFMC via API call referencing tracking beaconMust Have
FR-02Store persona value in first-party cookie (mhf_persona)Must Have
FR-09Handle missing or expired persona cookie gracefullyMust Have
F-02: Personalised Banner Component
IDRequirementPriority
FR-03Render carousel item tagged with matching personaMust Have
FR-04Fall back to default carousel item when no persona matchMust Have
F-03 & F-04: Related Content (Main & Sidebar)
IDRequirementPriority
FR-05Related Content Component (main area) shall filter content based on persona-to-filter mappingMust Have
FR-05aRelated Content Pod (sidebar) shall filter content based on persona-to-filter mappingMust Have
FR-05bPod shall support placement via Extra Content tab or as template defaultShould Have
F-05: GA4 Persona Tracking
IDRequirementPriority
FR-06Send persona value to GA4 as custom dimension on page viewMust Have
Content Management
IDRequirementPriority
FR-07Content editors can tag content with persona/segment values in UmbracoMust Have
FR-08Administrators can configure persona-to-filter mapping in Global SettingsShould Have

SFMC Personalisation — Non-Functional Requirements

Performance

MetricTargetPriority
Page load impact< 100ms additionalMust Have
Persona retrieval< 500msShould Have
Personalised content render< 500ms after persona availableShould Have

Security & Privacy

RequirementDescriptionPriority
Cookie policyFirst-party cookies only — no third-party trackingMust Have
Consent complianceGDPR / cookie consent requirements respectedMust Have
No PIINo personally identifiable information stored in persona cookieMust Have
HTTPS onlyAll persona retrieval and storage over HTTPSMust Have

Accessibility & Reliability

MetricTargetPriority
WCAG compliance2.1 AA — no degradation from personalisationMust Have
Fallback success rate100% — site works fully when cookies blockedMust Have
Component availability99.9%Should Have

SFMC Personalisation — User Requirements

User Personas

R

Recognised Visitor

Identified by SFMC with assigned persona
"I see content that's relevant to my interests without having to search for it."
U

Unrecognised Visitor

New or anonymous user without persona
"The site works well and I can still find what I need."
E

Content Editor

MHF staff managing website content
"I can tag content for the right audience without needing technical knowledge."

User Stories

IDAs a...I want to...So that...Priority
US-01Recognised visitorsee banner content relevant to my interestsI engage with the most useful resourcesMust Have
US-02Recognised visitorsee related content filtered to my personaI discover resources matched to my needsMust Have
US-03Unrecognised visitorsee quality default contentmy experience is not degradedMust Have
US-04Content editortag content with persona valuesthe right content is shown to the right audienceMust Have
US-05Digital analystsegment engagement data by personaI can measure content effectiveness by audienceMust Have

Member Portals — Business Requirements

Executive Summary

A member portal system enabling registered stakeholders (Schools, Workplaces, and Mental Health Professionals) to access exclusive resources, place orders through Foxy.io e-commerce integration, and manage their accounts. The system provides role-based access to dedicated Resource Hubs with single sign-on to the Foxy customer portal for order management.

Business Drivers

Stakeholder Engagement Provide dedicated spaces for key audience segments
Resource Distribution Enable controlled distribution of specialised resources
E-commerce Integration Link member accounts to Foxy.io for seamless ordering
Self-Service Allow members to manage their accounts and view order history

Business Objectives

ObjectiveSuccess MeasureTarget
Enable stakeholder registrationSuccessful registrations across all typesBaseline established
Secure resource accessRole-based hub access working100% accurate routing
E-commerce integrationFoxy SSO functioning100% successful auth
Self-service account managementMembers can view ordersPortal accessible

Scope

MVP (Complete)

  • Stakeholder registration with email confirmation
  • Login with role-based redirect
  • Three member roles: Schools, Workplaces, Professionals
  • Email domain validation (.school.nz for Schools)
  • CAPTCHA protection & rate limiting
  • Foxy SSO for checkout & portal
  • Foxy customer sync on login
  • Logout with role-based redirect

Pending Enhancements

  • Registration redirect by stakeholder type
  • Professionals portal full support

Out of Scope

  • Member profile editing UI
  • Admin dashboard for member management
  • Bulk member import
  • API access for third-party systems
  • Multi-factor or social login

Future Considerations

  • Member profile editing through portal
  • Resource download tracking/analytics
  • Password-less authentication (magic links)
Risks & Dependencies

Risks

RiskLikelihoodImpactMitigation
Email deliverability issuesMediumHighMonitor SMTP, use reputable provider
Foxy API downtimeLowMediumGraceful fallback, retry logic
Rate limiting too aggressiveLowMediumConfigurable limits
Domain validation too restrictiveMediumMediumMaintain blocklist, allow exceptions

Dependencies

DependencyTypeStatus
Umbraco Members systemInternalComplete
Foxy.io API credentialsExternalComplete
SMTP configurationInternalComplete
Professionals roleInternalPending

Member Portals — Functional Requirements

Overview

Registration, authentication, role-based access, and Foxy.io integration for the stakeholder portal system. All MVP features are complete.

Registration & Authentication
IDRequirementPriorityStatus
FR-01Stakeholder registration with email, password, and stakeholder typeMust HaveComplete
FR-02Validate school email domains (.school.nz) for Schools typeMust HaveComplete
FR-03Block personal email domains (gmail, hotmail, etc.) for WorkplacesMust HaveComplete
FR-04Send email confirmation with activation linkMust HaveComplete
FR-05Require email confirmation before loginMust HaveComplete
FR-06Assign member to appropriate role on registrationMust HaveComplete
FR-07Authenticate members via email/passwordMust HaveComplete
FR-08Redirect to appropriate Resource Hub after loginMust HaveComplete
FR-12Support logout with role-based redirectMust HaveComplete
Security
IDRequirementPriorityStatus
FR-13Rate limiting on registration (5/10min)Must HaveComplete
FR-14Rate limiting on login (10/5min)Must HaveComplete
FR-15CAPTCHA verification (hCaptcha/reCAPTCHA)Must HaveComplete
Foxy.io Integration
IDRequirementPriorityStatus
FR-09Foxy SSO for checkout authenticationMust HaveComplete
FR-10Create/update Foxy customer on loginMust HaveComplete
FR-11Foxy portal access via SSOMust HaveComplete
Pending Enhancements
IDRequirementPriorityStatus
FR-16Registration redirect based on stakeholder typeShould HaveGap
FR-17Support Professionals as third stakeholder typeShould HaveGap

Member Portals — Non-Functional Requirements

Performance

MetricTargetPriority
Login completion< 2 secondsShould Have

Security

RequirementDescriptionPriority
Authentication loggingAll authentication events loggedMust Have
Password policyUmbraco default password policy enforcedMust Have
Email enumeration preventionSystem shall not reveal whether an email is registeredMust Have
Foxy SSO resilienceHandle Foxy API failures gracefullyMust Have

Member Portals — User Requirements

User Personas

S

School Educator

Teachers, counsellors, school staff
"I need mental health resources for my students, and I want to order in bulk for our school."
W

Workplace Professional

HR, wellbeing coordinators
"I need workplace mental health resources and professional materials for my team."
P

Mental Health Professional

Clinicians, practitioners
"I need access to clinical resources and professional development materials."

User Stories

IDAs a...I want to...So that...Priority
US-01School educatorregister for portal accessI can access school-specific resourcesMust Have
US-02Workplace professionalregister with my business emailI can order resources for my organisationMust Have
US-03Registering userconfirm my emailmy account is activated securelyMust Have
US-04School educatorlog in and go directly to the Schools Resource HubI see relevant content immediatelyMust Have
US-05Memberaccess the Foxy order portal via SSOI can view my order history without logging in againMust Have
US-06Mental health professionalregister and access a dedicated Resource HubI can find clinical and professional materialsShould Have

E-Commerce Operations — Business Requirements

Executive Summary

Enhance the MHF webstore operational capabilities to address five critical gaps identified in the current Umbraco/Foxy.io implementation: stock management, order modification, product configuration, reporting, and fulfilment workflow. Analysis reveals most gaps are configuration or training issues rather than fundamental capability gaps, with the notable exception of stock management which requires custom development.

Business Drivers

Operational Efficiency Staff need tools to manage orders and stock without manual workarounds
Stock Visibility Prevent overselling and enable proactive reprint planning
Supplier Independence Avoid lock-in to single fulfilment provider (Mailshop)
Data-Driven Operations Enable reporting on sales trends and stock levels for planning and compliance

Business Objectives

ObjectiveSuccess MeasureTarget
Stock visibilityOperator can view current stock levels100% of SKUs tracked
Order modificationOperator can adjust quantities post-orderDocumented workflow
Flexible product quantitiesCustomers select from predefined optionsConfigurable per product
Sales reportingItem-based sales reports availableWeekly reports
Fulfilment workflowMailshop integration documented and testedProcess operational

Scope

Phase 1 — MVP

  • Custom stock management system
  • Order modification workflow (training)
  • Product quantity tier dropdowns
  • Sales reporting training
  • Mailshop fulfilment workflow

Phase 2 — Enhancements

  • Looker Studio reporting dashboard
  • Stock reconciliation process

Phase 3 — Future

  • Bundle stock sync (custom development)
  • Automated Mailshop webhook integration
  • Advanced BI platform (if needed)

Out of Scope

  • ERP/MYOB integration
  • Salesforce CRM integration
  • Real-time courier tracking
  • Donation functionality
  • Bundle product creation (client-managed)
  • Customer shipping cost calculator
Gap Analysis Summary
GapTypeRemediation
Stock managementDevelopmentCustom inventory tracking in Umbraco with Foxy webhooks
Order modificationTrainingDocument workflow, provide Foxy admin training
Quantity optionsConfigurationConfigure Foxy product modifiers
Sales reportingTrainingDocument Foxy reports + Looker Studio dashboard
Fulfilment workflowProcessDefine CSV export workflow with Mailshop
Risks & Dependencies

Risks

RiskLikelihoodImpactMitigation
Split fulfilment causes stock discrepanciesHighMediumRegular reconciliation process with Mailshop
Webhook integration complexityMediumMediumTest with Foxy sandbox, reference existing patterns
Mailshop workflow frictionMediumMediumClear documentation, regular review
Reporting inadequate for funding complianceLowHighLooker Studio dashboard, document requirements
Staff unfamiliar with Foxy adminHighMediumTraining and documentation

Dependencies

DependencyTypeStatus
Foxy account admin accessInternalComplete
Product SKU listInternal (MHF)To be provided
Mailshop CSV format agreementExternalTo be confirmed
Mailshop stock reporting formatExternalTo be defined
Training session availabilityInternal (MHF)To be scheduled

E-Commerce Operations — Functional Requirements

Overview

Nine features spanning custom development, configuration, training, and process definition. F-04 (Bundle Products) has been removed from scope as the client can manage this configuration directly.

F-01: Stock Management System (Custom Development)
IDRequirementPriority
FR-01Inventory properties added to product content type in UmbracoMust Have
FR-02Stock quantities manageable in Umbraco backofficeMust Have
FR-03Out-of-stock products automatically hidden/disabledMust Have
FR-04Foxy quantity_max attribute set from current stockMust Have
FR-05Webhook endpoint receives Foxy transactions and decrements stockMust Have
FR-06Low stock email notifications triggered at thresholdShould Have
FR-07Stock levels viewable/exportable for reportingMust Have
F-02: Order Modification Workflow (Training)
IDRequirementPriority
FR-08Workflow documented: pending → review → modify → fulfilMust Have
FR-09Foxy admin order editing demonstratedMust Have
FR-10Training provided to operatorMust Have
F-03: Product Quantity Options (Configuration)
IDRequirementPriority
FR-11Foxy product modifiers configured for quantity tiers (1, 5, 10, 20, 50, 100)Must Have
FR-12Umbraco product pages display dropdown correctlyMust Have
FR-13Maximum limits respected per productMust Have
F-05: Foxy Sales Reporting (Training)
IDRequirementPriority
FR-14Transaction and item sales reports documentedMust Have
FR-15CSV export procedure documentedMust Have
FR-16Training provided to operatorMust Have
F-06: Looker Studio Dashboard (Phase 2)
IDRequirementPriority
FR-17Looker Studio dashboard with item-based sales visualisationShould Have
FR-18Stock level indicators and trend analysisShould Have
FR-19Campaign comparison (PSD, MHAW)Should Have
FR-20Data refresh procedure documentedShould Have
F-07: Mailshop Fulfilment Workflow (Process)
IDRequirementPriority
FR-21Workflow documented: order → review → export → send → fulfil → updateMust Have
FR-22CSV export format defined and agreed with MailshopMust Have
FR-23Delivery frequency defined (daily batch)Must Have
FR-24Mailshop agreement confirmedMust Have
F-09: Bundle Stock Sync (Future — Phase 3)

Automatic decrement of component stock when bundles are sold. This is the only part of the bundle feature requiring custom development — creating and selling bundles is configuration the client handles directly.

IDRequirementPriority
FR-25Webhook detects bundle SKU ordersCould Have
FR-26Component SKUs identified from bundle mappingCould Have
FR-27Component inventory decremented automaticallyCould Have
FR-28Error handling for stock conflictsCould Have

E-Commerce Operations — Non-Functional Requirements

Performance

MetricTargetPriority
Inventory update latencyReal-time (via Foxy webhook)Must Have
Report generation< 30 secondsShould Have
Dashboard load time< 5 secondsShould Have
Campaign peak support1,000–2,000 orders/day (PSD, MHAW)Should Have

Security

RequirementDescriptionPriority
Foxy admin accessLimited to authorised operatorsMust Have
CSV exportsHandled securely (no public sharing)Must Have
Webhook validationHMAC signature verification on all Foxy webhooksMust Have

Reliability

MetricTargetPriority
Foxy uptime99.9% (SLA)Should Have
Inventory accuracy95%+ (with reconciliation)Should Have

E-Commerce Operations — User Requirements

User Personas

Z

Zooey

Webstore Operations Manager
"I need somewhere to put stock information, and I need it to track stock."
M

Mailshop Staff

Fulfilment Partner
"We need the data to import into the courier system."
B

Bulk Orderer

School counsellor, HR, health provider
"I need 50 of each pamphlet — can I just select that from a dropdown?"
I

Individual Seeker

General public
"I just want one or two pamphlets about anxiety."

User Stories

IDAs a...I want to...So that...Priority
US-001Webstore operatorview current stock levels for all productsI can plan reprints proactivelyMust Have
US-002Webstore operatorhave out-of-stock products automatically disabledcustomers can't order unavailable itemsMust Have
US-003Webstore operatorreceive low stock email alertsI know when to reorder before items run outShould Have
US-005Webstore operatormodify order quantities before fulfilmentI can accommodate approved bulk requestsMust Have
US-007Webstore operatorexport orders to CSV for Mailshopfulfilment can proceed without manual data entryMust Have
US-008Bulk ordererselect from predefined quantity tiersI can quickly order the right amountMust Have
US-010Individualorder small quantities simplyI get what I need without a complicated processMust Have
US-011Webstore operatorgenerate item-based sales reportsI can report on distribution for funding complianceMust Have
US-012Webstore operatorview sales trends over timeI can identify patterns and plan campaignsShould Have
US-014Mailshop staffreceive orders in an importable CSV formatI can process shipments without re-keying dataMust Have