Skip to content

How to Migrate from HubSpot Service Hub to Zendesk: Complete Guide

Complete guide to migrating from HubSpot Service Hub to Zendesk — CRM decoupling, engagement assembly, API constraints, and what can't be moved.

Raaj Raaj · · 19 min read
How to Migrate from HubSpot Service Hub to Zendesk: Complete Guide
TALK TO AN ENGINEER

Planning a migration?

Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.

Schedule a free call
  • 1,500+ migrations completed
  • Zero downtime guaranteed
  • Transparent, fixed pricing
  • Project success responsibility
  • Post-migration support included

How to Migrate from HubSpot Service Hub to Zendesk: Complete Guide

Info

TL;DR: A HubSpot Service Hub to Zendesk migration is moderate complexity for data but high complexity for architecture because it requires decoupling service from CRM. The first decision — keep HubSpot CRM alongside Zendesk or leave HubSpot entirely — shapes every subsequent step and should be made before any data work begins. Ticket history with full engagement threads (emails, notes, calls) migrates cleanly via Zendesk's Ticket Import API with original timestamps preserved, but extracting engagements from HubSpot requires 3–5 API calls per ticket across the Tickets API, Engagements API, and Associations API. Cross-object HubSpot Workflows, the unified CRM activity timeline, Playbooks, and NPS/CES surveys have no native Zendesk equivalents. Realistic timeline for a typical team (30 agents, 150K tickets): 4–8 weeks including the CRM decoupling decision, Workflow decomposition, test migration, and validation.

Why Teams Migrate from HubSpot Service Hub to Zendesk

A HubSpot Service Hub to Zendesk migration moves your support operation from a CRM-integrated service layer to a standalone, purpose-built helpdesk. This is the opposite direction of most helpdesk migrations — you are decoupling service from CRM, not consolidating into one.

Teams make this switch for specific platform reasons: Zendesk's more mature trigger and automation stack with independent, debuggable rules rather than multi-branch Workflow trees; a granular multi-policy SLA system with condition-based matching across priority, group, form, and tags; Zendesk Explore's deep custom reporting; Zendesk Guide's richer knowledge base with community forums, custom themes, and content blocks; and multi-brand support on Enterprise. (support.zendesk.com)

The other driver is friction. HubSpot's CRM-first architecture means agents who only handle tickets still see contacts, companies, deals, lifecycle stages, and hundreds of properties. For dedicated support teams, that CRM complexity becomes noise. Some organizations also find that HubSpot Service Hub Professional ($100/seat/month) and Enterprise ($150/seat/month) pricing is comparable to or higher than Zendesk Suite Professional ($115/agent/month) and Enterprise ($169/agent/month) for teams that do not use the CRM features bundled into HubSpot's price. (Verify current pricing on each vendor's pricing page; these figures reflect published list prices as of early 2025.)

Three architectural differences make this migration non-trivial:

  • CRM-integrated vs. standalone helpdesk. Every HubSpot ticket is tied to CRM Contact and Company records with deal associations and a shared activity timeline. Zendesk tickets have a requester and organization — no native CRM.
  • Engagement model vs. comment model. HubSpot stores ticket interactions as separate Engagement objects (emails, notes, calls, tasks) linked via associations. Zendesk stores them as comments directly on the ticket. Reconstructing a full conversation thread requires multi-endpoint extraction.
  • Cross-object Workflows vs. ticket-scoped triggers. HubSpot Workflows can span objects — trigger on a contact property change and update a ticket. Zendesk triggers fire on ticket create/update events only; automations run hourly and check time-based conditions on tickets only. Neither can natively reference external CRM objects. (knowledge.hubspot.com)

For a deep comparison of both platforms' architectures, see Zendesk vs HubSpot Service Hub (2026): The CTO's Architecture Guide.

The CRM Decoupling Decision: Keep HubSpot or Leave Entirely?

This decision shapes everything — scope, timeline, cost, and what your agents can see. Make it before any data work begins.

Scenario A: Decoupled Model — Zendesk for Service, HubSpot CRM Stays

Scope: Migrate tickets, service Workflows, and knowledge base to Zendesk. Contacts, companies, and deals stay in HubSpot CRM. Install the Zendesk-HubSpot marketplace app so agents see CRM context (contact properties, company data, deal info, activity timeline) in the Zendesk sidebar.

Pros: Narrower migration scope, faster timeline (4–7 weeks), agents retain CRM context via sidebar, sales and marketing teams are completely unaffected.

Cons: Introduces a permanent Zendesk-HubSpot integration dependency. Agents see CRM data in a sidebar rather than natively. Cross-object Workflows (ticket + contact) must be decomposed — ticket-scoped logic moves to Zendesk triggers, CRM-scoped logic stays in HubSpot, bridged by the integration or middleware.

Scenario B: Full Departure — Leave HubSpot Entirely

Scope: Migrate tickets, contacts, companies, knowledge base, and all service data to Zendesk. CRM data (deals, lifecycle stages, marketing data) moves to a replacement CRM (Salesforce, Pipedrive, etc.) or is archived. HubSpot's Free plan retains CRM data in read-only mode if you need a historical archive.

Pros: Eliminates HubSpot dependency and cost, clean single-platform setup for support.

Cons: Broader scope (6–10 weeks), lose HubSpot's unified timeline, requires a replacement CRM decision, sales and marketing teams need their own migration plan.

Recommendation: If the team uses HubSpot CRM for sales and marketing — not just service — Scenario A is typically the right call. Disrupting sales and marketing for a service migration is disproportionate risk. If the team only uses HubSpot for service with no active deals and minimal marketing automation, Scenario B is cleaner.

Agent workflow impact. Regardless of scenario, the day-to-day changes for agents are significant. HubSpot agents work in a CRM interface with a unified view of sales, marketing, and service. Zendesk agents work in a helpdesk interface focused on tickets and views. In the decoupled model, CRM context appears in a sidebar — close but not native. In full departure, CRM data is gone unless stored in Zendesk custom fields. Plan 2–3 days of structured agent training before go-live: day 1 covering Zendesk workspace navigation, views, and macros; day 2 covering ticket lifecycle, triggers, and the sidebar integration (if applicable); day 3 as supervised live handling. Common friction points include the shift from kanban pipeline boards to list-based views, the loss of inline CRM context, and Zendesk's stricter ticket status model.

Warning

Do not confuse sync with migration. HubSpot's official data sync supports one-way or two-way record sync and continues syncing updates after the initial load. The Zendesk-HubSpot integration writes Zendesk ticket events into the HubSpot contact timeline, but that integration is one-way from Zendesk to HubSpot. Neither of these is a historical ticket migration tool. (knowledge.hubspot.com)

HubSpot Service Hub to Zendesk Object & Field Mapping

This is a data model contraction — you are moving from rich CRM records to simpler helpdesk records. Every mapping decision involves deciding what to keep, what to prune, and what to leave in HubSpot.

  • HubSpot Tickets → Zendesk Tickets. One-to-one. HubSpot pipeline stages (New, Waiting on contact, Waiting on us, Closed — plus custom stages) map to Zendesk statuses (New, Open, Pending, Solved, Closed — plus custom statuses on Suite Enterprise). Multiple HubSpot pipelines may map to separate Zendesk ticket forms, a shared form with a categorization field, or consolidate into groups and views. This is a design decision — get agent sign-off before implementation.
  • HubSpot Engagements → Zendesk Ticket Comments. The most important structural transformation. Each email engagement becomes a public Zendesk comment. Each note engagement becomes a private/internal comment. Call engagements become internal comments with structured metadata (duration, recording URL, disposition). Task and meeting engagements become internal comments or are discarded. Author attribution (HubSpot Owner → Zendesk Agent, contact email → Zendesk end-user), timestamp, and HTML body must be preserved per comment. Email engagement detail requires the sales-email-read scope. (developers.hubspot.com)
  • HubSpot Contacts → Zendesk End Users. Core identity fields (name, email, phone) map directly. CRM-specific fields (lifecycle stage, lead status, deal history) have no native Zendesk equivalents. In the decoupled model, these stay in HubSpot CRM visible via sidebar. In full departure, store critical fields in Zendesk custom user fields.
  • HubSpot Companies → Zendesk Organizations. Name and domain map directly. CRM properties (revenue, employee count, industry) go to custom org fields or are left behind.
  • HubSpot Ticket-Contact Associations → Zendesk Requester. HubSpot tickets can be associated with multiple contacts. Zendesk tickets have one requester. Pick the primary contact; handle additional contacts as CCs, followers, or internal notes.
  • HubSpot Ticket Pipelines → Zendesk Ticket Forms + Groups + Views. Multiple HubSpot pipelines consolidate into Zendesk ticket forms, groups, and views. This dictates how agents see fields and route tickets.
  • HubSpot Properties → Zendesk Custom Fields. Type matching: HubSpot single-line text → Zendesk text, dropdown → dropdown (pre-create options first), number → numeric, date → date, calculated/score → custom field with static value (frozen at migration time). (developer.zendesk.com)
  • HubSpot SLA Policies → Zendesk SLA Policies. Zendesk's SLA system is more granular, supporting multiple policies with condition-based matching and metric types HubSpot does not offer (next reply time, periodic update time, requester wait time). Policies must be recreated; historical SLA compliance data does not transfer.
  • HubSpot Snippets → Zendesk Macros. Snippets map to the text-insertion portion of Zendesk macros. Zendesk macros can also set fields, add tags, and change status — a superset of Snippet functionality.
Warning

The Property Pruning Exercise: HubSpot instances often have 50–200+ custom properties. Migrating all of them to Zendesk creates an agent workspace full of dead fields. Audit every property and classify it as must-have, nice-to-have, stay-in-HubSpot, or drop. This exercise typically reduces the migrated property count by 40–60%. Keep only what drives routing, reporting, or agent judgment in Zendesk. (developer.zendesk.com)

Zendesk Plan Requirements by Feature

Not every capability mentioned in this guide is available on every Zendesk plan. Map your requirements to the correct tier before purchasing:

Feature Zendesk Plan Required
Custom ticket statuses Suite Enterprise
Multi-brand support Suite Enterprise
Multiple ticket forms Suite Professional+
Multiple SLA policies Suite Professional+
Zendesk Sandbox (for test migration) Suite Enterprise (or Premium Sandbox add-on)
Zendesk Explore custom reports Suite Professional+ (advanced dashboards on Enterprise)
Custom agent roles Suite Enterprise
Skills-based routing Suite Professional+
Ticket Import API All Suite plans
Content blocks in Guide Suite Enterprise

If you are on Zendesk Suite Professional, custom statuses and sandbox environments are not available natively. Plan your pipeline-to-status mapping accordingly and consider using a trial/test instance for migration validation instead of a sandbox.

Choosing a Migration Method

The right method depends on ticket volume, engineering bandwidth, and the CRM decoupling decision.

  • CSV export + Zendesk CSV import. Good for staging flat contact and company data. Not sufficient for ticket conversations, because HubSpot's ticket content is assembled from separate engagement records rather than a single exportable thread. (developers.hubspot.com)
  • API-based migration. Best default for any serious history move. Use HubSpot extraction APIs and the Zendesk Ticket Import API (POST /api/v2/imports/tickets). Preserves original timestamps and bypasses automations on imported tickets. Medium-high complexity due to multi-endpoint engagement assembly.
  • Hybrid: CSV for contacts + API for tickets. Import contacts and organizations via Zendesk CSV import (handles dedup by email), then import tickets with full engagement history via the Ticket Import API. The recommended pragmatic middle ground for most mid-size migrations in the full-departure scenario.
  • Self-serve migration tools. Products like Help Desk Migration and Import2 can handle standard mappings. Validate at least one ticket with mixed engagement types (email + note + call) before assuming thread fidelity. (help-desk-migration.com)
  • Managed service or custom ETL. The right pick when you have multiple pipelines, complex author attribution, a heavy attachment footprint, cross-object Workflow redesign, or when engineering bandwidth is limited.

The Multi-Endpoint Extraction Challenge

This is where most DIY migrations underestimate scope. HubSpot separates the ticket container from its content. A single HubSpot ticket with 10 engagements (5 emails, 3 notes, 1 call, 1 task) requires extracting each engagement separately, then collapsing them into Zendesk comments on a single ticket.

Reconstructing one fully-enriched ticket requires 3–5 API calls:

  1. Fetch ticket propertiesPOST /crm/v3/objects/tickets/batch/read (100 records per call)
  2. Fetch ticket associationsGET /crm/v4/objects/tickets/{ticketId}/associations/engagements to get linked contacts, companies, and engagements. Batch association reads support up to 1,000 inputs per request.
  3. Fetch each engagementGET /engagements/v1/engagements/{engagementId} (legacy Engagements API, still required for full engagement details). Email engagements have from/to/cc in metadata; notes have a body; calls have duration and recording URL. Each type needs a different transformation. (developers.hubspot.com)
  4. Fetch contact details — for requester attribution
  5. Download attachments — from HubSpot's File Manager API. Note: Zendesk enforces a per-file attachment size limit of 50 MB on Suite Enterprise (20 MB on lower plans). If HubSpot attachments exceed the limit for your Zendesk plan, you must either compress, link externally, or skip with a logged warning.

HubSpot's Search API has a hard limit of 10,000 results per query. For instances with more tickets, use date-range windowing — filter by hs_createdate ranges to extract in batches of fewer than 10,000. The list endpoint (GET /crm/v3/objects/tickets) supports cursor-based pagination without a result limit but does not support filtering. (developers.hubspot.com)

Edge case: deleted contacts with orphaned engagements. If a HubSpot contact has been deleted but their engagements still exist on a ticket, the engagement's fromEmail or toEmail metadata is your fallback for author attribution. Create a Zendesk end-user from that email address, or attribute the comment to a generic "Unknown Contact" user with the original email noted in the comment body. Log these cases — they typically represent 1–3% of tickets in mature HubSpot instances.

Warning

Rate limit math: HubSpot private apps on Professional/Enterprise enforce approximately 190 requests per 10 seconds (burst), though exact limits change — always check current API documentation. Batch endpoints (100 records/call) improve throughput for flat fetches, but engagement assembly requires per-ticket association and engagement calls. Realistically, expect 50–100 fully-enriched tickets per minute after accounting for multi-endpoint extraction. For 150K tickets, plan for 25–50 hours of extraction time. Zendesk's Ticket Import API handles up to 700 requests per minute on Enterprise plans and 400 on Professional — HubSpot extraction, not Zendesk import, is your bottleneck.

Step-by-Step HubSpot Service Hub to Zendesk Migration Process

Critical order-of-operations: Zendesk rejects tickets with custom field values that do not match predefined dropdown options. End-users and organizations must exist before tickets because the Ticket Import API requires a valid requester_id. Get the sequence wrong and you will burn hours debugging silent failures.

  1. Make the CRM decoupling decision — Scenario A or B. Get stakeholder sign-off.
  2. Inventory third-party integrations — List every integration connected to HubSpot Service Hub (Slack notifications, Jira issue linking, phone/VoIP systems, etc.). For each, determine whether a Zendesk equivalent exists in the Zendesk Marketplace and whether it needs to be configured before go-live. Jira for Zendesk, Slack for Zendesk, and most major telephony providers have native Zendesk apps.
  3. Audit HubSpot properties and prune — classify every custom property across tickets, contacts, and companies as must-have, nice-to-have, stay-in-HubSpot, or drop.
  4. Design pipeline-to-form/status mapping — document each HubSpot pipeline stage → Zendesk status, and decide on ticket forms, groups, and views. If two pipelines have different stage names that map to the same Zendesk status (e.g., "Investigating" and "In Progress" both → "Open"), define it explicitly per pipeline. Get agent sign-off.
  5. Create Zendesk custom fields, ticket forms, groups, and views — dropdown values must be pre-created before ticket import, or Zendesk will reject tickets with unrecognized values.
  6. Run a test migration in a Zendesk Sandbox or trial instance — import 200–500 tickets covering all pipelines, engagement types, and edge cases (deleted contacts, large attachments, tickets with 20+ engagements). Validate before running at scale. On Enterprise plans, use the Zendesk Sandbox; on Professional, spin up a Zendesk trial instance for testing.
  7. Extract and load end-users and organizations — CSV import works well for contacts/orgs (handles dedup by email). In the decoupled model, this step may be minimal or skipped.
  8. Extract tickets with engagement assembly — the multi-endpoint extraction described above. Sort engagements chronologically per ticket. Test the transformation logic for each engagement type (email, note, call) before running at scale.
  9. Transform and map — pipeline stages → statuses, priorities → priorities, properties → custom fields, owner IDs → agent IDs. Decide how to handle engagements authored by former employees (e.g., attribute to a generic "Migration" agent or create deactivated agent accounts).
  10. Import tickets via Zendesk Ticket Import APIPOST /api/v2/imports/tickets. This endpoint preserves original created_at, updated_at, and solved_at timestamps and does not trigger automations on imported tickets. Each comment in the comments array accepts author_id, value (body), created_at, and public flag. Notifications are not sent to CC'd users on import. (developer.zendesk.com)
  11. Upload attachments — download from HubSpot File Manager, upload to Zendesk via POST /api/v2/uploads, and reference tokens in comments.
  12. Migrate knowledge base — see the dedicated section below.
  13. Install Zendesk-HubSpot app (decoupled model) — configure before go-live so agents see CRM context in the sidebar.
  14. Validate and perform UAT — record-count reconciliation, engagement assembly verification, timestamp checks, author attribution spot-checks.
# Example: HubSpot ticket search with date windowing
hubspot_ticket_search:
  method: POST
  path: /crm/v3/objects/tickets/search
  body:
    limit: 200
    filterGroups:
      - filters:
          - propertyName: hs_createdate
            operator: GTE
            value: 1735689600000
          - propertyName: hs_createdate
            operator: LT
            value: 1738368000000
    properties:
      - subject
      - hs_pipeline
      - hs_pipeline_stage
      - hs_ticket_priority
 
# Example: Zendesk ticket import with comment thread
zendesk_ticket_import:
  method: POST
  path: /api/v2/imports/tickets
  body:
    ticket:
      subject: Password reset failed
      requester_id: 12345
      organization_id: 67890
      created_at: "2024-11-01T12:00:00Z"
      status: solved
      tags:
        - imported_from_hubspot
      comments:
        - author_id: 12345
          html_body: "<p>Customer email from HubSpot</p>"
          created_at: "2024-11-01T12:00:00Z"
          public: true
        - author_id: 54321
          body: "Internal note migrated from HubSpot"
          created_at: "2024-11-01T12:05:00Z"
          public: false
Tip

Error handling: HubSpot returns Retry-After headers on 429 responses — respect them. Log failed records with HubSpot's correlationId for debugging. Zendesk's Ticket Import API does not calculate SLA metrics for imported tickets — add an imported_from_hubspot tag to exclude them from current reporting. For very large closed-history loads, Zendesk supports archive_immediately so closed imported tickets bypass the active lifecycle and land directly in the archive. (developer.zendesk.com)

How to Decompose HubSpot Workflows into Zendesk Triggers and Automations

Audit every active HubSpot Workflow that touches tickets. Classify each into one of four categories:

  • Ticket-scoped, event-driven — "When ticket status changes to X, assign to group Y" → Zendesk Trigger (fires immediately on ticket create or update). (support.zendesk.com)
  • Ticket-scoped, time-driven — "If ticket has been open 48 hours with no response, escalate" → Zendesk Automation (runs once per hour, checks elapsed-time conditions). (support.zendesk.com)
  • Cross-object — "When a contact's lifecycle stage changes to Customer, tag all their open tickets" → No Zendesk equivalent. If HubSpot CRM is retained, this stays in HubSpot and communicates via the integration or a webhook. If HubSpot is abandoned, evaluate whether middleware (Zapier at $29–$99/month for relevant tiers, Make at $10–$29/month) can replicate it, or accept the loss with stakeholder sign-off.
  • CRM-only — "When a deal closes, create a task for CS" → Not a Zendesk concern. Stays in HubSpot CRM or moves to the replacement CRM.

HubSpot Workflows support branching, delays, and cross-object operations that Zendesk triggers do not. The migration forces you to simplify your automation layer. Workflow audit and trigger/automation build typically takes 1–2 weeks for a team with 10–30 active Workflows. Cross-object Workflow redesign with middleware bridging may add another 1–2 weeks.

For more on automation migration patterns, see Your Help Desk Data Migration's Secret Saboteur: Automations, Macros, and Workflows.

How to Migrate HubSpot Knowledge Base to Zendesk Guide

Structure mapping is straightforward: HubSpot KB categories become Zendesk Guide categories, subcategories become sections, and articles become articles.

Extract content using HubSpot's CMS API or data export. Article fields include title, HTML body, publish status, meta title, and author. Load content using the Zendesk Help Center API (POST /api/v2/help_center/sections/{id}/articles). (developer.zendesk.com)

Three things break during KB migration:

  • Embedded images. HubSpot KB articles reference images hosted on HubSpot's CDN. Download all images, re-upload them to Zendesk or an external CDN, and update the image URLs in article bodies. Failure to do this means broken images after HubSpot decommissioning.
  • Internal links. Links between KB articles must be updated to reflect new Zendesk Guide URLs. Build a URL mapping table (old HubSpot path → new Zendesk path) and run a find-and-replace across all article bodies.
  • SEO equity. Set up 301 redirects from old HubSpot KB URLs to new Zendesk Guide URLs to preserve search rankings. If HubSpot is retained (Scenario A), you may need to unpublish the HubSpot KB to avoid duplicate content.

This part of the project is usually smoother than ticket history. Budget 3–5 days.

What Can't Be Migrated from HubSpot Service Hub to Zendesk

The biggest losses are structural, not numeric. You can move records, but you cannot make Zendesk behave like HubSpot's CRM without extra systems or custom app work.

  • Cross-object Workflows — Zendesk triggers are ticket-scoped only. Must stay in HubSpot, move to middleware, or be accepted as lost. (knowledge.hubspot.com)
  • Unified CRM activity timeline — Zendesk shows ticket-scoped history only. Partially mitigated by the Zendesk-HubSpot sidebar app in the decoupled model; lost entirely in full departure.
  • Playbooks (guided agent scripts) — no native Zendesk equivalent. Recreate as macros with step-by-step text, linked Guide articles, or explore third-party apps like Zingtree. (knowledge.hubspot.com)
  • NPS, CES, and custom surveys — Zendesk supports CSAT only natively. NPS requires marketplace apps (Nicereply, Delighted, SurveyMonkey). (knowledge.hubspot.com)
  • Calculated and score properties — values migrate as static fields but will not update dynamically.
  • Active lists (dynamic contact segments) — no Zendesk equivalent on end-users. Zendesk organizations and tags can partially replicate static segments.
  • Deal associations on tickets — visible only via sidebar app (decoupled) or lost (full departure).
  • Kanban-style pipeline board — Zendesk uses list-based views. Agents adapt to updating status via dropdown or macro.
  • Customer portal and bot configuration — must be rebuilt in Zendesk; do not expect a settings export to land cleanly. (knowledge.hubspot.com)
  • Reporting dashboards — must be rebuilt in Zendesk Explore. Cross-object reports (tickets + deals + lifecycle stages) cannot be replicated without importing CRM data into custom fields.
  • Historical survey data and SLA compliance data — stays in HubSpot. Export to CSV for archival before decommissioning.

Data Privacy and Compliance Considerations

Moving customer data between platforms triggers compliance requirements that should be addressed during planning, not after go-live:

  • GDPR (EU/UK). If you process EU personal data, the migration constitutes data processing. Ensure your Zendesk Data Processing Agreement (DPA) is signed before transferring records. Both HubSpot and Zendesk offer DPAs; review data sub-processor lists for both. Zendesk's data center options include US, EU (Frankfurt), and Australia — select the region that matches your data residency requirements during Zendesk instance creation, as it cannot be changed later.
  • Data residency. HubSpot offers data hosting in the US and EU. Verify that your Zendesk instance is provisioned in a compatible region. Cross-region transfers (e.g., HubSpot EU → Zendesk US) may require additional legal basis under GDPR.
  • Right to deletion. If contacts have been deleted from HubSpot under GDPR Article 17 requests, verify that their data is not inadvertently re-imported into Zendesk through orphaned engagement records.
  • Retention policies. Define how long migrated historical tickets will be retained in Zendesk. Zendesk's data retention policies differ from HubSpot's — configure automatic ticket deletion schedules if required by your compliance framework.

How Long Does a HubSpot Service Hub to Zendesk Migration Take?

Timeline varies significantly by scenario.

Decoupled model (CRM stays, service moves):

  • Discovery and planning (including integration inventory): 1–2 weeks
  • Zendesk instance setup (parallel): 1–2 weeks
  • Workflow decomposition and trigger build: 1–2 weeks
  • Test migration in Sandbox/trial: 3–5 days
  • Ticket history migration: 5–10 days
  • Knowledge base migration: 3–5 days
  • Validation, UAT, and agent training: 1–1.5 weeks
  • Total: 4–7 weeks

Full departure:

  • Add contact/company migration (2–5 days), property pruning for contact/company data (3–5 days), CRM archival planning (1–2 weeks, parallel), HubSpot decommissioning prep (1 week, parallel)
  • Total: 6–10 weeks for service migration, plus replacement CRM timeline

Key risks and mitigations:

  • Multi-endpoint extraction runs slower than estimated (likelihood: high). Mitigation: use batch endpoints, implement date-range windowing for the 10K search limit, and start extraction early as a background job.
  • Cross-object Workflows break agent processes. Mitigation: classify all Workflows in week 1 and design middleware bridges early.
  • Property pruning stalls on stakeholder disagreements. Mitigation: present a default-drop recommendation and get sign-off during planning, not during execution.
  • Zendesk plan limitations surface mid-migration (e.g., needing custom statuses only available on Enterprise). Mitigation: map plan requirements in week 1 using the table above.

For budgeting guidance, see Cost of Help Desk Data Migration: What to Budget For.

Validation and Testing After Migration

Run strict record-count reconciliation: compare tickets exported from HubSpot against tickets created in Zendesk. Reconcile end-users, organizations, and engagement-to-comment counts.

Engagement assembly verification. Sample 20–50 tickets spanning all pipelines and engagement types. Compare the HubSpot chronological timeline against the Zendesk comment thread. Verify that email engagements are public comments, notes are private, call metadata is present, and author attribution is correct. Pay special attention to tickets with 15+ engagements and tickets involving deleted contacts.

Timestamp verification. Confirm that imported Zendesk tickets show original HubSpot creation dates, not the migration date. Check created_at, updated_at, and solved_at fields.

Pipeline-to-status mapping. Verify that tickets from each HubSpot pipeline landed in the correct Zendesk ticket form with the correct status.

Attachment verification. Spot-check 10–20 tickets with attachments. Confirm files are downloadable in Zendesk and not still referencing HubSpot CDN URLs.

Integration validation (decoupled model). Confirm the Zendesk-HubSpot sidebar app displays the correct CRM data for contacts with deals and recent activity.

Agent UAT. Have 2–3 agents work in Zendesk for 1–2 days before full rollout. They will catch workflow gaps and missing context that automated checks miss. Give them a checklist: can they find a specific customer's history? Does the sidebar show the right deal data? Do macros fire correctly?

Info

Rollback plan: Keep HubSpot Service Hub active and accessible for 8–12 weeks post-migration as a fallback and reference archive. Both systems run concurrently during validation — no new tickets go to HubSpot, but agents can reference historical data there. Tickets created in Zendesk during the overlap period stay in Zendesk only; the Zendesk-HubSpot integration can write activity back to HubSpot contact timelines if configured, but this is not a bidirectional ticket sync. Define the cutover point clearly: after validation, new inbound channels (email, chat, web form) point to Zendesk and HubSpot Service Hub stops receiving tickets.

For a full QA framework, see Post-Migration QA: 20 Tests to Run After Your Help Desk Data Migration.

Post-Migration: HubSpot Decommissioning (Scenario B)

For teams fully departing HubSpot, decommissioning requires deliberate sequencing:

  1. Export everything first. Use HubSpot's data export to download contacts, companies, deals, tickets, and engagement history as CSV/XLSX. Store exports in a durable archive (cloud storage with retention policy). This is your compliance safety net.
  2. Verify data retention obligations. Industry regulations (HIPAA, SOX, FINRA) may require retaining customer communication records for 3–7+ years. Confirm your Zendesk instance holds the required history before deleting HubSpot data.
  3. Downgrade before canceling. HubSpot's Free CRM tier retains your data in read-only mode indefinitely. If you might need to reference historical CRM data, downgrade to Free rather than canceling outright. This costs nothing and preserves deal history, marketing data, and the unified timeline.
  4. Cancel paid subscriptions at renewal. Review your HubSpot contract for cancellation notice periods (typically 30–60 days before renewal). Annual contracts may have early termination fees.
  5. Revoke API keys and deauthorize integrations. Remove all private app tokens, OAuth connections, and third-party integration authorizations from HubSpot to prevent orphaned data flows.

Should You Migrate In-House or Use a Service?

In-house works when: volume is under 10K tickets, setup is simple (single pipeline, few custom properties, minimal Workflows), you are using the decoupled model, and the engineering team has bandwidth for multi-endpoint HubSpot API extraction.

In-house breaks down when: ticket volume exceeds 50K, multiple pipelines with complex stage mappings exist, cross-object Workflows need decomposition, full departure requires contact/company/CRM data handling, or the engineering team is needed elsewhere.

The engagement assembly challenge — 3–5 HubSpot API calls per ticket to reconstruct the full conversation thread — is the #1 source of engineering time underestimation. Teams that estimate "a few days" for extraction often spend 2–3 weeks debugging engagement retrieval, association resolution, and author attribution.

If a failed DIY attempt has already put you behind schedule, Help Desk Data Migration Failed? The Engineer's Rescue Guide covers recovery patterns.

Frequently Asked Questions

How long does a HubSpot Service Hub to Zendesk migration take?
Decoupled model (HubSpot CRM stays): 4–7 weeks. Full departure (leaving HubSpot entirely): 6–10 weeks for the service migration plus the replacement CRM timeline. The main bottleneck is multi-endpoint engagement extraction from HubSpot, not the Zendesk import.
Can I keep my full HubSpot ticket history in Zendesk?
Yes. The Zendesk Ticket Import API (POST /api/v2/imports/tickets) preserves original created_at, updated_at, and solved_at timestamps. Each HubSpot engagement (email, note, call) is imported as a Zendesk comment with its original timestamp and author attribution. A flat CSV export alone will not recreate threaded history — you need API-based extraction.
What data is lost when migrating from HubSpot Service Hub to Zendesk?
Cross-object Workflows, the unified CRM activity timeline, Playbooks, NPS/CES surveys (native), calculated and score properties (as dynamic fields), active lists, deal associations on tickets, the Kanban pipeline board view, and historical SLA compliance data.
Can I keep HubSpot CRM and just move service to Zendesk?
Yes — this is the decoupled model and the most common approach. Migrate tickets and service configuration to Zendesk while contacts, companies, and deals stay in HubSpot CRM. Install the Zendesk-HubSpot marketplace app for sidebar CRM context. Sales and marketing teams are unaffected.
Can I migrate HubSpot Workflows to Zendesk triggers?
Ticket-scoped Workflows translate to Zendesk triggers (event-driven) and automations (time-driven). Cross-object Workflows that span contacts, deals, and tickets have no Zendesk equivalent and must stay in HubSpot CRM, move to middleware like Zapier or Make, or be accepted as lost functionality.

More from our Blog

Your Help Desk Data Migration’s Secret Saboteur: Automations, Macros, and Workflows
Help Desk

Your Help Desk Data Migration’s Secret Saboteur: Automations, Macros, and Workflows

Migrating automations, macros, and workflows is the secret saboteur of most help desk migration projects. Standard tools often fail because they can't translate the complex, custom logic that acts as your support team's "central nervous system". This guide provides a battle-tested, 3-phase framework to successfully audit, "translate," and test these intricate workflows. Learn to deconstruct your old system and rebuild it perfectly in the new one, avoiding the common pitfalls that cause 83% of data migrations to fail.

Raaj Raaj · · 8 min read
Post-Migration QA: 20 Tests to Run After Your Help Desk Data Migration
Help Desk

Post-Migration QA: 20 Tests to Run After Your Help Desk Data Migration

Ensure your help desk migration is a success with this comprehensive 20-point post-migration QA checklist. This expert guide details the 20 essential tests needed to validate your data integrity, system functionality, user-friendliness, and performance . Learn exactly how to check everything from ticket data, attachments, and knowledge base articles to critical workflows, automations, and integrations before you go live. This process is your final line of defense against lost tickets, broken workflows, and unhappy customers.

Raaj Raaj · · 8 min read
Cost of Help Desk Data Migration: What to Budget For
Help Desk

Cost of Help Desk Data Migration: What to Budget For

Planning a help desk migration? This guide provides a complete breakdown of the real costs and budget factors. We cover the key drivers, from data volume and complexity to your migration method (DIY vs. managed service). Get a practical 3-phase budget checklist to account for every line item, from planning and cleanup to post-migration testing. See real-world cost examples for startups, mid-market companies, and large enterprises to help you plan with confidence and avoid costly pitfalls.

Raaj Raaj · · 9 min read