Helpdesk migration
Field-level mapping, validation, and rollback between Request Tracker and HubSpot Service Hub. We move data and schema; workflows are rebuilt natively in HubSpot Service Hub.
Request Tracker
Source
HubSpot Service Hub
Destination
Compatibility
10 of 12
objects map 1:1 between Request Tracker and HubSpot Service Hub.
Complexity
CModerate
Timeline
6-9 weeks
Overview
Moving from Request Tracker to HubSpot Service Hub is a structural migration across two fundamentally different helpdesk models. RT organizes work around Queues with per-queue custom lifecycles and server-side Scrips triggered by ticket events; HubSpot uses Pipelines with stages and a visual automation builder. RT has no bulk REST API, so extraction relies on tab-delimited spreadsheet exports that require pre-processing before they can enter a standard migration pipeline, and RT stores attachments as base64-encoded blobs in the database rather than linked files. We decode those blobs, reconstruct filenames and MIME types, and attach them to the correct HubSpot ticket conversation thread. We do not migrate RT Scrips, Templates, or queue-level automation rules as code; we deliver a written inventory of every active Scrip and Template for the customer's admin to rebuild in HubSpot's automation builder. RT's unlimited-queue model maps to HubSpot Pipelines, and each RT queue's custom lifecycle stages are recreated as Pipeline stages in HubSpot Service Hub Professional or above.
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
Request Tracker platform overview
Scorecard, SWOT, gotchas, and pricing for Request Tracker.
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 Request Tracker 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.
Request Tracker
Ticket
HubSpot Service Hub
Ticket
1:1RT Tickets map directly to HubSpot Tickets. We map Subject to hs_ticket_subject, Status to hs_ticket_status, Priority to hs_ticket_priority, and Created to hs_ticket_createdate. RT's custom lifecycle statuses map to HubSpot Pipeline stage values, and each RT Queue becomes a HubSpot Pipeline. The RT ticket ID is preserved in a custom property rt_original_id__c for audit reconciliation.
Request Tracker
Queue
HubSpot Service Hub
Pipeline
1:1Each RT Queue maps to a HubSpot Service Hub Pipeline. RT's per-queue custom lifecycle stages (e.g., new, open, stalled, resolved, rejected, or any custom statuses the RT admin defined) map to HubSpot Pipeline stage values. Queue-level SLA configurations and access controls require manual recreation in HubSpot because RT permissions are not exposed in a structured export format.
Request Tracker
User
HubSpot Service Hub
Contact
1:1RT distinguishes Privileged (staff) and Unprivileged (requestor) users. Privileged RT users with login access map to HubSpot Contacts that also serve as agents; Unprivileged RT users map to HubSpot Contacts as requesters. RT name, email, organization, and phone fields map to HubSpot contact properties. Role assignment (AdminCc, Cc, OwnerDelegated) requires reconstruction in HubSpot's sharing and team model post-migration.
Request Tracker
Custom Field
HubSpot Service Hub
Custom Ticket Property
lossyRT unlimited Custom Fields of type Select-Box, Freeform text, Date, IP Address, and others map to HubSpot custom ticket properties. We pre-create the equivalent HubSpot properties before ticket migration begins, matching field type where possible (RT Select-Box maps to HubSpot single-select or multi-select; RT Date maps to HubSpot date picker). Queue-scoped RT Custom Fields are mapped to the relevant HubSpot Pipeline so that only tickets in the matching Pipeline expose those properties.
Request Tracker
Transaction
HubSpot Service Hub
Conversation (hs_conversation_thread)
1:1Every RT ticket action — reply, comment, status change, field update — creates a Transaction record ordered by Created date. We export the full transaction log and thread it back into HubSpot as conversation messages: RT reply content becomes a HubSpot customer reply; RT comment content becomes a HubSpot internal note (hs_internal_is_private = true). The chronological order is preserved by setting hs_timestamp to the original RT Created value.
Request Tracker
Attachment
HubSpot Service Hub
Ticket Attachment
1:1RT stores file attachments as base64-encoded blobs in the Attachments table linked to Transactions by ID. We run a targeted SQL export per ticket's attachment IDs, decode the base64 blob, reconstruct the original filename and MIME type from RT's metadata, and attach the resulting file to the HubSpot ticket conversation thread. This extraction step is the highest-risk part of RT migration because blob size and the number of attachment records directly drive extraction timeline.
Request Tracker
Article (Knowledge Base)
HubSpot Service Hub
HubSpot Knowledge Base Article
1:1RT Articles in classes (e.g., General) export via RT::Extension::Import::CSV using the --article-class flag and are mapped to HubSpot knowledge base articles. Article Name maps to hs_article_title, Synopsis to a hubspot internal summary field, and Content to the article body. RT article Custom Fields require pre-creation as HubSpot article custom properties before import. We flag that RT article classes do not map to HubSpot article categories — categories must be manually organized post-import.
Request Tracker
Group
HubSpot Service Hub
Team
lossyRT Groups organize users for queue-level and ticket-level permission grants (AdminCc, Cc, OwnerDelegated). Group membership does not export in a flat file — we reconstruct it by querying the GroupMembers table and building a membership list per group. Groups map to HubSpot Teams, and group members map to HubSpot user team membership. RT's RTx::QueueMover-style queue transfer logic does not have a HubSpot equivalent and must be documented for the admin to implement manually.
Request Tracker
Template
HubSpot Service Hub
Workflow Email Template (documented, not migrated)
1:1RT Templates define email and notification text used by Scrips, with token placeholders and conditional logic. We export Template names and content as structured text data and preserve the placeholder syntax so notification wording survives as reference documentation. RT Templates cannot be imported into HubSpot because HubSpot email templates use a different token syntax (e.g., {{contact.firstname}} vs RT's [% Ticket.FirstQueue %]). We deliver the full template content as a written reference document for the admin to rebuild in HubSpot's email template editor.
Request Tracker
Time Tracking
HubSpot Service Hub
Time Entry (via custom property or manual)
1:1RT stores Estimated-minutes and Worked-minutes natively on each ticket. RT-Extension-TimeTracking adds structured time-entry records with User, Ticket, Time Worked, and Note. We export native ticket time fields to HubSpot custom number properties (rt_estimated_minutes__c, rt_worked_minutes__c). Structured time-entry records from the TimeTracking extension are exported as a separate object and either mapped to HubSpot custom object records or provided as a CSV for manual import depending on the customer's HubSpot tier.
Request Tracker
Scrip
HubSpot Service Hub
Workflow (documented, not migrated)
1:1RT Scrips are server-side Perl automation rules triggered by ticket lifecycle events. They are tied to a specific RT instance's codebase and cannot be migrated to a non-RT destination. We deliver a written inventory of every active Scrip including its description, queue scope, template dependency, and condition logic. The inventory document includes recommended HubSpot Workflow equivalents (trigger type, conditions, actions) so the customer's admin has a rebuild guide rather than a blank slate.
Request Tracker
Asset
HubSpot Service Hub
Custom Object (CMDB)
1:1RT Assets (from RTx::AssetTracker or the standalone RT Assets extension) catalog configuration items. Asset records export via REST API or database query and map to a HubSpot custom object with equivalent fields. We pre-create the custom object schema in HubSpot including lookup relationships to Contact or Company if applicable before importing asset records.
| Request Tracker | HubSpot Service Hub | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Queue | Pipeline1:1 | Fully supported | |
| User | Contact1:1 | Fully supported | |
| Custom Field | Custom Ticket Propertylossy | Fully supported | |
| Transaction | Conversation (hs_conversation_thread)1:1 | Fully supported | |
| Attachment | Ticket Attachment1:1 | Fully supported | |
| Article (Knowledge Base) | HubSpot Knowledge Base Article1:1 | Fully supported | |
| Group | Teamlossy | Fully supported | |
| Template | Workflow Email Template (documented, not migrated)1:1 | Fully supported | |
| Time Tracking | Time Entry (via custom property or manual)1:1 | Mapping required | |
| Scrip | Workflow (documented, not migrated)1:1 | Fully supported | |
| Asset | Custom Object (CMDB)1: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.
Request Tracker gotchas
Tab-delimited export instead of CSV
Attachments stored as database blobs
RT-to-RT upgrades require original RT directory
No native bulk REST API
Comma-heavy article content breaks CSV imports
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
Discovery and RT extraction method selection
We audit the source RT instance across version (4.2 or 5.0), hosting model (self-hosted on customer infrastructure or managed cloud), database engine (MySQL or PostgreSQL), ticket volume, queue count, active custom lifecycles, user roster size, attachment blob volume estimate, and any RT extensions in use (TimeTracking, AssetTracker). We determine the extraction method: direct database read for self-hosted instances, tab-delimited export workaround for managed cloud, or a hybrid approach if some objects are accessible via DB and others require the spreadsheet export. The discovery output is a written scope document, an RT-to-HubSpot object mapping table, and a recommended HubSpot Service Hub tier (Starter, Professional, or Enterprise) based on pipeline count, custom property limits, and automation requirements.
RT data extraction and pre-processing
We extract data from RT in dependency order: Users and Groups first, then Queues and Custom Field definitions, then Tickets with full transaction history, then Attachments. The tab-delimited export is sanitized and converted to RFC 4180 CSV. Attachment blobs are decoded from base64, filenames and MIME types are reconstructed from RT metadata columns, and files are staged in a structured file store. Article data is exported via the Import::CSV extension's --article-class flag with explicit quote_char and sep_char configuration. We emit row counts and spot-check samples against the RT UI for every object before the extracted data enters the transformation pipeline.
HubSpot schema provisioning and pipeline design
We provision the HubSpot Service Hub destination schema before any record import. This includes creating HubSpot Pipelines (one per RT Queue), configuring Pipeline stage values to match RT custom lifecycle statuses, creating custom ticket properties for every RT Custom Field with type-appropriate HubSpot field types, creating the knowledge base structure for RT Article mapping, and configuring team membership for RT Group reconstruction. Schema provisioning happens in a HubSpot Sandbox or on the production account with a test record validation step before full import begins.
Record migration in dependency order
We run the production migration in record-dependency order: Contacts (from RT Users, with the Privileged/Unprivileged distinction resolved), Companies (from RT user organization fields or a separate organization export), Pipelines (deployed before tickets), Tickets with conversations (RT Transactions threaded as HubSpot replies and internal notes), Attachments (files re-attached to the correct HubSpot ticket conversation thread by RT transaction ID lookup), Time Tracking data (as custom ticket properties or a custom object), Articles (mapped to HubSpot knowledge base articles with category assignment deferred to the admin), and Assets (mapped to a HubSpot custom object). Each phase emits a row-count reconciliation report before the next phase begins.
HubSpot API rate-limit management and chunking
HubSpot's CRM API enforces a burst limit of 100 requests per 10 seconds for Starter accounts, 190 requests per 10 seconds for Professional and Enterprise accounts, and 5 requests per second for the Search API regardless of tier. We implement exponential backoff on 429 responses, batch record creation where the HubSpot bulk API is available (Professional+), and chunk attachment uploads separately from record imports. The HubSpot Search API (5 req/s) is used only for lookup resolution (e.g., matching HubSpot contact IDs by email); bulk imports use the ticket and conversation batch endpoints to stay within burst limits without saturating the Search API capacity that the customer's ongoing operations also need.
Cutover, validation, and automation rebuild handoff
We freeze RT writes during the cutover window, run a final delta migration of any records created or modified during the migration window, then enable HubSpot Service Hub as the system of record. We deliver the Scrip and Template inventory document to the customer's admin team with a rebuild guide for each Scrip mapped to a HubSpot Workflow equivalent. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild RT Scrips as HubSpot Workflows inside the migration scope; that work is handled by the customer's admin using the inventory document, or as a separate engagement.
Platform deep dives
Request Tracker
Source
Strengths
Weaknesses
HubSpot Service Hub
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 3 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Request Tracker and HubSpot Service Hub.
Object compatibility
3 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
Request Tracker: Not publicly documented.
Data volume sensitivity
Request Tracker 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 Request Tracker to HubSpot Service Hub migration scoping. Not seeing yours? Book a call.
Walk through your Request Tracker 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 Request Tracker
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.