Skip to content

Language and locale property normalization

One of 565 written HubSpot workflow specs, by a collective of independent HubSpot consultants.

Professional

Seat pricing: Professional edition. To build it, a GTM Seat or an Ops Seat (an Ops Seat cannot create marketing emails or sequences). Per-hub plans: Data Hub Professional.

Contact7 stepsUpdated for HubSpot seat pricing
OutcomeA contact's preferred language always reads as one of a small, standard set of values, instead of a mix of raw locale codes, free-text guesses, and inconsistent casing that no email personalization rule or list segmentation can reliably filter on.
Workflow mapdata-quality-040
Raw locale code known or changed leads to Starts with which prefix?. Starts with which prefix? leads to en: Preferred language: English; fr: Preferred language: French; nl: Preferred language: Dutch; de: Preferred language: German; es: Preferred language: Spanish; none match: Leave unset. Raw locale code known or changed Starts with which prefix? en Preferred language: English fr Preferred language: French nl Preferred language: Dutch de Preferred language: German es Preferred language: Spanish none match Leave unset
Raw locale code known or changed leads to Starts with which prefix?. Starts with which prefix? leads to en: Preferred language: English; fr: Preferred language: French; nl: Preferred language: Dutch; de: Preferred language: German; es: Preferred language: Spanish; none match: Leave unset. Raw locale code known or changed Starts with which prefix? en Preferred language: English fr Preferred language: French nl Preferred language: Dutch de Preferred language: German es Preferred language: Spanish none match Leave unset

When to use it, when not to

Use it

  • Use it when a raw locale code, from a browser's language header captured by an integration, a form field, or an import, needs to become a clean, standard picklist value used for segmentation and email personalization.
  • Use it when the set of locales you actually operate in is small enough to map explicitly, a handful of languages, not the full space of every possible browser locale variant.
Read more on when to use itShow less

Skip it

  • Do not use it to infer language from country alone. A contact's country and preferred language are related but not the same thing, a French-speaking contact in Belgium, an English-speaking expat in Germany. Keep them as separate properties.
  • Do not use it if the raw source already writes a clean, standard value directly. Check the actual raw values you receive before building a mapping for variants that do not occur in practice.
Read more on when to skip itShow less

The rest of this spec

Prerequisites · 2 items

Every property with its label, internal name, type and options, plus the assets the workflow needs.

Enrollment · 4 parts

The trigger, the criteria as ticked in the UI, the re-enrollment rule and the suppression list.

Steps · 7 numbered actions

Each action in order with its parameters, branches and delays.

Known pitfalls · 4

Traps seen in production, each with what breaks and what to do instead.

Test plan and UAT script · 8 cases, 3 variants

How to prove it works in a test portal, one case per branch, and a sign-off sheet.

Files · PDF, Markdown, JSON, CSV

The properties JSON creates the fields in one call. The workflow JSON documents the build.

Install · 1 click, switched off

The installer creates the properties and the workflow, switched off, then opens a task for what it cannot create. Nothing is deleted, enabled or enrolled.

Unlock all 565 specs, 149 EUR

One-time, excl. VAT. 30-day refund. Installs in 3 portals. Founding price until 30 November.

Read the free Data quality spec

Read 12 complete specs before you pay.

One per category, same format as the paid ones. Email only, no card.

We email the link, then a short note when specs change. Nothing else.

149 EUR199

Full library, 565 specs
Get the full library