Helpdesk migration
Field-level mapping, validation, and rollback between Rooftop and HubSpot Service Hub. We move data and schema; workflows are rebuilt natively in HubSpot Service Hub.
Rooftop
Source
HubSpot Service Hub
Destination
Compatibility
9 of 12
objects map 1:1 between Rooftop and HubSpot Service Hub.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Rooftop to HubSpot Service Hub is a CSV-first migration constrained by Rooftop's lack of a documented public API. All data extraction requires UI-based or CSV downloads from Rooftop, which means incremental or real-time sync is not feasible and the export quality directly determines migration completeness. We scope the export in full before ingestion, map every Rooftop object (Customers, Companies, Agents, Conversations, Tags, Custom Ticket Fields) to its HubSpot Service Hub equivalent (Contacts, Companies, Users, Ticket Conversations, Labels, Custom Properties), and use HubSpot's REST and Bulk APIs to handle the engagement layer that HubSpot's native CSV importer cannot cover. Knowledge base articles migrate as HubSpot knowledge base articles with article body preserved. Workflows, automations, macros, and routing rules do not migrate; we deliver a written inventory of every object requiring rebuild in HubSpot's automation builder. Timeline ranges from three to five weeks for straightforward accounts under 10,000 tickets to eight to twelve weeks for accounts with large engagement histories or complex custom field schemas.
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.
Source platform
Rooftop platform overview
Scorecard, SWOT, gotchas, and pricing for Rooftop.
Destination platform
HubSpot Service Hub platform overview
Scorecard, SWOT, gotchas, and pricing for HubSpot Service Hub.
Data migration guide
The complete HubSpot Service Hub migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
HubSpot Service Hub migration checklist
Pre- and post-cutover tasks for moving onto HubSpot Service Hub.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Rooftop object lands in HubSpot Service Hub, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Rooftop
Customer
HubSpot Service Hub
Contact
1:1Rooftop Customer records map to HubSpot Contact. We preserve email, full name, phone, and any custom properties found in the Rooftop export. The contact record is created before any ticket import so that the contact lookup is satisfied at the moment of ticket insert. Rooftop customer metadata (created date, last updated) migrate as HubSpot contact properties. Where Rooftop stores multiple email addresses per customer, the primary email maps to HubSpot email and additional addresses migrate to a custom text property.
Rooftop
Company
HubSpot Service Hub
Company
1:1Rooftop Company records map to HubSpot Company. Company name, domain, and any association fields migrate directly. We use the Rooftop company domain as a dedupe key during import to prevent duplicate company records. Company is created before Contact import where possible so that the Company lookup relationship is satisfied at Contact insert time.
Rooftop
Ticket
HubSpot Service Hub
Ticket
1:1Rooftop Tickets map to HubSpot Tickets. The Rooftop ticket status (open, pending, resolved, closed) maps to a HubSpot ticket pipeline stage. Rooftop priority maps to a HubSpot ticket priority property. Custom ticket fields from Rooftop are recreated as HubSpot custom ticket properties before import and mapped via the CSV header or API property reference. Ticket owner resolves to the HubSpot User by email match.
Rooftop
Conversation
HubSpot Service Hub
Ticket Conversation
1:1Rooftop conversation threads attached to a ticket map to HubSpot ticket conversation records. We preserve message ordering, timestamps, sender attribution, and internal notes flag. HTML or plain-text formatting is normalized during the transform step. The parent ticket lookup is resolved at migration time by matching the Rooftop ticket ID to the newly created HubSpot ticket ID.
Rooftop
Agent
HubSpot Service Hub
User
1:1Rooftop Agent records map to HubSpot Users. We resolve agents by email match to the destination HubSpot portal's user list. Rooftop role and team assignment fields map to HubSpot User Role and HubSpot Team membership. Any Rooftop agent without a matching HubSpot User is held in a reconciliation queue for the customer's admin to provision before ticket import resumes, because OwnerId references are required on ticket records.
Rooftop
Tag
HubSpot Service Hub
Label
lossyRooftop tags applied to tickets for categorization migrate to HubSpot Ticket Labels. Where the Rooftop tagging model uses hierarchical or nested tag structures, we flatten the tag list to a flat label array that HubSpot's label field accepts. The customer selects tag strategy during scoping, either preserving the full tag hierarchy as a custom text property or adopting HubSpot's simpler label model.
Rooftop
Custom Ticket Field
HubSpot Service Hub
Custom Ticket Property
lossyCustom fields vary by Rooftop deployment. We inventory all custom field names, data types, and picklist values during scoping, then recreate each as a HubSpot custom ticket property before import. Field types are mapped: text fields to single-line text or multiple-line text, picklist fields to dropdown or radio select, date fields to date picker, numeric fields to number. Required fields in HubSpot are set to optional during import and made required after migration completes.
Rooftop
Attachment
HubSpot Service Hub
File
1:1File attachments associated with tickets or conversations migrate by URL reference or re-upload to HubSpot. Attachment size limits (HubSpot supports up to 60 MB per file) and supported file types apply. We flag any attachment exceeding the size limit during scoping and recommend re-upload post-migration by the customer admin. Inline images embedded in conversation HTML are extracted and re-uploaded separately.
Rooftop
Knowledge Base Article
HubSpot Service Hub
Knowledge Base Article
1:1KB articles and categories exported from Rooftop migrate to HubSpot knowledge base articles. Article body content is preserved in full. Internal Rooftop article ID references are remapped to HubSpot article IDs in the handoff document. Category hierarchy in Rooftop maps to HubSpot knowledge base categories or is flattened into the article's category tag depending on the destination configuration. Article publish status is preserved as a draft or published property in HubSpot.
Rooftop
Engagement: Email (via conversation)
HubSpot Service Hub
Ticket Conversation
1:1Email-style message records in Rooftop conversation threads migrate as HubSpot ticket conversation records. The sender email address resolves to the HubSpot Contact record via the contact email match. Email subject lines from Rooftop are preserved in the conversation body with a formatted header. HubSpot's native CSV importer cannot ingest email engagements; all conversation history is handled via the API-based import path.
Rooftop
Owner
HubSpot Service Hub
User
1:1Rooftop ticket owner references resolve to HubSpot User records by email match. Any Rooftop owner record without a matching HubSpot User is flagged in the pre-migration reconciliation report. The customer admin provisions missing HubSpot Users before production migration begins. Owner resolution must complete before ticket import because ticket ownership is a required field in HubSpot Service Hub pipelines.
Rooftop
Ticket Status
HubSpot Service Hub
Ticket Pipeline Stage
lossyRooftop ticket status values (open, pending, resolved, closed, or any custom statuses) are mapped to HubSpot ticket pipeline stage values. We create a HubSpot ticket pipeline that mirrors the Rooftop status flow before migration. Closed status in Rooftop maps to a HubSpot closed stage; any custom statuses are recreated as stage values in the pipeline. Stage probabilities migrate from Rooftop to HubSpot stage percentage where those values are available in the export.
| Rooftop | HubSpot Service Hub | Compatibility | |
|---|---|---|---|
| Customer | Contact1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Ticket | Ticket1:1 | Fully supported | |
| Conversation | Ticket Conversation1:1 | Fully supported | |
| Agent | User1:1 | Fully supported | |
| Tag | Labellossy | Fully supported | |
| Custom Ticket Field | Custom Ticket Propertylossy | Fully supported | |
| Attachment | File1:1 | Fully supported | |
| Knowledge Base Article | Knowledge Base Article1:1 | Fully supported | |
| Engagement: Email (via conversation) | Ticket Conversation1:1 | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Ticket Status | Ticket Pipeline Stagelossy | 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.
Rooftop gotchas
No documented public API for data export
Slow search and loading performance impacts data review
Small verified review base limits migration confidence
HubSpot Service Hub gotchas
Rate limits throttle large migration API calls
Side conversations and Zendesk macros have no HubSpot equivalent
HubSpot stores ticket history as fragmented engagement objects
Custom Objects require Enterprise tier in HubSpot
Ticket pipeline stage probability values do not export cleanly
Pair-specific challenges
Migration approach
Migration scope and Rooftop export coordination
We audit the Rooftop portal for record counts (customers, companies, tickets, agents, knowledge base articles), custom field inventory, and tag taxonomy. Because Rooftop has no API, we coordinate with the customer to request full CSV exports of all ticket data, customer records, company records, and agent profiles. We schedule export requests during off-peak hours to avoid Rooftop's loading-time constraints. The scope document defines the object mapping, custom field list, and any known data quality issues that require cleansing before import into HubSpot.
HubSpot schema preparation
Before any data moves, we configure the HubSpot destination: ticket pipelines and stages mirroring the Rooftop status flow, custom ticket properties matching every Rooftop custom field name and type, knowledge base categories matching the Rooftop KB structure, agent profiles created as HubSpot Users with the correct seat type and team assignments, and ticket routing rules scoped for post-migration rebuild. This schema preparation happens in a HubSpot sandbox or directly in production depending on the customer's preference, with the admin signing off before migration begins.
Data extraction and transform
We receive the Rooftop CSV exports and validate record counts against the scope. Each export undergoes a transform step: Rooftop field headers map to HubSpot property names, custom field values are validated against picklist constraints, email addresses are validated for format, agent emails are matched to HubSpot User records, and ticket timestamps are normalized to UTC for HubSpot ingestion. Any records failing validation are flagged in a pre-flight report with a resolution path before the migration batch is finalized.
Production migration in dependency order
We run production migration in record-dependency order: Contacts and Companies first to establish the foundational CRM records, then Agents as HubSpot Users, then Tickets with their parent Contact and Company lookups resolved, then conversation history via HubSpot REST API for records that exceed CSV importer capability, then knowledge base articles with ID remapping. Each phase emits a row-count reconciliation report showing records imported versus records skipped or deferred.
Cutover, validation, and handoff
We run a final delta migration of any records modified during the migration window, then deliver the full reconciliation report showing record counts by object, records skipped, and records deferred with reasons. We deliver the automation inventory document mapping every Rooftop workflow, macro, and routing rule to its HubSpot equivalent for the admin to rebuild. We do not rebuild workflows or macros inside the migration scope. We support a one-week hypercare window for post-go-live reconciliation issues raised by the customer team. Post-migration admin support, training, and workflow rebuild are separate engagements.
Platform deep dives
Rooftop
Source
Strengths
Weaknesses
HubSpot Service Hub
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. 2 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Rooftop and HubSpot Service Hub.
Object compatibility
2 of 7 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Rooftop: Not publicly documented.
Data volume sensitivity
Rooftop 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 Rooftop to HubSpot Service Hub migration scoping. Not seeing yours? Book a call.
Walk through your Rooftop to HubSpot Service Hub migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Rooftop
Other ways to arrive at HubSpot Service Hub
Same-Helpdesk migrations
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.