Managing multiple HubSpot accounts can quickly become frustrating if you’re stuck recreating the same templates, themes, or modules repeatedly. Even minor inconsistencies between portals can chip away at branding, user experience, and internal efficiency.
Unfortunately, HubSpot doesn’t automatically transfer design assets. You cannot simply click to copy from one portal to another. Instead, you need to download files manually or work through the HubSpot CLI, and either method requires a careful understanding of how assets and dependencies are structured.
This guide provides precise steps to safely move templates, themes, and modules between HubSpot accounts. You’ll learn how these elements are organized in the CMS, how to avoid common errors, and how to set up a workflow you can rely on.
You’ll also see how to validate the migration, and where support from INSIDEA can make the process seamless.
How HubSpot Handles Template, Theme, and Module Transfers
When you move reusable components like templates, themes, or modules between HubSpot accounts, you are transferring the building blocks of your site or email design. These assets live in the CMS Hub’s Design Manager, accessible via Marketing > Files and Templates > Design Tools.
The assets fall into three categories:
Templates: Define page or email layouts.
Themes: Group multiple templates, modules, and styles into a cohesive design system.
Modules: Individual components, such as buttons, forms, or feature blocks, that can be reused across templates and themes.
All of these are stored using HubSpot’s HubL language along with HTML, CSS, and JavaScript. HubSpot expects folder structures and configuration files to follow very specific conventions. If even one dependency is missing or referenced incorrectly, the portal will not be able to compile the asset after migration.
Developers working in code-based environments typically rely on the HubSpot CLI to handle migrations. It uses the Design Manager API to export assets locally and upload them to the destination portal with proper validation.
How It Works Under the Hood
Each design asset in HubSpot is a bundle of files, HTML structures, HubL logic, CSS stylesheets, JavaScript functions, and JSON configurations. Themes may also rely on media folders, global fields, or referenced content.
When copying assets, you are moving:
- Code files for layout and behavior
- Reference paths to dependent styles, media, and modules
- Metadata that maps the file structure into the portal’s CMS
You typically use one of two methods:
- Manual Export/Import Through Design Tools
Best for drag-and-drop templates or simpler coded modules. Download a ZIP file, upload it into the new account, and manually verify reference paths. - HubSpot CLI Transfer (Recommended for Developers)
The CLI connects via API tokens, allowing you to authenticate with the source portal, pull assets locally, then push them to another account. This ensures version control and validates assets during deployment.
Inputs and Outputs:
Input: Local files, templates, modules, JSON config, styles, media with intact structure.
Output: Functional design assets in the new portal, with all references resolved. HubSpot checks for syntax errors and flags broken dependencies, helping you catch issues before they affect users.
Main Uses Inside HubSpot
Reusing Standard Templates Across Portals
Purpose: Maintain consistent page structures across sub-brands, product teams, or international markets.
Example: Maintain separate portals for North America and Europe. Export a “Product Detail” template via CLI, upload to the second portal, and swap the global header/footer to localize it.
Sharing Custom Modules Across Marketing Campaigns
Purpose: Reuse perfected modules like carousels, pricing toggles, or testimonial blocks across campaigns.
Example: Export a pricing toggle module folder with images and styles, then push it into a second portal. The module appears immediately in the drag-and-drop builder.
Transferring Entire Themes Between Brand Accounts
Purpose: Migrate full design systems to align branding and accelerate setup for new portals.
Example: Migrate a “Modern Commerce” theme for a client’s microsite via CLI, including templates, modules, and CSS. The new portal looks identical and runs on the same design ruleset.
Common Setup Errors and Wrong Assumptions
Mistake: Uploading Only Part of a Theme
Missing even one folder like /css or /modules, can break the theme. Always upload the full folder structure, including configuration files.
Mistake: Using “Clone” Instead of Migrating Across Accounts
Cloning works only within the same portal. Use export/import or CLI transfer for cross-portal sharing.
Mistake: Leaving Hardcoded Links in CSS or HTML
Static file URLs tied to the original account will break in the new portal. Replace hardcoded URLs with relative paths or HubSpot-hosted file links.
Mistake: Overwriting Existing Folders Without Checking
Uploading into an existing folder can cause filename conflicts. Rename folders or ensure the destination is empty.
Step-by-Step Setup or Use Guide
Prerequisites:
- Access to both HubSpot accounts
- Super Admin or Design Manager permissions
- HubSpot CLI installed (for coded assets)
- Terminal access and text editor, if using CLI
Manual Method via Design Tools
- Go to Marketing > Files and Templates > Design Tools in the source portal.
- Locate your template, theme, or module. Select Export to Computer from the File menu.
- Save the ZIP file locally.
- Log in to the destination account and open Design Tools.
- Choose File > Upload and select your ZIP.
- Open each file to validatethat references resolve correctly.
- Create a test page using the imported asset to confirm layout and behavior.
CLI-Based Method (Preferred for Complex Assets)
- Open your terminal and authenticate with the source portal using hs auth.
- Run hs fetch [path/to/asset] to pull the asset locally.
- Update hubspot.config.yml with the destination portal ID.
- Run hs upload [path/to/asset] [destination/path] to push to the new portal.
- Log in to the destination account and verify appearance in Design Manager.
- Review hardcoded links or embedded IDs and update as needed.
Following these steps minimizes manual fixes and reduces run-time issues in the new portal.
Measuring Results in HubSpot
Migration is operational rather than analytic, but success should be confirmed:
Check:
- Page load speeds match the source portal
- All templates and modules appear under Design Tools
- No syntax or dependency errors on upload
- CLI output shows zero broken paths or file failures
- Design Manager flags no missing assets
For scale, create a QA checklist and a dashboard to track template or module usage by portal, ensuring consistent adoption.
Short Example That Ties It Together
A digital agency supports a client with two HubSpot portals: a corporate site and a retail microsite. They want both to use the same “Product Grid” module and “Modern Commerce” theme.
Steps:
- Connect to the corporate portal via HubSpot CLI and run hs fetch to pull theme and module folders.
- Update the config for the retail portal and run hs upload.
- Test with a sample page in each portal to confirm module behavior, loading speed, and design consistency.
- Audit both portals using a shared dashboard to confirm updated themes are in use.
How INSIDEA Helps
Migrating HubSpot design systems requires planning, testing, and understanding how assets interact. INSIDEA helps you hire HubSpot experts and provides HubSpot consulting services for cross-account migrations.
Our support includes:
- Clean Onboarding: Account structure best practices
- Ongoing Portal Management: Design asset updates
- Workflow Support: Automation post-migration
- Cross-Account Consistency Checks: Individual field references
- Full Migration: Templates, themes, and modules
- Set up for Global Teams: Uniform design systems
Talk to INSIDEA to get it right from the first upload.
Consistent design starts behind the scenes with clean code, smart structure, and accurate migration. Proper setup avoids unnecessary fixes later.