Can you replace HubSpot Marketing Hub and keep HubSpot CRM?
Yes, in many cases you can move campaigns, forms and email from HubSpot Marketing Hub to self-hosted Mautic and keep HubSpot CRM for sales, but only if the contact and company sync covers the workflows your sales team actually runs. Mautic can take over campaigns, forms and email sending, and it can exchange contact data with HubSpot through its HubSpot plugin, which is documented in the Mautic HubSpot plugin guide. The caveats are real: the sync is not the same as native HubSpot Marketing Hub, and you must test it before you cancel anything.
Mautic is licensed under GPL-3.0, and you run it on your own servers against your own database, so the marketing data it holds sits in infrastructure you control. The software itself has no paid edition, but you pay for hosting, email delivery, administration and any partner support, and those costs recur. Mautic also depends on scheduled jobs for segment updates, campaign triggers and broadcasts, plus a messenger consumer when emails are queued, so someone must own that operations work.
Decide the CRM question first by listing the fields, lifecycle stages and activity records that sales relies on, then confirm with the Mautic plugin documentation which of them the HubSpot integration reads and writes in each direction. Ask the vendor or test in a staging environment whether two-way updates, deduplication and association mapping behave as your process requires. If the sync covers that list, Mautic can replace Marketing Hub while HubSpot CRM stays in place. If it does not, you are looking at a full CRM decision instead.
What a split stack must satisfy
Keeping HubSpot CRM while moving campaigns to Mautic creates two systems that both hold contact records. The requirements below decide whether that split stays accurate, lawful and maintainable after cutover.
One source of contact identity
Decide which system owns the canonical contact record and how a person is matched across both tools. Mautic and HubSpot each assign their own IDs, so the email address or another agreed unique key must drive matching. Duplicates created by form submissions on one side and imports on the other are the most common failure. Ask the integration vendor or your own team to document the match rule before the first sync runs.
Sync direction and field ownership
For each shared field, such as lifecycle stage, lead source or owner, name one system as the writer. Two-way sync without that rule causes values to flip back and forth. The HubSpot CRM Contacts API supports batch reads, creates, updates and upserts, but batch endpoints accept 100 records per request, so high-volume syncs need queuing and retry logic. Confirm these limits against your own record volumes.
Consent and suppression across tools
An unsubscribe or consent withdrawal recorded in Mautic must reach HubSpot, and the reverse applies too. Otherwise a contact removed from marketing in one tool may still receive email from the other. Map each suppression flag explicitly, test it with a known address, and record which system is the authority for opt-in evidence. Your privacy counsel should confirm the retention position for both records.
Marketing contact tier after cutover
HubSpot bills Marketing Hub by contact tier, and only contacts marked as marketing contacts count toward it. Once campaigns run from Mautic, many records may no longer need marketing status in HubSpot, which can change the tier. Confirm with HubSpot how contacts are reclassified and whether a lower tier applies at your next renewal, rather than assuming savings from contact counts alone.
Export and API limits for CRM data
HubSpot record exports are capped at 300 per rolling 24 hours and arrive by email link as CSV, XLS or XLSX files. Plan bulk contact moves, backfills and periodic reconciliation around that limit, using the API where exports fall short. Keep a dated copy of each export so you can prove what was moved and when.
Server and PHP runtime support
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. The project advises against shared hosting and recommends a VPS or dedicated server. Mautic also needs cron jobs and a messenger consumer for queued email, so the host must support background processes. Confirm your chosen version and PHP runtime before committing to a platform.
Which Mautic setup keeps HubSpot CRM in place
This option runs Mautic as the campaign, form and email engine while HubSpot CRM stays the system of record for contacts and companies. Mautic's documented integrations cover Salesforce through a plugin, and the Mautic HubSpot plugin page should be checked for the exact sync direction, supported objects and the Mautic version in use before you commit, because plugin support can differ between releases. A live sync keeps sales and marketing looking at the same records, but it depends on API calls that HubSpot limits.
- Batch size: the HubSpot Contacts API batch endpoints accept 100 records per request, so a large initial load or a nightly full resync is split into many calls that must be scheduled and retried.
- Ownership of fields: agree in writing which system wins when both edit the same property, and map custom properties before go-live.
- Operations load: the sync runs alongside Mautic's cron jobs, so failed jobs need monitoring on your side.
- Marketing contact tier: Mautic does not change HubSpot billing directly, but contacts that remain marketing contacts in HubSpot still count toward the tier.
- Licensing: Mautic is GPL-3.0 licensed, so the plugin, its hosting and your own changes remain under your control.
Before relying on this setup, confirm the plugin's current status, the sync scope and error handling in a test environment with a copy of your data.",
This option moves the marketing contact base into Mautic once, then exchanges CSV files at a set interval to keep the two systems roughly aligned. It avoids depending on a live integration, which suits teams whose sales data changes slowly or whose sync needs are limited to lists and lifecycle status. Mautic imports CSV files through its user interface with automatic column to field mapping, and the project recommends background imports with the mautic:import console command run by cron for large files, processed in batches of 100 rows by default.
- Export side: HubSpot record exports arrive as CSV, XLS or XLSX files by email link, and the account allows up to 300 exports per rolling 24 hours.
- Import side: Mautic's background import handles large files, so plan the cron schedule and check the import logs after each run.
- Staleness: changes made in one system between exchanges are invisible to the other until the next file cycle.
- Duplicates: agree a unique identifier, such as email address or a HubSpot record ID, so re-imports update rather than duplicate contacts.
- Effort: every cycle is manual or scripted work, which recurs for the life of the setup.
Confirm the export fields your sales team needs, and test one full cycle with a sample file before you decide on a schedule.",
This option applies when HubSpot is kept mainly for CRM and the marketing suite is used only to send newsletters. Mautic can keep segmentation, forms and automated campaigns, while listmonk is a self-hosted newsletter and mailing list manager, shipped as a single binary with a PostgreSQL database and licensed under AGPL-3.0. Splitting the work this way means each tool does one job, but it also means two platforms, two databases and two sets of subscriber lists to keep consistent.
- Newsletter scope: listmonk handles lists, templates and campaign analytics for broadcast mail, leaving automated journeys and lead scoring in Mautic or HubSpot.
- Subscriber consistency: unsubscribes and consent changes must reach both tools, so decide which system holds the authoritative preference record.
- Separate operations: each platform needs its own upgrades, backups and monitoring.
- Licensing: AGPL-3.0 carries network-use obligations if you modify listmonk and offer it to others, so have legal review it.
- Sending infrastructure: both tools depend on an email sending provider or your own mail relay, which is a cost and deliverability decision to make separately.
Confirm which tool owns consent and unsubscribe handling, and test that a suppression in one system is honored in the other.
How to deploy Mautic beside HubSpot CRM
This sequence takes Mautic from a sized server to live forms, email sending and tracking while HubSpot CRM keeps running as the system of record for sales. Each step ends with a check you can verify before the next one starts.
Size the server and confirm the hosting type
Your infrastructure or systems team picks a VPS or dedicated server in your own cloud account or data center, not shared hosting, because the Mautic project advises against shared hosting. Confirm the web server (Apache, Nginx or IIS), the database (MySQL 5.7 or higher with InnoDB, or MariaDB 10.2 or higher) and the PHP version against the requirements page for the release you plan to run. Ask your team to document who holds root access and where backups will be written. You know this step is done when a test host passes the requirements check with the chosen PHP, database and web server versions.
Choose the release line and install Mautic
Pick a release line from the supported releases list, favoring one whose security support runs well past your planned cutover, and check that the PHP versions it supports match your server. Mautic 7.3 is described as the long-term support release, so confirm its current status on the releases page before you choose it. Install with Composer using the recommended project template, or with the web or command-line installer for the production package. The work is done when the admin login works over HTTPS and the installer's health checks pass.
Connect HubSpot and map fields
Using the HubSpot integration plugin, authenticate Mautic against your HubSpot account with an account that has the permissions your admin confirms in writing. Decide which HubSpot contact properties sync to Mautic fields, which direction each one flows, and which record wins when both systems hold a value. Map company and contact identifiers so records are not duplicated on each sync. Ask HubSpot's administrator which marketing contact settings apply, because only contacts marked as marketing contacts affect your tier. The check is a test sync of a small, known set of contacts that shows the expected values on both sides.
Import the remaining contacts and lists
For contacts that do not come through the connection, use a CSV export and the Mautic import screen for small files, or the mautic:import console command run by cron for large files, which processes rows in batches of 100 by default. Your marketing operations lead confirms consent and suppression flags before import so opted-out people are not re-added. The step is complete when record counts in Mautic match the source file minus rejected rows, and the rejects are reviewed.
Stagger cron jobs for segments, campaigns and triggers
Configure separate cron entries for segment updates, campaign updates and campaign triggers, staggering their start times as the Mautic cron documentation advises so that two long-running jobs do not overlap. Add the broadcasts command for segment emails and set up a messenger consumer, which Mautic needs whenever emails are queued. Run each job once by hand and review the logs. Your platform team owns these schedules and their monitoring. The step is done when every job runs on schedule with a logged success and no backlog in the message queue.
Cut over forms, sending domains and tracking
Republish forms and landing pages inside Mautic, then point site embeds and links to the new URLs and set up redirects from the old HubSpot pages. Authenticate your sending domain with SPF, DKIM and DMARC records for the email provider you chose, and set Mautic's tracking script on each site. Your web and email teams test a submission end to end, confirming the contact appears in Mautic and syncs to HubSpot CRM. You know the cutover is complete when a live test form, a test email and a click-through all register correctly on both systems.
Which data lives in HubSpot CRM and which in Mautic
The first decision in this setup is the system of record for each object and field. HubSpot CRM keeps the contact and company records that sales works from, along with deals and tickets, while Mautic holds campaign membership, email engagement, segment logic and landing page tracking. Write the boundary down before any sync runs. For each field, name the system that is allowed to change it. Lifecycle stage, owner and deal association usually stay in HubSpot. Campaign membership, email opens and clicks, and segment membership usually stay in Mautic. Fields that both teams edit, such as job title or phone number, need an explicit rule, for example that the last change from a sales user wins, or that Mautic only writes to empty fields. Without that rule, the two systems will overwrite each other and the sync log will show the conflict without explaining it.
Duplicates are avoided by agreeing on one unique key before the first import. The HubSpot CRM Contacts API supports upserting contacts and batch endpoints limited to 100 records per request, so the key used by the integration, usually the email address, has to be the same key Mautic uses to match a contact. Test with a small illustrative set of records that includes a case-variant email and a contact that already exists in both systems, and confirm in the sync output that it updates one record rather than creating two. Ask the integration provider or your implementer exactly which property the upsert uses, and confirm how the plugin handles records that exist in HubSpot but have no Mautic match. Record exports from HubSpot, which return property values and associations as CSV, XLS or XLSX files, should be taken before cutover and stored outside both systems. Treat them as a point-in-time backup, not as a live copy, and check that the associations you need are included in the export.
Cost depends on the marketing contact flag in HubSpot, not on the total number of contacts in the CRM. HubSpot's knowledge base states that only contacts set as marketing contacts count toward the Marketing Hub tier and affect subscription cost. Once Mautic sends campaigns, the marketing flag on those contacts is the lever to watch. Decide whether sales-only contacts stay non-marketing in HubSpot, and whether the integration sets that flag as it syncs. A sync that marks every imported contact as marketing can move you into a higher tier even after Marketing Hub is cancelled, so check the flag state in a test before enabling a scheduled sync. Ask your HubSpot account representative to confirm the current tier structure and how your existing contacts are counted before you reduce the subscription.
Evidence to keep for the split
Keeping HubSpot CRM while moving campaigns to Mautic splits customer data across two systems that must agree on consent, identity and counts. The cards below list the records that show the split was done correctly and can be produced later for an internal review or an external assessment. DeployOpen prepares this evidence, but independent auditors and certification bodies are the ones who issue any attestation.
Field mapping document
This document records which HubSpot contact and company properties map to which Mautic fields, which side owns each value, and which direction each sync runs. Mautic's CSV import matches columns to fields automatically, so a reviewer should confirm every mapping that was accepted by default. Keep the version that was live on the cutover date, since later edits to properties often break the sync without anyone noticing.
Sync logs and error reports
Retain the logs from the HubSpot integration and the batch sync jobs, including failed records and the reasons given. Failed records are the first thing to reconcile, because a contact that never reached one system can still receive email from the other. Ask the team that operates the sync how long logs are kept and where they are stored, and confirm that they are included in the backup scope.
Consent and unsubscribe records in both systems
Keep the opt-in source, timestamp and unsubscribe history held in HubSpot and in Mautic, and show how they were reconciled at cutover. A contact who unsubscribed in one system must not be mailed from the other. Record the rule your team applied when the two records disagreed, and who approved it, because this is the evidence a privacy reviewer asks for first.
Cron job and queue monitoring records
Mautic depends on scheduled cron jobs for segment updates, campaign updates and campaign triggers, plus a broadcasts command and a messenger consumer when emails are queued. Keep the run history that shows these jobs executed on schedule after cutover, and the alerts that fired when they did not. Without these records, a campaign that silently stopped sending is hard to explain later.
Backup and restore test results
Keep the dated results of at least one restore of the Mautic database and its files into a separate environment, along with the time it took and what was verified afterward. A backup that was never restored is not evidence of recovery. Also record the last successful HubSpot export and where it is stored, since that export is the fallback if the cutover must be reversed.
Marketing contact counts before and after
Record the number of contacts marked as marketing contacts in HubSpot before the move, and the number of active contacts in Mautic after it. HubSpot bills only on marketing contacts, so this count explains any change to the subscription and shows whether contacts that stay in the CRM only were removed from marketing. Ask your HubSpot administrator to export this figure with a date stamp so it can be compared later.
Questions buyers ask before moving Marketing Hub
What does it cost to move Marketing Hub to Mautic while keeping HubSpot CRM?
The cost has two sides: one-time migration work and recurring hosting, sending and upkeep. Migration work depends on how many forms, emails, workflows, landing pages and tracking scripts you rebuild, how clean your contact data is, and how many sites need new tracking. Recurring costs include servers or a managed Mautic host, an email sending provider, staff time for cron jobs and upgrades, and any support retainer. Mautic itself has no paid edition, so the license is not a line item. Ask any implementation partner for a fixed-scope quote that lists each deliverable separately, and ask HubSpot to confirm what your current subscription and seat costs are so you can compare them against the same scope.
How long does a Marketing Hub to Mautic move usually take?
The duration depends on the team and the content being moved, not on a fixed formula. The main variables are the number of active campaigns and workflows, the number of forms and landing pages, how many websites carry HubSpot tracking, and whether your team has someone who can own Mautic's cron jobs and queue processing from day one. Timelines should appear in the written scope, with milestones for contact import, CRM sync, template rebuilds and tracking cutover. We do not publish durations, so ask for a timeline tied to your inventory of assets.
Can our internal team migrate to Mautic without outside help?
A capable team can run the move alone if it has people who can administer a PHP application on Symfony, manage a database, configure email delivery and maintain scheduled jobs. Mautic's documentation says it should not run on shared hosting and recommends a VPS or dedicated server, and cron jobs for segments, campaigns and broadcasts must be staggered and monitored. Teams without these skills usually need a partner for setup, hardening and backups, or a retainer for upgrades. Mautic's release cadence includes monthly patches, so budget for ongoing maintenance regardless of who does the first build.
How do HubSpot contact tiers change after the move, and when does HubSpot still charge?
HubSpot bills Marketing Hub by contact tier, and only contacts set as marketing contacts count toward that tier and affect subscription cost. After the move, campaigns and email sending run in Mautic, so contacts you no longer send marketing email to should be set as non-marketing in HubSpot to reduce the count. HubSpot can still charge if contacts remain marketing contacts in HubSpot, which can happen when forms, lists or workflows are left running there during a transition. Confirm the current tier, the marketing contact rules and any downgrade timing with HubSpot's knowledge base and your account team before you change contact status.
Does the Mautic HubSpot plugin sync companies and deals as well as contacts?
Confirm this on the Mautic HubSpot plugin page before you plan the integration, because coverage of object types and sync direction varies by plugin version. HubSpot's CRM Contacts API supports reading, creating, updating and upserting contacts, with batch endpoints limited to 100 records per request, so contact volume affects sync time. Company and deal objects use their own endpoints, and a plugin that covers only contacts would leave pipeline data in HubSpot. Ask for a field-by-field mapping that shows which objects, properties and associations move in each direction, and test it on a copy of your data first.
What happens to HubSpot forms, tracking and landing pages after the move?
HubSpot forms and landing pages do not move automatically. Each form must be rebuilt in Mautic, with its fields mapped to Mautic contact fields, and each landing page or embedded form on your websites must be replaced or repointed. Tracking scripts from HubSpot on your sites need to be removed or replaced with Mautic tracking, and you must confirm that consent banners and analytics still record the right events during the cutover. Plan a parallel period, check form submissions against both systems, and set redirects where page URLs change. Your web team should verify each form and page before the old HubSpot assets are turned off.
What should a fixed-scope quote for this move include?
A fixed-scope quote should name every deliverable, the systems in scope, and the acceptance test for each item. Ask for the following in writing:
- An inventory of HubSpot assets (contacts, lists, forms, emails, workflows, landing pages, tracking) and what happens to each
- The HubSpot CRM sync design, including which objects and fields move and in which direction
- Hosting, email sending and backup responsibilities, and who pays for each
- Cron, queue and upgrade procedures, with the Mautic release line you will run
- Cutover, rollback and post-move support terms
DeployOpen works on fixed-scope engagements agreed in writing before work starts, and ongoing support is available as a retainer. We do not publish a price list, so the quote follows from that written scope.
How DeployOpen works on this
DeployOpen plans, implements, integrates, documents and supports self-hosted open-source platforms inside your own infrastructure. For this split, we scope how Mautic takes over campaigns, forms and email while HubSpot CRM stays the system of record for sales, and we agree the data boundaries in writing before any work starts.
How we scope
- Written scope lists which HubSpot assets move to Mautic and which stay in HubSpot CRM
- Data ownership is mapped per object: contacts, companies, lists, forms and email history
- Contact sync direction, field mapping and the marketing contact count are agreed up front
- Engagements are fixed-scope, with deliverables and timelines confirmed in writing before work begins
How we build
- We install Mautic in your cloud account or data center on a supported PHP and database stack
- We configure the HubSpot integration and test contact and company sync against sample records
- We schedule the cron jobs and the broadcasts and messenger processes that Mautic needs to run campaigns
- We run security testing on the Mautic deployment and its integration endpoints before go-live
How we hand over
- You receive documentation of the sync design, data flows, credentials handling and cron schedules
- Runbooks cover import jobs, sync failures and how to confirm which system holds each record
- Migration and cutover steps are written so your team can repeat or audit them later
- We document the controls and evidence that support your compliance assessments, without issuing any audit opinion
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover
- Upgrades track Mautic's supported release lines, so your team plans version moves in advance
- Retainers can cover monitoring of sync jobs, email deliverability checks and patch application
- Ask for a quote that separates one-time build work from recurring support and testing effort

