How do you migrate from HubSpot Marketing Hub to Mautic without losing contacts or tracking?
A move from HubSpot Marketing Hub to Mautic is a staged project of export, rebuild, parallel run and cutover, not a single data import. Most teams start this work because of a renewal, contact-tier billing that grows with the database, a data residency rule, or a wish to avoid lock-in to one vendor's workflow format. The first decision is whether HubSpot CRM stays. If sales keeps using HubSpot CRM, the contacts, companies and deal records remain there and Mautic becomes the marketing engine, connected through the Mautic HubSpot plugin in the Mautic HubSpot plugin documentation. If the whole stack moves, the CRM data must be exported and carried into a second system as well. Confirm this with sales leadership before any export starts, because it changes the scope, the contact tiers and who owns each record.
Internal marketing operations usually owns the migration, with an implementation partner or an experienced Mautic administrator handling the server, database, cron schedule and data mapping. The effort depends mostly on how many workflows, forms, emails and landing pages must be rebuilt, how many custom properties need a Mautic field, and whether consent history and suppression lists are carried over with the contacts. Mautic runs on a VPS or dedicated server, not shared hosting, and needs a supported PHP version, a MySQL or MariaDB database, a web server, and cron jobs for segment and campaign updates, as set out in the Mautic requirements page. Ask any partner for a written scope that lists each component to rebuild, the environments to be used, and the acceptance tests for tracking and consent.
The main risks are losing consent status, breaking attribution on your sites and sending duplicate or unsubscribed emails during the parallel run. Keep HubSpot active until Mautic has received and tested the full contact set, the tracking script is on every page, and forms write to Mautic with the right source. Run both systems for a defined period, reconcile counts by list and segment, and only then switch sending and retire HubSpot forms. Confirm your sending provider, sending domain authentication and retention rules for the old HubSpot data before cutover, since these are not covered by an export alone.
Which HubSpot Marketing Hub capabilities map to Mautic, and which need rework
This table maps the main Marketing Hub capabilities to their closest Mautic equivalents and marks each as clean, needs rework or gap. Use it to scope the migration, then confirm each feature against the Mautic version you plan to run, since the facts available here do not establish feature parity for every item.
| Capability | Mautic equivalent and status | What to confirm or rebuild |
|---|---|---|
| Contacts and lists | Clean for core contact records and CSV import with field mapping through the Mautic interface | Check how custom properties and multi-value fields map to Mautic custom fields before import; large files should run through the mautic:import command |
| Marketing contact segmentation | Needs rework: Mautic uses segments built from filters, not HubSpot's marketing contact tier logic | Recreate segment rules by hand; you do not need to replicate contact-tier billing because Mautic is self-hosted |
| Forms | Needs rework: Mautic has built-in forms, but HubSpot form embeds and submission history must be rebuilt | Rebuild each form, its field mapping and thank-you behavior, then test submissions on every live site |
| Needs rework: Mautic sends email through your own provider configuration, so sending domains and authentication must be set up again | Confirm sending infrastructure, bounce handling and template conversion for your version before any cutover | |
| Landing pages | Needs rework: Mautic provides landing pages, but HubSpot-hosted pages and their URLs do not move automatically | Plan redirects from old HubSpot URLs and confirm the template approach in your Mautic version |
| Workflows and campaigns | Needs rework: HubSpot workflows must be rebuilt as Mautic campaigns with triggers and actions | Rebuild and test each workflow; Mautic campaigns rely on cron jobs for segment updates and triggers |
| Lead scoring | Gap or confirm: no supplied fact establishes an equivalent scoring model in Mautic | Confirm scoring support in your version, or plan to rebuild scores as custom fields updated by campaigns |
| Reporting and attribution | Needs rework: dashboards and reports must be rebuilt, and HubSpot revenue attribution has no direct copy | Define the metrics you need first, then check which Mautic reports cover them |
| CRM sync | Needs rework: the Mautic HubSpot plugin and Salesforce plugin are documented integrations, so verify the HubSpot plugin against your version before relying on it | If sales stays on HubSpot CRM, confirm the plugin and sync direction; the HubSpot CRM Contacts API can also support scripted sync |
| Tracking on your sites | Needs rework: the HubSpot tracking code must be removed and Mautic tracking added to every site | Update each template, test page views and form events, and check consent behavior before go-live |
What moves cleanly from HubSpot and what you rebuild by hand
Contact and list data is the part that moves as a file. HubSpot exports contacts, companies and other CRM records as CSV, XLS or XLSX files, delivered by email link, and the export allowance is capped at 300 exports per rolling 24 hours, so plan your export runs rather than repeating them. In Mautic, a CSV file can be uploaded through the user interface, which maps columns to fields automatically. For large files, Mautic recommends the background mautic:import console command run by cron, which processes 100 rows per batch by default. Before you import, confirm that every property you need has a matching Mautic contact field, that email addresses are unique and that consent or opt-out status is included in the file, because those values decide who can receive your next campaign.
Records, associations, workflows and tracking do not travel in a file. Deal and ticket associations, workflow logic, saved email and landing page templates, form definitions and the tracking script on your websites all have to be recreated in Mautic or reconnected to it. Tracking is the item most often missed: your site pages need Mautic's tracking code in place before campaigns can see activity. Sender reputation is also not transferable. Your sending domain, SPF, DKIM and DMARC records, and the bounce and complaint history attached to them, belong to your sending setup, so confirm with your email provider how reputation will be built on the new sending path before you switch volume over.
Decide what HubSpot keeps before you export. If sales continues to use HubSpot CRM, the marketing contact records may be needed there as well, and a one-time export does not keep the two systems aligned. Mautic documents a HubSpot integration plugin, and its requirements and authentication docs should be checked against the HubSpot edition and API access you hold before you plan a sync. If the CRM also moves, the Contacts API can read, create and upsert records in batches of up to 100 per request, which suits a scripted, repeatable load. Ask your implementation partner or internal team to write down which system is the source of truth for each field and each contact, and to test the import against a sample of records first.
Which data and integrations to move, and through which documented path
Each HubSpot object moves through a different path, and some have no documented export at all. The cards below separate contacts, lists, CRM records, content and consent so you can map each one to a route before you start. Confirm each item against your own HubSpot account, since export rights and the data your edition exposes vary.
Contacts and marketing status
Export contacts with their properties through HubSpot's record export, which delivers CSV, XLS or XLSX files by email link. Billing counts only contacts set as marketing contacts, so the export should carry that status as a field you can filter on before import. In Mautic, import the file through the user interface for small batches, or use the mautic:import console command run by cron for large files, processed in batches of 100 rows by default. Confirm that opt-in status survives the export before you map it.
Lists and segments
Static lists and active lists do not behave the same way in an export. Record exports carry property values, so rebuild segment logic in Mautic from the property definitions rather than expecting list membership rules to transfer. Export each list as a file, note its filter criteria, and recreate the logic as Mautic segments. Check that list membership is included in the export before you rely on it, and confirm the rebuilt segment counts match HubSpot before you send anything.
Companies and deals if CRM is in scope
Companies, deals and their associations are CRM records, and they matter only if the move also covers sales data or you keep HubSpot CRM. Export them as separate files and rebuild the associations through the contact identifier. Mautic's Salesforce plugin is documented for Salesforce, not HubSpot, so a HubSpot CRM sync needs a documented connector or custom work that you must scope and test separately. Decide this before the export begins.
Email and form content
Marketing emails, templates, forms and landing pages do not appear in CRM record exports, so plan to rebuild them by hand or from copied HTML in Mautic. Save each email's HTML and each form's field list, then confirm which merge tags and hidden fields your forms depend on. Test every rebuilt form against a staging domain, because form submissions feed the contact records you have just migrated.
Tracking and consent records
Consent history matters more than the current opt-in flag. Ask HubSpot which consent fields, timestamps and communication subscription records your account exposes, and export them alongside contacts so you can show when and how each person opted in. On your sites, replace the HubSpot tracking code with Mautic's tracking script and test that page visits attach to the correct contacts. Keep the consent evidence in your own records before you delete anything in HubSpot.
Batch upserts through the Contacts API
For ongoing sync or data that record exports miss, HubSpot's CRM Contacts API supports reading, creating, updating and upserting contacts. Batch endpoints accept 100 records per request, so a large contact set needs many calls that respect rate limits. Use the API as a complement to export, not a replacement, and confirm your access scope and token type before you write the integration. Map the API fields to the same Mautic fields used by the file import so the two paths produce matching records.
How the migration changes when HubSpot CRM stays or leaves
When sales keeps its deals, pipelines and sequences in HubSpot, the CRM remains the system of record for company and deal data, and Mautic takes over campaigns, forms, landing pages, emails and journeys. The main design choice is which side owns the contact record. Most teams keep HubSpot as the owner of sales-facing fields and let Mautic own marketing engagement history, so the two systems do not fight over the same property.
- Sync direction: Use Mautic's HubSpot integration to push contacts and companies in one direction for the first phase, then decide per field whether the flow reverses.
- Source of truth: Name a single owner for each property, such as lifecycle stage or email consent, and document it before the first sync.
- Marketing contact tiers: HubSpot still bills for marketing contacts, so contacts that move to Mautic should be unsubscribed or set to non-marketing in HubSpot to reduce the count.
- Duplicate handling: Match on email address and confirm how merges behave on both sides before enabling automated updates.
- Form and tracking cutover: Plan when HubSpot forms and tracking code stop being used, since submissions can still arrive in HubSpot during overlap.
Confirm the current Mautic HubSpot plugin behavior and its supported HubSpot API limits with the plugin documentation and your own test data before you commit to a sync design.
When the CRM also leaves HubSpot, the migration becomes a data move rather than a sync. Contacts, companies and activity history are exported once, cleaned and imported into Mautic and the chosen CRM, and HubSpot is retired. The work shifts from keeping two systems aligned to deciding which records must be carried over and which can be archived.
- Sync direction: Usually one-way, from HubSpot exports or the Contacts API into the new target, with a short freeze period before the final pull.
- Source of truth: Move ownership to the new CRM for sales fields and to Mautic for marketing engagement, and retire HubSpot as a writable system after cutover.
- Marketing contact tiers: Billing ends with the HubSpot subscription, so the tier calculation matters only for the overlap period and any exit terms in the contract.
- Export limits: HubSpot record exports are capped per day, so plan large exports across several days and use the Contacts API for records that exports miss.
- Archive: Keep a read-only copy of the exports and consent records for audit and dispute handling.
Confirm your HubSpot contract's notice and data return terms in writing, and ask your CRM vendor how it imports consent and activity fields.
Large accounts often mix editions, seat types and contact states, with some teams on the CRM and others on marketing tools that share a portal. Before any sync, separate the contacts by status, since only marketing contacts count toward the tier, and decide which subset actually needs to move. This phase is mostly data hygiene and contract analysis.
- Segmentation first: Split contacts into active marketing, transactional only, non-marketing and suppressed groups, and move only the first two into Mautic.
- Sync direction: Run a staged pull in batches, because the Contacts API batch endpoints accept a limited number of records per request.
- Source of truth: Assign ownership by business unit or portal when portals are separate, and record it in a data map.
- Tier reduction: Lowering the marketing contact count before renewal depends on your edition and contract, so ask your account manager how the count is measured and when changes take effect.
- Volume on Mautic: Imports run through the console command and cron, so size the server and schedule imports outside campaign sends.
Ask HubSpot which contacts currently count toward your tier and request that figure in writing before you plan the cutover date.
The migration sequence from inventory to decommissioning HubSpot
This sequence moves HubSpot marketing data, forms, emails and tracking to Mautic in stages that can be checked at each step, so sending and tracking switch over only after a pilot and a reconciliation have passed. It ends with HubSpot decommissioned once you have confirmed that the archived exports can answer your retention questions.
Inventory every marketing asset and data flow
Your marketing operations lead, with the platform owner, lists every contact list, property, form, email, workflow, landing page, tracking snippet and integration that touches HubSpot Marketing Hub, including any Sales or Service Hub sync. Record the owner, the purpose, the data classification and the consent basis for each item in an inventory register. Confirm which contacts are marketing contacts, because only those count toward the contact tier. The step is done when every asset has an owner and a disposition of rebuild, retire or keep, and the register has been signed off by legal or privacy for consent records.
Export contacts, lists and consent records
Using HubSpot's record exports and, for anything they miss, the Contacts API, pull contacts with their properties, list memberships, subscription status and consent history. HubSpot's export limits apply, so plan the sequence of exports around them and store each file with a checksum. Keep the raw exports in a restricted archive before any transformation. The step is done when row counts and property coverage match the inventory register and a sample of records has been checked by hand against the HubSpot record view.
Stand up Mautic with cron and the messenger consumer
Your platform team installs Mautic on a VPS or dedicated server rather than shared hosting, following the project's requirements, and configures the database, mail transport and file storage. Before any pilot sends email, the cron jobs for segment updates, campaign updates and triggers, and the broadcasts command must be scheduled and staggered, and the messenger consumer must be running whenever emails are queued. Confirm these with the job logs over several cycles. The step is done when each scheduled job reports successful runs and a test queued email is delivered through your chosen sending provider.
Run a pilot on a subset of contacts and one campaign
Import a bounded group of contacts through the Mautic interface or, for larger files, the background import command, then rebuild one segment, one form and one email campaign. Compare open, click, unsubscribe and bounce results against the same campaign's history in HubSpot where your data allows. The marketing lead writes a pilot report listing deliverability results, field mapping errors, consent gaps and performance differences. The step is done when the report has been reviewed and each defect has either a fix or a documented decision to accept it.
Reconcile and run HubSpot and Mautic in parallel
For the remaining campaigns, run both platforms while a single owner keeps suppression lists and consent status in sync, so no contact is mailed by one platform after withdrawing consent in the other. Reconcile contact counts, suppression entries and consent flags daily against the exports, and record each discrepancy with its cause. Sales-facing sync, if HubSpot CRM stays, is handled as a separate decision. The step is done when reconciliation has produced no unexplained differences for the agreed period and the suppression process has been tested with a withdrawal request.
Cut over sending, forms and tracking
Using a written cutover runbook, the team switches sending domains and sender authentication, repoints forms and landing pages, and replaces HubSpot tracking code on the sites with Mautic's tracking script. Each change has a named owner, a rollback step and a verification check such as a test submission or a test send. Cron and messenger monitoring stays on during the window. The step is done when the runbook's verification checklist is complete, all forms submit to Mautic, and HubSpot sending has stopped for every migrated list.
Archive exports and decommission HubSpot after a retention check
Before cancelling the subscription, the compliance lead confirms which records must be kept, for how long and in which system, and stores the final exports, consent history and campaign reports in an archive with access controls. Check whether any contract, data processing or export terms require a specific retention period, and ask HubSpot to confirm deletion terms in writing. The step is done when the archive has been tested by restoring a sample, the retention decision is documented, and HubSpot access is removed for everyone who no longer needs it.
What drives migration cost and duration, and how to keep each down
This table lists the main factors that raise the cost and time of moving from HubSpot Marketing Hub to Mautic, why each one matters, and how to reduce it. Read it as a checklist to scope a quote, since the largest drivers are usually contact history, the number of workflows and sites, and the CRM sync that stays in place.
| Driver | Why it changes cost or effort | How to keep it down |
|---|---|---|
| Marketing contacts and history to keep | Every contact, property and consent record must be exported, mapped and imported in batches. Mautic imports in batches of 100 rows by default, so large files take longer to load and verify. | Migrate only active, consented contacts and the history you need. Archive older records in a file outside Mautic. |
| Workflows, lists and segments | HubSpot workflows and lists do not transfer automatically. Each one must be rebuilt as a Mautic campaign or segment and tested against the same contacts. | Inventory every workflow and retire unused ones before the move. Rebuild the few that drive revenue first. |
| Forms, emails and landing pages | Each form, template and page is recreated by hand in Mautic, and embedded forms on your sites must be replaced with the new code. | Consolidate templates and forms before migrating. Fewer, reusable templates reduce rework. |
| Sites carrying tracking | Each domain or subdomain needs the Mautic tracking script, and cross-domain activity must be tested. Every site you add increases testing and sign-off time. | List all sites and subdomains early. Deploy tracking to one staging site first, then roll out. |
| CRM and data warehouse integrations | If HubSpot CRM stays, contact and company sync runs through the HubSpot integration and must be monitored. Warehouse feeds from HubSpot exports or the API need rebuilding. The HubSpot CRM Contacts API limits batch requests to 100 records, which affects sync throughput. | Decide early which system owns each field. Keep the sync scope narrow and document it. Confirm how Mautic's HubSpot plugin and Salesforce plugin behave with your CRM edition before scoping. |
| Deliverability on a new sending domain | Mautic does not send mail by itself on most setups, so you pick a sending provider. Warming a new domain or IP and fixing SPF, DKIM and DMARC records takes time and can delay the cutover. | Keep the existing sending domain where possible. Start warm-up before the migration date. Ask providers for their warm-up guidance in writing. |
| Infrastructure and hosting | Mautic needs a VPS or dedicated server, a supported PHP version, a MySQL or MariaDB database and cron jobs, and it should not run on shared hosting. These are recurring costs. | Size the server to your contact count and send volume. Use managed backups and monitoring to limit upkeep. |
| Internal team capacity | Marketing, IT and the sales team must each sign off on fields, workflows and reports. Gaps in ownership push work into the cutover window. | Name one owner per area. Agree acceptance tests in writing before implementation starts. |
| Ongoing upkeep and upgrades | Mautic releases follow a monthly patch, quarterly minor and two-year major cadence, and cron, PHP and database versions must be kept current. This cost recurs after go-live. | Choose a long-term support release where your plan allows it. Schedule patch windows and budget for them in the retainer or internal plan. |
What usually goes wrong when moving from HubSpot to Mautic
Most failed HubSpot to Mautic moves fail in predictable places: consent records, duplicate contacts, background jobs, sender reputation, site tracking and the server underneath. Each card below names one risk, why it matters for this migration, and the check that prevents it.
Consent and suppression records lost
A plain contact export can carry email addresses without the unsubscribe, bounce and consent history that tells you who must never be mailed again. Before importing, confirm which HubSpot fields record opt-outs and marketing consent, export them explicitly, and map them to Mautic's do-not-contact handling. Test with a small import and check that a known unsubscribed address stays suppressed in Mautic before sending anything.
Duplicate contacts from CRM sync
If HubSpot CRM stays live while Mautic also creates contacts, the same person can appear twice with different histories, scores and segment membership. Choose one system as the owner of each contact field before syncing, and use a unique identifier such as email address to match records. Run a duplicate count on both sides after the first sync and keep a written rule for which record wins.
Cron jobs not running or staggered
Mautic depends on cron jobs for segment updates, campaign updates and campaign triggers, and the project advises staggering them. If the jobs are missing, overlapping or failing silently, segments stop refreshing and campaigns stall without an obvious error. Schedule each job on the server, confirm the messenger consumer runs when emails are queued, and watch the logs for the first full campaign cycle.
Sending reputation drops on new domain
Moving to a new sending domain or IP starts with no track record, and mailbox providers may filter mail that looks like a sudden jump in volume. Warm up the new domain gradually, keep the old sending history where possible, and set up SPF, DKIM and DMARC before the first campaign. Ask your email sending provider how it handles reputation for new domains and bounce feedback.
Tracking gaps after cutover
Forms, landing pages and tracking scripts on your websites still point to HubSpot after cutover, so new visits and submissions go unrecorded in Mautic. Inventory every page with a HubSpot tracking code or form embed, replace them with Mautic equivalents, and test each one on the live site. Keep redirects and consent banners in place so behavior history and cookie consent do not break at the same moment.
Hosting on shared infrastructure
The Mautic project states that it should not be installed on shared hosting and recommends a VPS or dedicated server. Running it on a cheap shared plan can cause timeouts in imports, cron jobs and sending, and it weakens control over the database and backups. Check the requirements for your chosen PHP, database and web server version before provisioning, and confirm the environment with whoever will operate it.
What buyers and practitioners ask before moving from HubSpot to Mautic
How much effort and cost does moving from HubSpot Marketing Hub to Mautic involve?
The move costs more in staff time and configuration than in software, because Mautic itself has no license fee. Mautic is open source under GPL-3.0 and has no paid edition of the software, so the one-time costs are migration work and the recurring costs are hosting, email sending, upkeep and support. The main drivers are the number of contacts to move, how many forms, emails, landing pages and workflows must be rebuilt, how much tracking code sits on your sites, and whether you keep HubSpot CRM. Ask any implementation partner for a quote built from a written scope that lists each of these items, and ask which costs are one-time and which recur.
How long does a migration from HubSpot to Mautic usually take?
No supplied source gives a reliable duration, so treat any figure you see as a guess until your own inventory is complete. The schedule depends on the number of workflows, forms, emails and landing pages, the quality of your contact data, the number of sites that need tracking changes, and how much testing your compliance team requires. Build the timeline from an inventory, then run a parallel period where campaigns are checked in both systems before HubSpot sending stops. Ask for milestones in the written scope and confirm each one with your own environment before agreeing a go-live date.
What does the migration need from our internal staff?
Expect marketing operations, a data owner and an engineer or web lead to be involved throughout. Marketing operations decides which lists, segments, workflows and consent records must be preserved, and signs off on rebuilt campaigns. The data owner confirms which contact properties are authoritative and how consent and suppression status are represented. The engineer or web lead handles hosting, the cron jobs Mautic depends on for segment updates, campaign updates and triggers, the broadcasts command, the messenger consumer for queued email, and the tracking changes on your sites. Confirm these roles early, because the work stalls quickly if nobody owns the mail infrastructure after go-live.
Can our own team migrate from HubSpot to Mautic without outside help?
A team with Linux, PHP and database administration skills and someone who knows the HubSpot account can do it, but the risk is in the details. Mautic is written in PHP on Symfony, requires a VPS or dedicated server rather than shared hosting, and needs cron, queue and mail configuration to run reliably. Teams that handle this internally usually still need to plan the contact sync, consent history and tracking cutover carefully. DeployOpen plans, implements, integrates, hardens, backs up and documents self-hosted platforms inside your own infrastructure, and most engagements are fixed-scope with the scope agreed in writing before work starts. Compare an internal plan with a written scope from a partner, and decide which parts you will own after handover.
Do we have to give up HubSpot CRM when we move marketing to Mautic?
No. Moving marketing does not require replacing HubSpot CRM, and many teams keep sales on the CRM while campaigns, forms and emails move to Mautic. Mautic documents a Salesforce plugin, and it has a HubSpot plugin in its documentation, so confirm the current behavior of any CRM integration in the version you plan to run before relying on it. Decide which system owns each contact property, because two systems writing the same fields will create conflicts. Marketing contact tiers in HubSpot count only contacts marked as marketing contacts, so changing that setting may affect cost after the move. Confirm the billing effect with HubSpot before you change any contact status.
How do we handle the HubSpot limit of 300 exports per rolling 24 hours?
Plan the export around that limit rather than trying to beat it. HubSpot's knowledge base says record exports for contacts, companies and other CRM objects are sent as CSV, XLS or XLSX files by email link, with up to 300 exports per rolling 24 hours. Start with a count of records and properties, split the export by list or property group, and schedule batches across several days. For exports that record exports do not cover, the CRM Contacts API supports reading contacts and returns up to 100 records per batch request, so budget API calls and handle rate limits in the sync script. Mautic then imports CSV files through the interface, or through the mautic:import console command run by cron for large files, processed in batches of 100 rows by default.
Which Mautic version should we choose given its support windows?
Choose a version by its support end date and by your PHP and database requirements, not by the newest release alone. Mautic 7.0 requires PHP 8.2, 8.3, 8.4 or 8.5 and MySQL 5.7 or higher with InnoDB, or MariaDB 10.2 or higher. Mautic 7.2 (Absolunto) has active and security support until 30 September 2026, and Mautic 7.3 is planned as the long-term support release with security support through 31 December 2027. Mautic 6.0 (Tabit) receives security support until 30 September 2026, and Mautic 5.2 (Capella) until 30 June 2026. Confirm the current dates on the Mautic releases page before you commit, and plan an upgrade path before any support window closes.
How the migration changes when HubSpot CRM stays or leaves
When HubSpot CRM stays, sales keeps its pipelines, deals and sequences in HubSpot while campaigns, forms, emails and landing pages move to Mautic. Both systems must agree on who a contact is and which consents apply, so the integration design drives most of the work. Mautic documents a HubSpot plugin, but confirm its current behavior against the version you deploy before you rely on it.
- Source of truth: Decide whether HubSpot or Mautic owns contact fields, lifecycle stage and marketing consent, and document that choice before enabling any sync.
- Duplicate handling: Match records on a stable identifier such as email address and agree how merges are resolved, so one person does not appear twice in each system.
- Batch volume: HubSpot's CRM Contacts API batch endpoints accept up to 100 records per request, so plan syncs in batches and check them against your account's API limits.
- Form writes: If forms move to Mautic, confirm how submitted fields are written back to HubSpot contact properties.
- Attribution: Decide which system reports on lead source and campaign membership, because both can record them.
Ask your HubSpot administrator which contact properties the sync will write, and test with a small set of records before a full run.
When HubSpot CRM leaves as well, the migration becomes a full data move, because contacts, companies, deals, tickets and custom objects must land somewhere else first. Mautic is a marketing automation system and does not act as a CRM, so the CRM decision must come before the Mautic build. Mautic documents a Salesforce plugin, which matters only if Salesforce is the chosen CRM, and that fit should be confirmed with your sales team.
- Export scope: HubSpot record exports produce CSV, XLS or XLSX files, limited to 300 exports per rolling 24 hours, so count your objects and schedule the exports across several days if needed.
- Associations: Check that contact-to-company and contact-to-deal links survive the export and import, since association handling differs from property values.
- Gaps in exports: Confirm what record exports leave out, such as some activity history or custom object data, and pull those items through the API if the business needs them.
- Target CRM: Choose the destination CRM before the Mautic build so field mapping and sync design match the real target.
- Cutover order: Pause new sales writes during the final export, then load Mautic and the new CRM in the same window.
Ask the CRM vendor or integrator for a field-by-field mapping document and confirm that it covers every object your sales team uses.
HubSpot bills Marketing Hub by contact tier, and only contacts set as marketing contacts count toward that tier and affect subscription cost. Mautic the software is free to self-host, so the move changes where you pay and how you run the platform. Sending costs, hosting and the operations time to keep Mautic current remain, and they should be priced separately before you set a cutover date.
- Marketing status: Review which contacts are marked as marketing contacts in HubSpot, since that status drives the billed tier during the overlap period.
- Overlap period: While both systems run, the same people may sit in HubSpot and Mautic, so decide how long you can afford to run both and what that costs.
- Suppressions: Export unsubscribes, bounces and consent records from HubSpot and import them into Mautic before the first send, so opted-out contacts are never emailed.
- Sending infrastructure: Mautic relies on cron jobs and a messenger consumer for queued email, and sending volume depends on the email provider you choose.
- Contract terms: Check your HubSpot renewal and notice terms, because these set when you can reduce your tier.
Ask HubSpot for the current marketing contact count on your account and reconcile it with your export before you cancel anything.
How DeployOpen works on this
DeployOpen is a Chainscore Labs company that plans, implements, integrates, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For a move from HubSpot Marketing Hub to Mautic, we start with a written scope that fixes what moves, what stays on HubSpot and how the work is tested before cutover.
How we scope
- Inventory contacts, lists, forms, emails, workflows and landing pages that Marketing Hub currently runs
- Decide with you whether HubSpot CRM stays and which contact and company fields sync
- Agree deliverables, timelines and responsibilities in writing before any migration work starts
How we build
- Install and harden Mautic on the infrastructure you choose, including PHP, database and cron setup
- Import contacts in batches and map fields, then rebuild segments, campaigns, forms and emails
- Reconnect tracking on your sites and test each rebuilt workflow before it sends to real contacts
How we hand over
- Document the architecture, configuration, field mappings and each rebuilt workflow for your team
- Provide runbooks for cron jobs, the broadcasts command, the messenger consumer and backups
- Walk your marketing and operations staff through daily use and the export evidence you keep
How we support
- Offer ongoing support, upgrades and continuous testing as a retainer after handover
- Plan Mautic upgrades against the published release and support dates before each cutover window
- Confirm support terms, response expectations and hosting responsibilities with you in the written scope

