In today’s world, potential customers are inundated with information. To stand out, marketers must forge a genuine connection with each potential customer, building trust through authentic, thoughtful audience interactions.
One proven way to achieve that is by personalizing key pieces of each visitor’s content journey. Industry research underscores this shift, analyst firm Forrester finds:
And the stakes are high. B2B buyers now complete most of their journey before ever engaging a salesperson – only about 5% of the buyer’s journey is spent with a sales rep – meaning your content often has to do the heavy lifting. Personalization has evolved from a “nice-to-have” into a critical strategy for any B2B marketer looking to maximize impact and ROI.
Key Benefits of Personalized Content
Higher Engagement & Conversion Rates: Personalized content resonates with buyers’ specific interests and pain points.
Better Customer Experience & Trust: When content is tailored, customers feel understood rather than sold to. Rather than irrelevant spam, they receive helpful information that aligns with their needs, which builds goodwill.
Higher ROI and Revenue Growth: By focusing marketing efforts on what each segment truly cares about, companies waste fewer resources and convert more leads into deals. McKinsey estimates that personalization can lift revenues by 5–15% and increase the marketing ROI by 10–30% on average.
Relevance Across Stakeholders and Segments: In B2B sales, purchase decisions often involve multiple players (on average six stakeholders per deal), each with different priorities. Personalization enables you to address each role or segment with content that matters to them – whether it’s a CTO looking for technical details or a CFO seeking business outcomes.
Competitive Differentiation: Delivering a personalized experience can set your brand apart in a crowded marketplace. Buyers are more likely to remember and favor a vendor that provides relevant, useful content over one pushing generic brochures.
Eager to put personalization into practice? At dotCMS we have personalization capabilities used by companies across industries – from finance and healthcare to government, retail, and heavy industry – to deliver tailored content at scale.
How it’s done in dotCMS
Below is a short, simple step by step example for setting up an AI driven personalized experience using dotCMS.
Determine your goal.
For our example we will be optimizing the shopping experience for our Travel Site by making sure the most relevant products come up first for visitors navigating to the Store. This will be based on their previous navigating history through the site, we want visitors interested in winter vacations to see winter shopping options first!
Right now, our store just shows the most recently updated products first, so it is a hodgepodge of products across categories for every visitor that navigates to the store.
Set up your tags and tagging workflow, then tag your content using AI.
There are several ways to create a personalized shopping experience, including setting and using Personas, but for this example we are going to use accrued tags by the visitor to determine what the visitor is interested in and display the most relevant products.
The first step here is to determine what tag(s) you want to use to capture the visitor's interests and sort the products accordingly. In our example we will use tags like ‘Winter’, ‘Winter Sports’, ‘Snow’, ‘Snow Sports’, etc to capture a visitor’s interest in winter activities, destinations, content, and products. You can create these as new Tags using the Tag management tool.
Next, after configuring the OpenAI integration on your instance, you are ready to create an AI Tagging workflow to automate tagging your content. Simply create a new workflow action in the workflow schema you are using for the content you want to tag (in our case Products, Destinations, and Blogs), add the AI - Auto-Tag Content sub action (we configured ours to overwrite existing tags and only use pre-existing tags), and add the workflow action to whatever workflow steps you want to run the workflow action from. See the short video for a visual.
Now you can run the workflow action to tag the content. Of course, in a real scenario you would add the AI - Auto-Tag Content sub action to an existing step in your workflow so the tagging would happen automatically as part of your normal workflow steps.
Update your content pulls to use tags accrued by the visitor object to determine order (and filter content if you want).
Now that you have all your content auto tagged by AI, you are ready to use the pullPersonalized method to retrieve content based on tags accrued by the visitor. In our case, we will update the code that pulls the list of products on the main store page and sort those products according to any tags the visitor has accrued by navigating around our site. So if the visitor has checked out a blog related to Winter Sports, or read through a Destination page for the French Alps they will see winter gear first when they go to the store.
This can easily be done in Velocity for natively rendered pages, as illustrated below, or in your API calls for headless setups. For our Store page, we have this line of code which filters and sorts the results depending on if there are any parameters passed (like categories) and sorts the results based on last modified date:
#set($results = $dotcontent.pull("+contentType:Product
+(conhost:48190c8c-42c4-46af-8d1a-0cd5db894797 conhost:SYSTEM_HOST) #if($productLineCategoriesKeys.size() > 0)
+(categories:$productLineCategoriesKeys[0]) #end #if($hasTagParam) $tagQuery
#end",${quantity},"modDate desc"))We want to change this to use the pullPersonalized method when there are no category or tag parameters being passed in the URL. To do this we first check for category or tag parameters and then determine which method will be used:
## Determine if we should use personalized sorting
#set($usePersonalization = false)
#if($productLineCategoriesKeys.size() == 0 && !$hasTagParam)
#set($usePersonalization = true)
#end
#if($usePersonalization)
## Use pullPersonalized when no category or tag filters are applied
#set($results = $dotcontent.pullPersonalized("+contentType:Product
+(conhost:48190c8c-42c4-46af-8d1a-0cd5db894797 conhost:SYSTEM_HOST)",
${quantity}, "modDate desc"))
#else
## Use standard pull with modDate sorting when filters are applied
#set($results = $dotcontent.pull("+contentType:Product
+(conhost:48190c8c-42c4-46af-8d1a-0cd5db894797 conhost:SYSTEM_HOST)
#if($productLineCategoriesKeys.size() > 0)
+(categories:$productLineCategoriesKeys[0]) #end #if($hasTagParam) $tagQuery
#end",${quantity},"modDate desc"))
#endThat’s it! Now after a visitor checks out a Colorado Ski Vacation, or reads our Family Ski Vacation blog and then navigates to the Store, they see a set of more relevant products based on their browsing behavior.
Of course this was a simple example, but the methodology can be used to achieve a wide variety of personalization throughout a digital experience, from customizing banners and calls to action, to rearranging or rewriting blocks of content for specific types of users.
Here are a few high-impact use cases where personalized content delivers results:
Account-Based Marketing (ABM): Tailoring campaigns and content to specific target accounts or verticals, addressing each organization’s unique pain points. With ABM, brands focus on high-priority targets with precision and relevance, often speeding up pipeline velocity.
Personalized Sales & Support Content: Customer-specific content hubs, onboarding guides, and knowledge articles adapted to product usage and role.
Industry/Account - Aware Homepages & Navigation: Dynamically switch hero copy, proof points, and navigation paths based on firmographic signals (reverse-IP or CRM match: healthcare vs. banking vs. tech) so visitors land on the most relevant story from the first click.
Behavior-Driven “Next Best Content” (NBC) & Recommendations: Personalize resource carousels, sidebar modules, and “what to read next” based on browsing behavior and real-time signals.
Dynamic CTAs & Progressive Forms by Stage/Persona: Swap CTAs (e.g., “See pricing” vs. “Book a demo”) and shorten forms for known visitors to lower friction and increase conversion.
In summary
Personalized content is a powerful tool for optimizing content ROI. By delivering the right message to the right person at the right time, you maximize the impact of every asset and build trust. In a world where every buyer interaction counts, personalization ensures your content investments actually drive engagement, pipeline, and loyalty.
Start your Personalization journey today with dotCMS