Salesforce Marketing Cloud Personalization: 1:1 Experiences at Scale
True email personalisation is not putting someone’s first name in a subject line. It is sending the right message, with the right content, at the right time, based on what you actually know about that person. Salesforce Marketing Cloud provides the tools to do this at enterprise scale — but only if you understand how the different personalisation layers work and what data infrastructure each one requires.
This guide works through SFMC’s personalisation stack from basic to advanced, so you can identify which capabilities you’re using, which you’re underutilising, and what it would take to unlock the next level.
Layer 1: Merge Fields and Basic Personalisation
The starting point for SFMC personalisation is attribute substitution — pulling subscriber profile data into email content using merge fields.
In SFMC, the syntax for a basic merge field is:
%%FirstName%%
This pulls the value from the FirstName attribute of the contact’s All Subscribers profile or the relevant data extension. If the attribute is empty, the merge field renders blank — so it’s good practice to include a default value:
%%=v(@FirstName)=%%
Or, using AMPscript:
%%[
SET @FirstName = AttributeValue("FirstName")
IF EMPTY(@FirstName) THEN
SET @FirstName = "there"
ENDIF
]%%
Hi %%=v(@FirstName)=%%,
Basic merge fields are table stakes for any modern email programme. Subject line personalisation with first name typically lifts open rates modestly but meaningfully, and more importantly, it sets the expectation that your emails are relevant to the individual.
Layer 2: AMPscript for Dynamic Content
AMPscript is SFMC’s proprietary scripting language and the engine behind most meaningful email personalisation. It runs server-side at send time, meaning the logic is executed fresh for each recipient when their email is generated.
AMPscript can:
- Pull data from any data extension accessible to the sending business unit
- Perform conditional logic (if/then/else)
- Loop through records (e.g., display multiple products from a cart or order)
- Format dates, numbers, and strings
- Perform lookups across data extensions
Conditional Content with AMPscript
A common use case is showing different content blocks based on a contact’s segment or data attribute:
%%[
SET @segment = AttributeValue("CustomerSegment")
IF @segment == "VIP" THEN
]%%
<p>As one of our most valued customers, you have early access to our new collection.</p>
%%[
ELSEIF @segment == "Returning" THEN
]%%
<p>Welcome back — here's what's new since your last visit.</p>
%%[
ELSE
]%%
<p>Discover what our customers love most about us.</p>
%%[
ENDIF
]%%
This kind of conditional content is invisible to the recipient — they simply see the version relevant to them — but it dramatically increases relevance across a large, diverse list.
Data Extension Lookups
AMPscript’s LookupRows and Lookup functions let you pull data from any related data extension at send time. This is how product recommendations, order history references, and location-specific content are implemented:
%%[
SET @productName = Lookup("RecentPurchases", "ProductName", "SubscriberKey", _SubscriberKey)
]%%
<p>How are you enjoying your %%=v(@productName)=%%?</p>
For looping through multiple records (e.g., items in an abandoned cart), the FOR loop construct in AMPscript displays each item in a repeating block without knowing in advance how many items there are.
Layer 3: Content Builder Dynamic Content Blocks
SFMC’s Content Builder includes a visual dynamic content tool that allows non-technical marketers to set up content variations based on subscriber attributes without writing AMPscript.
In Content Builder, you create a dynamic content block by:
- Setting a default content version (shown to anyone who doesn’t match a specific rule)
- Creating additional content versions, each with a rule defining who sees it (e.g., “show this version when
Gender=Female” or “show this version whenCustomerTier=Gold”) - Ordering the rules by priority — the first matching rule wins
Dynamic content blocks are useful for simple attribute-based variations, but they have limits. Complex conditional logic — based on calculated fields, lookups across multiple data sources, or logic that depends on real-time data — still requires AMPscript.
A practical approach for most enterprise email programmes: use dynamic content blocks for segment-based creative variations (different hero images, different featured categories), and use AMPscript for product-level or behaviour-based personalisation.
Layer 4: Marketing Cloud Personalization (Formerly Interaction Studio)
Marketing Cloud Personalization (MCP) is a separate product within the SFMC suite that provides real-time, AI-powered next-best-action capabilities. It operates at a level of sophistication beyond standard AMPscript or dynamic content.
MCP maintains an individual-level profile for each known user based on:
- Website and app behaviour (tracked via MCP’s JavaScript beacon or SDK)
- Email engagement history
- Transactional data fed in via data ingestion feeds
- CRM data synced from Salesforce Sales Cloud or Service Cloud
Using these profiles, MCP can:
- Recommend the next-best product, content, or offer for each individual in real time
- Personalise website content to match email content (journey continuity)
- Trigger emails based on in-session behaviour (e.g., browse abandonment in near-real time)
- Provide Einstein-powered decisioning for which offer is most likely to convert for each individual
Implementing MCP in Email
MCP personalisation in email is typically implemented via an Open Time Email personalisation block — a special block that renders content dynamically when the email is opened (rather than at send time). This means the product recommendations, featured content, or offers in the email reflect what’s most relevant to the subscriber at the moment they open it, not when it was sent.
This is particularly valuable for emails that may sit in an inbox for several days before being opened. An abandoned cart email sent on Monday that references the prices and availability of items as they stood on Monday may be inaccurate by Thursday. An open-time block renders current prices and availability when the email is actually opened.
The Data Infrastructure That Makes Personalisation Work
None of SFMC’s personalisation capabilities work without clean, accessible, correctly structured data. This is where many enterprise implementations fall short — the platform is configured, but the data is not ready to support meaningful personalisation.
Data Extensions
All personalisation in SFMC beyond basic contact attributes requires data to be stored in data extensions (DEs). These are database tables you define and populate. A well-designed SFMC data model for e-commerce might include:
- Contact DE: Master contact attributes (customer tier, location, preferences)
- Purchase History DE: One row per order, linked to subscriber by key
- Product Catalogue DE: Product data for recommendation lookups
- Engagement Scoring DE: Calculated engagement scores updated regularly
Data extensions need to be kept current. Stale data produces irrelevant personalisation, which can actually damage trust. Ensure your data pipelines are writing fresh data to the relevant DEs before relying on them for personalisation logic.
Subscriber Keys and Data Relationships
SFMC links data across extensions via the subscriber key — a unique identifier for each contact. Ensuring your subscriber key strategy is consistent across all data sources (e-commerce platform, CRM, app) is fundamental. If the same person has different identifiers in different systems, data doesn’t join correctly and personalisation breaks.
Data Privacy and Suppression
Enterprise personalisation at scale requires robust data governance. SFMC’s publication lists and suppression lists handle opt-out management, but personalisation creates additional obligations: if a customer has exercised their right to data deletion under GDPR, their data must be removed from all data extensions used for personalisation, not just the All Subscribers list.
Measuring Personalisation Impact
To justify the investment in SFMC personalisation infrastructure, you need to measure its impact clearly:
- Personalised vs. non-personalised A/B tests: Control a holdout group that receives a generic version of the email, measure revenue and conversion rate difference
- Revenue per email sent: Track how this changes as personalisation depth increases across your programme
- Recommendation click-through rate: For product recommendation blocks, what percentage of recipients click a recommended item?
- Lift in repeat purchase rate: Are customers who receive personalised post-purchase sequences repurchasing at a higher rate than those who receive generic nurture?
SFMC’s personalisation stack is genuinely capable of delivering 1:1 email experiences at enterprise scale. The ceiling is high. But getting from basic merge fields to AMPscript-powered dynamic content to open-time MCP personalisation requires sustained investment in both platform configuration and data engineering.
At Excelohunt, we help enterprise brands unlock their SFMC personalisation capabilities — from auditing current data extension architecture to implementing AMPscript logic and MCP integration. If you’re not confident your SFMC programme is personalised at the level it should be, we can show you exactly what’s possible.
Related Excelohunt Services
Looking to implement these strategies with expert support?
- Salesforce Marketing Cloud — learn how we implement this for clients Get a free audit →
Want Us to Implement This for Your Brand?
Get a free email audit and see exactly where you're losing revenue.
Get Your Free Audit