Prerequisites
Connect HubSpot
Open Integrations and choose Connect on HubSpot. Authorize the HubSpot account in the window that opens. The connection uses the existinghubspot WorkOS Pipes provider. The token is not stored in Hyperlocalise. The marketplace app source is in apps/hubspot-app.
Translate HubSpot content
Add the Translate HubSpot content template from Popular or Marketing. It is mutually exclusive with Braze, Customer.io, and Loops. Choose the native project, then activate the automation. On the HubSpot tool, tick the emails to translate. Nothing is imported until at least one email is ticked. Locale copies stay out of the tree. Set Existing HubSpot translations: Only empty locales (default), Refresh imported locales, or Overwrite all locales. Overwrite HubSpot copies when the remote copy is newer is on by default. Uncheck it to keep copies that teammates edited after the last push. A scheduled or manual run imports content. It does not push. Push runs only when you choose Push to HubSpot in the Content editor.What import writes
Import reads primary objects and writes source files:- Marketing emails at
hubspot/emails/{id}/{slug}.html, with the subject, preview text, and translatable widget fields - Forms at
hubspot/forms/{id}/{slug}.json, with labels, placeholders, help text, submit text, and legal copy - Blog posts at
hubspot/blog-posts/{id}/{slug}.json, with the title, meta description, summary, post body, and section text - Landing pages at
hubspot/landing-pages/{id}/{slug}.json, with the title, meta description, image alt text, and translatable widget and layout fields - Website pages at
hubspot/website-pages/{id}/{slug}.json, with the same fields as landing pages
Welcome [fr-FR]). Field names, widget ids, URLs, and colors stay locked. Import does not write anything to HubSpot.
A later import still checks mapped target locales when the source has not changed. If HubSpot already has a locale copy or language variation, import can seed that copy as an approved translation. Only empty locales never overwrites work already in Hyperlocalise.
When Create native TMS job is enabled, the run opens a job for mapped locales that still need translation. Locales just seeded from HubSpot are left out.
A project locale maps to a HubSpot code in this order:
- The same code, lowercased, with
_written as-(pt-BRbecomespt-br). - A short list of aliases HubSpot uses:
zh-CNbecomeszh-cn,zh-TWbecomeszh-tw,hebecomeshe-il, and Norwegian tags becomeno-no. - The language alone, when HubSpot accepts that language and has no matching regional code (
fr-FRbecomesfr).
What push writes
- Translate and approve the mapped locales you want to write back.
- In the Content editor, choose Push to HubSpot and select the mapped items.
{source} [{locale}], for example Welcome [fr-FR]. A later push updates that copy instead of creating another one.
HubSpot’s own translate actions are not used. Hyperlocalise writes the approved strings onto the copy.
A later push skips a locale whose approved content already matches the last successful push. Only empty locales pushes only to copies that carry no locale content yet, so it never overwrites a copy that already holds translations. Refresh imported locales pushes a locale again only when its approved content changed since the last push.
Change or remove access
Disconnect HubSpot from Integrations to stop this workspace using that account. Inspect automations that depend on the connection before you disconnect.If import or push does not run
- Confirm HubSpot is connected and the automation is Active.
- Confirm the HubSpot authorization still has
contentandforms. - Confirm the project source locale matches the language of the HubSpot source.
- Confirm each target locale maps to a HubSpot language the account has enabled.
- Open Run History for the failed item or locale.
Known limitations
Import skips unsupported content, and it does not appear in Content to translate. The in-app email preview shows the imported copy in a generic layout, not the HubSpot design.

