Creating Localised Content Using HubDB and Tokens
(Scalable Personalisation for Global Audiences with HubSpot CMS and Smart Content Architecture)
For brands expanding internationally or targeting diverse segments, localisation is more than translation — it’s about serving relevant, context-aware content based on region, language, and cultural nuance. Doing this manually across pages, blogs, and campaigns is unsustainable.
HubSpot’s HubDB + personalisation tokens combo allows you to serve localised content dynamically — whether that’s regional landing pages, geo-personalised CTAs, or language-specific SEO metadata — all from a structured, scalable content system.
In this guide, you’ll learn:
- How to architect HubDB tables for regional or language variants
- How to use tokens to personalise content per visitor context (location, contact data, etc.)
- How to create one template that serves 10+ localised pages
- How to handle translation fallback, language switching, and canonical tagging
- How to measure impact on engagement and conversion
1. Why Manual Localisation Fails at Scale
Let’s say you have:
- 12 countries
- 5 buyer personas
- 3 product lines
That’s 180+ content variants — and that’s before updating copy, metadata, or offers. Common problems include:
- Duplicate page maintenance
- Mismatched brand voice or product positioning
- Inconsistent tracking and conversion measurement
- SEO penalties from duplicate or mis-tagged content
Localisation done right uses a single template, structured data, and smart logic.
2. Create a HubDB Table for Local Content
Structure it like this:
slug | locale | title | body_content | cta_text | seo_description | language_code | canonical_url |
---|---|---|---|---|---|---|---|
/de/product | de | Produktübersicht | Unsere Tools für den DACH-Raum | Jetzt starten | Tools für deutsche Unternehmen | de | /en/product |
/fr/product | fr | Aperçu du produit | Outils pour le marché français | Commencer | Solutions pour entreprises FR | fr | /en/product |
slug
– the path
locale
– country or region variant
language_code
– for hreflang or lang attributes
canonical_url
– to avoid duplicate content issues
You can add as many fields as needed: images, testimonials, pricing, FAQ snippets, etc.
3. Build the Dynamic Page Template
Use HubL to pull data from HubDB based on URL:
{% set page = hubdb_table_rows(12345) | selectattr("slug", "equalto", request.path) | first %}
<h1>{{ page.title }}</h1>
<p>{{ page.body_content }}</p>
<a href="/contact">{{ page.cta_text }}</a>
Use the language_code
to set:
*lt;html lang="{{ page.language_code }}">
And set SEO tags:
<title>{{ page.title }}</title>
<meta name="description" content="{{ page.seo_description }}">
<link rel="canonical" href="{{ page.canonical_url }}">
4. Personalise with Tokens: Location, Persona, or Device
For logged-in users or email-driven visits, you can personalise beyond locale:
{% if contact.industry == "Finance" %}
<p>Discover how we support financial services in {{ contact.country }}.</p>
{% endif %}
Or show different CTA buttons based on lifecycle stage:
{% if contact.lifecyclestage == "lead" %}
<a href="/demo">Book a Demo</a>
{% else %}
<a href="/case-study">View Success Stories</a>
{% endif %}
This blends structured localisation (HubDB) with real-time personalisation (tokens).
5. Add Language Switching and hreflang Support
Create a table of available languages/URLs:
language_code | label | url_slug |
---|---|---|
en | English | /en/product |
fr | Français | /fr/product |
de | Deutsch | /de/product |
Use HubL to render language selector:
<ul class="language-switcher">
{% for lang in hubdb_table_rows(6789) %}
<li><a href="{{ lang.url_slug }}">{{ lang.label }}</a></li>
{% endfor %}
Set hreflang
in <head>
:
{% for row in hubdb_table_rows(12345) %}
<link rel="alternate" hreflang="{{ row.language_code }}" href="{{ row.slug }}">
{% endfor %}
6. Localisation QA: Preview, Fallbacks, and Staging
- Use Content Staging to preview language variants
- Set default content fallback: {{ page.title or "Default Title" }}
- Use a QA HubDB column (ready_for_publish) to control visibility
- Schedule localisation rollouts using the Marketing Calendar
7. Measure Performance of Localised Content
Use HubSpot Campaigns to group variants and track:
- Page views per region
- Conversion rates per CTA
- Time-on-page per language
- UTM + Smart Content combinations
Connect with Google Search Console to measure local CTRs and keyword rankings.
Bonus: Create custom dashboards filtered by country or language to see engagement trends and drop-off points.
Conclusion
By using HubDB and personalisation tokens, HubSpot enables brands to serve regionally-relevant content without duplicating effort — and without compromising on SEO, performance, or scale. Whether you're entering new markets or segmenting existing ones, structured localisation will drive stronger engagement and better conversions.
Up next: [How to Auto-Publish and Localise Blog Posts via HubDB and the HubSpot API]