CRM migration
Field-level mapping, validation, and rollback between Merlin and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.
Merlin
Source
HubSpot
Destination
Compatibility
10 of 10
objects map 1:1 between Merlin and HubSpot.
Complexity
BStandard
Timeline
48–72 hours
Overview
Merlin stores work as Projects, Tasks, Milestones, and Resources — a project-management model with hierarchical task trees, time tracking, and resource assignments. HubSpot organizes around Contacts, Companies, Deals, and Activities — a sales-and-service model where the deal record is the primary grouping unit. These models have fundamentally different orientations: Merlin tracks what needs to get done; HubSpot tracks who you are working with and where deals stand. Migrating from Merlin to HubSpot requires deciding whether project records become HubSpot deals, custom objects, or ticket records, then mapping task history into HubSpot's engagement timeline (calls, emails, meetings, notes). FlitStack AI extracts all Merlin objects via the API or structured export, transforms field names and data types to match HubSpot's property schema, creates any required custom properties on the HubSpot side, and loads data in dependency order (contacts first, then companies, then deals, then activities). Original create dates, task completion timestamps, and milestone dates are preserved as custom datetime properties since HubSpot's native CreatedDate is set at import time. Owner resolution matches Merlin resource email addresses to HubSpot user emails so assignments land correctly. Workflows, automations, and resource calendars do not have HubSpot equivalents — FlitStack exports those definitions as JSON for your admin to rebuild manually.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Merlin object lands in HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Merlin
Project
HubSpot
Deal or Custom Object
1:1Merlin projects map to HubSpot deals when the project represents a billable client engagement. If the project tracks internal work without a sales关联, a HubSpot custom object (Enterprise tier) is the better container. FlitStack creates the custom object schema in HubSpot before loading any project data, so field mapping references the correct object type from the start.
Merlin
Task
HubSpot
Engagement (Task/Call/Meeting/Note)
1:1Merlin tasks map to HubSpot engagements — task subject becomes the engagement subject, completion status becomes a custom property, and the original due date is preserved as a custom datetime property. Sub-tasks flatten into individual engagement records; the parent-child relationship is preserved in a custom task hierarchy field on each record.
Merlin
Milestone
HubSpot
Custom Properties on Deal
1:1HubSpot has no native milestone object. Each Merlin milestone (name, target date, completion date, status) migrates as a custom property group on the associated deal. If multiple milestones exist per project, FlitStack creates a custom object with milestone records linked to the parent deal via a custom association property.
Merlin
Resource / Team Member
HubSpot
HubSpot User
1:1Merlin resources are team members with email, role, and utilization data. FlitStack resolves each resource by email against HubSpot users. Unmatched resources are flagged for manual resolution — either inviting them to HubSpot or assigning their tasks to an existing user. Utilization percentage migrates as a custom number property on the HubSpot user record.
Merlin
Time Entry
HubSpot
Custom Properties on Deal
1:1Merlin time entries (date, duration, billable flag, notes) have no HubSpot equivalent. FlitStack aggregates time entries per project into a custom object linked to the parent deal, storing total hours, billable hours, and last-entry date as custom numeric and datetime properties. Your billing team uses these as reference data in HubSpot reports.
Merlin
Project Attachment
HubSpot
HubSpot File
1:1File attachments on Merlin projects and tasks re-upload to HubSpot Files and attach to the corresponding deal or contact record. File size limits apply (HubSpot caps individual files at 250 MB). Inline images in task notes are downloaded, re-hosted in HubSpot's file storage, and the link is updated in the note body.
Merlin
Project Note
HubSpot
HubSpot Engagement Note
1:1Merlin notes attached to projects or tasks migrate as HubSpot engagement notes. Rich-text formatting is preserved where the export format supports it; plain-text fallbacks are applied for notes exported from unsupported formats. Notes retain their original create timestamp as a custom datetime property.
Merlin
Custom Field (Project-level)
HubSpot
Custom Property on Deal or Custom Object
1:1Merlin custom fields on projects (drop-downs, text, numbers, dates) require corresponding custom properties in HubSpot. FlitStack reads the custom field schema from Merlin, creates matching properties in HubSpot under Settings > Properties before import, and maps values directly. Pick-list values are created as HubSpot option sets with the original labels preserved.
Merlin
Custom Field (Task-level)
HubSpot
Custom Property on Engagement
1:1Task-level custom fields in Merlin (priority flags, department tags, billing codes) become custom properties on the HubSpot engagement record. Since engagements do not support custom properties natively in all HubSpot tiers, FlitStack creates a custom object for task metadata and links each engagement to its corresponding metadata record via a custom lookup field.
Merlin
Workflow / Automation
HubSpot
N/A
1:1Merlin automations (triggers on task status, due-date notifications, assignment rules) have no HubSpot equivalent at the data layer. FlitStack exports the automation definitions as a JSON schema document that your HubSpot admin uses to rebuild equivalent workflows in HubSpot's Workflows tool. This export is included in the migration package at no additional charge.
| Merlin | HubSpot | Compatibility | |
|---|---|---|---|
| Project | Deal or Custom Object1:1 | Fully supported | |
| Task | Engagement (Task/Call/Meeting/Note)1:1 | Fully supported | |
| Milestone | Custom Properties on Deal1:1 | Fully supported | |
| Resource / Team Member | HubSpot User1:1 | Fully supported | |
| Time Entry | Custom Properties on Deal1:1 | Fully supported | |
| Project Attachment | HubSpot File1:1 | Fully supported | |
| Project Note | HubSpot Engagement Note1:1 | Fully supported | |
| Custom Field (Project-level) | Custom Property on Deal or Custom Object1:1 | Fully supported | |
| Custom Field (Task-level) | Custom Property on Engagement1:1 | Fully supported | |
| Workflow / Automation | N/A1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Merlin gotchas
No public API for automated export
Document upload limit differences by tier are migration-critical
Conversation metadata is not exported
No contacts or CRM objects means context must be rebuilt
HubSpot gotchas
Marketing Contacts billing model is migration-critical
Feature tier gating is not visible until onboarding
Mandatory onboarding fees inflate year-one cost
HubSpot CSV importer cannot migrate engagements or attachments
Custom objects require Enterprise and a pre-existing schema
Pair-specific challenges
Migration approach
Extract Merlin schema and data via API
FlitStack connects to Merlin using API credentials with read-only scope. We extract the full object inventory — projects, tasks, milestones, resources, time entries, notes, and attachments — along with your custom field definitions and pick-list values. The extraction runs in batches under Merlin's rate-limit configuration, and we generate a schema manifest that documents every field name, type, and option set before we begin any transformation.
Design HubSpot target schema
Based on the Merlin schema manifest, FlitStack creates a HubSpot setup plan: custom properties on deals, a milestone custom object if your projects have multiple milestones, and a task-metadata custom object to carry Merlin's task-level custom fields. We deliver the schema plan for your HubSpot admin to apply under Settings > Properties before the data load begins. This ensures HubSpot is ready to accept each field type without import errors.
Resolve Merlin resources to HubSpot users
Each Merlin resource email is matched against HubSpot user emails using an exact string comparison to ensure accurate owner resolution across both platforms. Unmatched resources are flagged with their email address, role, and utilization data so your team can either invite them to join HubSpot as users or assign their project tasks to a fallback owner before the migration runs. This resolution step is critical because no engagement record lands in HubSpot without a valid owner reference — unresolved owners would leave task assignments blank and break downstream reporting on deal activity by team member.
Run sample migration with field-level diff
A representative slice — typically 100–300 records spanning projects, tasks, milestones, and attachments — migrates first as a validation step before committing the full dataset. We generate a field-level diff report that compares every source value against its corresponding destination value in HubSpot, so you can verify milestone mapping accuracy, owner resolution correctness, and custom property population across the sample. This report lets you confirm that date formats, pick-list values, and numeric fields render correctly in HubSpot before the full run commits, reducing the risk of discovering data quality issues after the entire migration has completed.
Execute full migration with delta-pickup
The full dataset loads into HubSpot in dependency order: companies first (for deal associations), then deals with custom properties, then engagement records linked to those deals. A delta-pickup window of 24–48 hours captures any Merlin records modified during cutover. FlitStack generates an audit log of every record operation, and one-click rollback is available if reconciliation identifies a data integrity issue.
Platform deep dives
Merlin
Source
Strengths
Weaknesses
HubSpot
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Merlin and HubSpot.
Object compatibility
1 of 8 objects need a manual workaround.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Merlin: Not publicly documented.
Data volume sensitivity
Merlin doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Merlin to HubSpot migration scoping. Not seeing yours? Book a call.
Walk through your Merlin to HubSpot migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Merlin
Other ways to arrive at HubSpot
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.