Helpdesk migration

Migrate from Crisp to HubSpot Service Hub

Field-level mapping, validation, and rollback between Crisp and HubSpot Service Hub. We move data and schema; workflows are rebuilt natively in HubSpot Service Hub.

Crisp logo

Crisp

Source

HubSpot Service Hub

Destination

HubSpot Service Hub logo

Compatibility

58%

7 of 12

objects map 1:1 between Crisp and HubSpot Service Hub.

Complexity

BStandard

Timeline

2-3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

The structural difference between Crisp and HubSpot Service Hub shapes every migration decision. Crisp treats Conversations as the primary record with Messages nested inside; HubSpot reverses this with Tickets as the primary record and Messages attached as a conversation feed. We map each Crisp Conversation to a HubSpot Ticket, preserving the channel metadata (chat, email, WhatsApp), the created timestamp, and the assigned operator. Crisp Operators map to HubSpot Users with their display name and email carried over and role-based permissions documented for manual reassignment in HubSpot. We do not migrate Crisp chatbot rules, automation rules, e-commerce integrations, or the chat widget configuration — these have no structural equivalent in HubSpot and are delivered as written configuration notes for your admin. Attachment URLs are re-uploaded to HubSpot Files and linked to the parent Ticket. Teams on Free or Mini Crisp tiers should confirm API key availability before scoping begins because the CRM module is gated behind Essentials and above.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Crisp logo

Crisp

What's pushing teams away

  • Mobile app lacks parity with the desktop interface — essential features like the full conversation view and chatbot controls are missing on iOS.
  • AI features including Copilot and auto-reply suggestions consume a limited credit budget that resets monthly and does not roll over, making costs unpredictable.
  • Customer support quality has declined in recent reviews, with users reporting delayed responses and unresolved technical issues.
  • Price increases have frustrated long-time users who locked in lower rates on older plans and now face steeper renewal costs.
  • The CRM module (Contact profiles, custom fields, Segments) requires an Essentials or higher tier, limiting the utility of lower-cost plans.

Choosing

HubSpot Service Hub logo

HubSpot Service Hub

What's pulling them in

  • Unified CRM context means every support ticket links directly to the Contact and Company record without a separate integration
  • Free tier provides unlimited support seat access with basic ticketing and a shared inbox for small teams to validate fit before committing
  • Omnichannel routing consolidates email, live chat, Facebook Messenger, WhatsApp, and Instagram DM into one queue
  • Built-in customer success workspace gives health scores and portfolio views that other standalone helpdesks cannot match
  • AI-powered Breeze agent automates common resolutions and surfaces knowledge base articles without agent intervention

Object mapping

How Crisp objects map to HubSpot Service Hub

Each row shows how a Crisp 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.

Crisp

Conversation

maps to

HubSpot Service Hub

Ticket

1:1
Fully supported

Each Crisp Conversation maps to one HubSpot Ticket. The Crisp conversation_id becomes the HubSpot hs_ticket_id for deduplication. We map Crisp's conversation state (active, pending, resolved) to HubSpot Ticket status values (OPEN, PENDING, CLOSED), and the Crisp website_id becomes a HubSpot custom property for multi-site attribution. The channel metadata (chat, email, WhatsApp, SMS) from Crisp's channel property migrates to a HubSpot custom property capturing the original channel, since HubSpot's native ticket channel field is populated by the Conversations Inbox rather than at import time. Operator assignments resolve through the User mapping.

Crisp

Contact

maps to

HubSpot Service Hub

Contact

1:1
Fully supported

Crisp Contacts map directly to HubSpot Contacts with all standard fields (email, name, phone, city) and custom properties carried over as HubSpot custom contact properties. Crisp's dynamic Segments defined on Contacts are preserved as structured rule metadata and surfaced in a written inventory for the admin to rebuild as HubSpot static or dynamic lists. If the source account is on Free or Mini tier with no UI-based CRM access, we extract Contacts via the Crisp REST API /contacts endpoint which is accessible with an API key regardless of plan. Contacts exceeding 200,000 records require multiple sequential API passes.

Crisp

Message

maps to

HubSpot Service Hub

Ticket Conversation Reply

1:1
Fully supported

Crisp Messages are nested inside Conversations and map to HubSpot Ticket conversation replies. We preserve the message body, author type (operator vs. visitor), timestamp, and any inline images. Author attribution resolves through the User mapping for operator messages and the Contact mapping for visitor messages. Internal notes from Crisp (operator-only visibility) map to HubSpot internal ticket comments. The message ordering is preserved by timestamp so the conversation reads chronologically in HubSpot. Attachment URLs on messages are re-uploaded to HubSpot Files and linked to the ticket.

Crisp

Website

maps to

HubSpot Service Hub

Company

1:1
Fully supported

Crisp Websites (configured chat widgets tied to domains) map to HubSpot Companies, with the domain name from website.domain populating the Company Website field. This provides the dedupe key during import. Websites with multiple configured channels carry that channel configuration into a HubSpot custom property as metadata for the admin to use when configuring HubSpot's Conversations Inbox routing rules. Widget settings (theme, greeting message, operating hours, routing behavior) are exported as a configuration snapshot and flagged for manual reassignment in HubSpot.

Crisp

Operator

maps to

HubSpot Service Hub

User

1:1
Fully supported

Crisp Operators map to HubSpot Users by email match. We preserve display name and email. Role-based permissions (admin vs. operator vs. member) are documented in the migration inventory with their Crisp equivalents mapped to HubSpot's built-in roles (Super Admin, Sales Manager, Sales, Service, and Viewer). Any Crisp operator with no matching HubSpot User is held in a reconciliation queue for the admin to provision before record import resumes. Seat limits are checked against the destination HubSpot plan's user count allowance.

Crisp

Tag

maps to

HubSpot Service Hub

Ticket Custom Property (multi-select picklist)

lossy
Fully supported

Crisp Tags applied to Conversations have no native equivalent in HubSpot Service Hub's standard schema. We map all distinct Tags to a HubSpot custom ticket property defined as a multi-select picklist. During migration, each Ticket receives the Tags from its source Conversation as selected values in this property. If the distinct tag count exceeds HubSpot's picklist limit, we store tags as a comma-separated text property. The customer chooses the property type during scoping.

Crisp

Segment

maps to

HubSpot Service Hub

Contact List (static or dynamic)

lossy
Fully supported

Crisp Segments are dynamic Contact filter rules defined in the CRM module (Essentials+). These cannot migrate as live active segments because Crisp's rule-based segment engine has no direct HubSpot equivalent. We export the segment rule definitions as structured JSON metadata and deliver them in a written inventory. The admin rebuilds each segment in HubSpot using HubSpot's Lists (static or dynamic) or Smart Lists depending on HubSpot plan. The inventory includes the rule logic, associated contact count, and recommended HubSpot list type.

Crisp

Canned Response

maps to

HubSpot Service Hub

Saved Reply

1:1
Fully supported

Crisp Canned Responses are pre-written message templates used by operators. We export them as a structured list of text templates with Crisp's %placeholder% variable syntax preserved in plain text. These map to HubSpot Saved Replies in the Conversations Inbox. The variable syntax requires manual adaptation because Crisp uses %session.nickname% style placeholders while HubSpot Saved Replies support a simpler variable model. The migration inventory flags each Canned Response with its variables so the admin can adapt them to HubSpot's format during configuration.

Crisp

Chat Widget Settings

maps to

HubSpot Service Hub

Conversations Settings Configuration

lossy
Mapping required

Crisp's chat widget has theme colors, greeting messages, operating hours, proactive chat triggers, and routing rules configured per Website. These settings are tied to Crisp's proprietary widget and cannot transfer to HubSpot's chat widget as a configuration export. We extract the behavior and appearance settings as a structured JSON snapshot and deliver them as a written configuration note. The admin recreates the widget experience in HubSpot's Conversations Settings using HubSpot's chat widget builder, with the snapshot as a reference for colors, greeting text, and routing logic.

Crisp

Attachment

maps to

HubSpot Service Hub

File

1:1
Fully supported

File attachments uploaded to Crisp Messages are stored as URLs referencing Crisp's file storage. We preserve the attachment URL, download the file, and re-upload it to HubSpot Files (Files Home or the CRM Files tool). Each file is linked to the parent HubSpot Ticket via a ContentDocumentLink record. Inline images in message bodies are re-uploaded and the URLs are updated in the message body so images render correctly in HubSpot. This two-step process (download from Crisp, upload to HubSpot) is required because Crisp and HubSpot maintain separate file storage systems.

Crisp

Conversation State

maps to

HubSpot Service Hub

Ticket Status

lossy
Fully supported

Crisp's conversation states (active, pending, resolved, archived) map to HubSpot Ticket status values (OPEN, PENDING, CLOSED, or custom statuses configured in the destination pipeline). We use a HubSpot ticket_pipeline with a configured Ticket Status field that the admin defines before migration, mapping each Crisp state to the chosen HubSpot equivalent. This mapping is set during the schema configuration phase so all Tickets are created with the correct status at migration time.

Crisp

Operator Role

maps to

HubSpot Service Hub

User Role

lossy
Fully supported

Crisp role levels (admin, operator, member) are exported as structured permission metadata and mapped to HubSpot's built-in role hierarchy. Crisp admin permissions map to HubSpot Super Admin; Crisp operators map to HubSpot Sales or Service roles depending on the destination team's function. The role mapping is delivered as a configuration inventory rather than a direct migration, since HubSpot's permission model (object-level, property-level, and action-level access) is more granular than Crisp's three-tier model and requires the admin to assign final permissions in HubSpot Settings.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Crisp logo

Crisp gotchas

High

Contact export is gated behind the Essentials tier

Medium

Contact export ceiling of 200K records

Medium

Multi-level rate limits on the REST API

Low

Seat limits constrain operator record exports

Low

Canned Responses have Crisp-specific variable syntax

HubSpot Service Hub logo

HubSpot Service Hub gotchas

High

Rate limits throttle large migration API calls

High

Side conversations and Zendesk macros have no HubSpot equivalent

High

HubSpot stores ticket history as fragmented engagement objects

Medium

Custom Objects require Enterprise tier in HubSpot

Medium

Ticket pipeline stage probability values do not export cleanly

Pair-specific challenges

  • Crisp's API has a 200K contact export ceiling

    Crisp's documented contact export ceiling is 200,000 records per export operation. Accounts with more than 200,000 contacts require multiple sequential API passes with date-range filters or paginated ID-based slices. We extract contacts in chunked batches, deduplicate by contact_id across passes, and reassemble the full dataset before loading into HubSpot. This sequencing adds planning time but does not block the migration. We confirm the total contact count during discovery and adjust the extraction strategy accordingly.

  • HubSpot has per-tier rate limits that constrain import speed

    HubSpot enforces rate limits on the Contacts and Tickets APIs (approximately 130 requests per 10 seconds for core CRM APIs). We throttle imports to 70 percent of the documented limit to preserve API headroom for the customer's live operations during migration. For large ticket imports, we chunk records into batches and use exponential backoff on 429 responses. Skipping rate-limit management causes partial import failures and silent record drops, which require reconciliation passes that extend the timeline.

  • HubSpot Service Hub Starter omits ticketing and advanced channels

    HubSpot Service Hub Starter ($15/seat/month) includes shared inbox and live chat but does not include the ticketing system, the customer portal, or advanced channel routing. Teams migrating from Crisp expecting full ticket management in HubSpot must select Professional tier ($90/seat/month) or above. We confirm the destination HubSpot tier during discovery and flag any Crisp features (such as WhatsApp channel routing or SLA management) that require upgrades. Migrating Tickets into a Starter-tier HubSpot account will fail at the destination API level.

  • Crisp's multi-level rate limits govern the entire export phase

    Crisp enforces four tiers of rate limiting: load balancer, API global, API route, and plugin quota. The API global limit is the primary constraint for migration scripts pulling Conversations and Contacts in bulk. We implement exponential backoff and honor the Retry-After header on 429 responses. For large migrations we throttle reads below the global limit to avoid disrupting the customer's live API access, which they may still rely on for ongoing support operations during the migration window.

  • Chatbot rules and automation flows do not migrate as code

    Crisp's chatbot rules and automation flows (available from Essentials tier upward) use a visual builder with condition branching and CRM action triggers that have no structural equivalent in HubSpot Service Hub. HubSpot's workflow engine uses record-triggered, time-delay, and action-node models with different configuration semantics. We do not migrate chatbot rules or automation flows as executable code. We deliver a written inventory of each Crisp automation with its trigger conditions, branching logic, and CRM actions so the admin can evaluate HubSpot equivalents. The rebuild scope is a separate engagement.

Migration approach

Six steps for a successful Crisp to HubSpot Service Hub data migration

  1. Discovery and destination tier selection

    We audit the source Crisp workspace across plan tier (Free/Mini/Essentials/Plus), API key availability, total conversation and message volume, CRM module usage (Contact properties, Segments), active operator count, tag taxonomy, and attachment storage volume. We confirm the destination HubSpot Service Hub tier: Starter ($15/seat) for shared inbox and live chat only, Professional ($90/seat) for ticketing, the customer portal, and advanced routing, or Enterprise ($150/seat) for custom objects and full workflow capabilities. The discovery output is a written migration scope document that identifies all objects, flags any tier-gated source features, and recommends the HubSpot plan required to receive them.

  2. Schema configuration in HubSpot

    Before any data moves, we configure the HubSpot destination schema. We create custom Contact properties matching Crisp's custom Contact properties (by name, type, and format), define a Ticket pipeline and status field that maps to Crisp's conversation states (active, pending, resolved), create a custom multi-select picklist property for Crisp Tags, provision HubSpot Teams mapped to Crisp operator groups, and configure the Conversations Inbox if multi-channel routing (WhatsApp, SMS) is in scope. All custom properties are created before the first record is imported so field mapping resolves at insert time.

  3. Data extraction from Crisp API

    We extract data directly from the Crisp REST API regardless of the source plan tier, because the UI-based export is gated behind Essentials. Contacts are extracted in chunked batches of up to 200,000 records per pass using paginated requests, with date-range or ID filters on subsequent passes to avoid ceiling hits. Conversations and Messages are pulled using cursor-based pagination, with exponential backoff on 429 responses and Retry-After headers respected at each step. We throttle reads below the global API limit to avoid disrupting the customer's live Crisp operations during the migration window. All extractions produce a row-count manifest for reconciliation.

  4. Sandbox test migration

    We run a full migration into a HubSpot Sandbox environment (available on Professional and Enterprise tiers) using production-like data volume. The customer reconciles record counts in HubSpot against the Crisp source manifest across Contacts, Companies, Tickets, Messages, and Attachments. We spot-check 25-50 randomly selected Tickets in HubSpot against their Crisp source records to verify thread integrity, operator attribution, and timestamp ordering. Any field mapping corrections, property type mismatches, or missing custom properties are identified and resolved before the sandbox sign-off, which gates the production migration.

  5. Production migration in dependency order

    We execute the production migration in record-dependency order: Users first (provisioned by the admin, validated by email match), then Companies (from Crisp Websites), then Contacts (with CompanyId resolved), then Tickets (with ContactId, OwnerId, and pipeline resolved), then Messages (nested in tickets by conversation_id), then Attachments (re-uploaded to HubSpot Files and linked to tickets). Tags are written to the custom multi-select property on each Ticket. Saved Replies are delivered as a structured list in the migration inventory rather than a bulk import. Each phase emits a row-count reconciliation report. We run at 70 percent of HubSpot's API rate limit to preserve headroom for the customer's live operations.

  6. Cutover, delta pass, and automation rebuild handoff

    We freeze writes in Crisp during cutover. Any new records created in Crisp during the migration window are captured in a delta pass and imported into HubSpot before cutover completes. We then enable HubSpot Service Hub as the system of record. We deliver the full migration inventory, including the Chatbot Rules and Automation inventory, the Saved Replies list with variable syntax flagged for adaptation, the Segment rule definitions for manual rebuild as HubSpot Lists, and the Widget Configuration snapshot for the admin to reference when setting up HubSpot's chat widget. We provide a one-week hypercare window for reconciliation issues raised by the support team. We do not rebuild Crisp automations as HubSpot Workflows inside the migration scope.

Platform deep dives

Context on both ends of the pair

Crisp logo

Crisp

Source

Strengths

  • Per-workspace pricing model is predictable and avoids per-agent billing surprises common in competing platforms.
  • Chat, email, WhatsApp, and SMS channels converge in a single conversation thread across all paid tiers.
  • REST API covers Conversations, Contacts, Messages, and Websites with documented endpoints and webhook support.
  • Free tier with no time limit provides persistent access to core chat functionality without a credit card requirement.
  • E-commerce plugin ecosystem (Shopify, WooCommerce, PrestaShop) offers low-friction setup for online retail support teams.

Weaknesses

  • Mobile app is materially reduced compared to the desktop experience, limiting agent mobility for field or remote teams.
  • AI Copilot and auto-reply features are credit-gated and do not carry over unused credits between billing cycles.
  • CRM module (Contact profiles, custom fields, Segments) is only available on Essentials and above, restricting data exports for Free/Mini users.
  • Contact export via the UI is capped at 200,000 records per operation, requiring API-based batching for larger datasets.
  • Customer support responsiveness has deteriorated in recent user reviews, raising concerns for teams with critical migration timelines.
HubSpot Service Hub logo

HubSpot Service Hub

Destination

Strengths

  • Unified CRM object model means support context is always linked to sales and marketing data
  • Generous free tier with unlimited tickets and a shared inbox for small teams
  • Omnichannel inbox consolidates email, live chat, and major messaging platforms natively
  • Customer Success Workspace provides portfolio-level health scores without a separate tool
  • AI agent (Breeze) handles Tier-1 resolutions and knowledge base deflection automatically

Weaknesses

  • Per-seat pricing with mandatory onboarding fees inflates year-one cost significantly
  • Ticket history stored as fragmented engagement objects across APIs complicates export and migration
  • Custom Objects locked behind Enterprise tier limits portability for mid-market teams
  • Help desk depth—routing rules, SLA management, advanced reporting—trails dedicated tools like Zendesk
  • Setup and configuration requires real time investment; out-of-box defaults rarely fit existing workflows

Complexity grading

How hard is this migration?

Standard Helpdesk migration. 2 of 7 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Crisp and HubSpot Service Hub.

  • Object compatibility

    B

    2 of 7 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Crisp: Multi-tier: load balancer (permissive), API global (per IP+user), API route (per IP+user, more restrictive), plugin quota (daily for permanent tokens). No exact published numbers — 429 responses with Retry-After header indicate exhaustion..

  • Data volume sensitivity

    B

    Crisp doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Crisp to HubSpot Service Hub migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Crisp to HubSpot Service Hub data migrations

Answers to the questions buyers ask most during Crisp to HubSpot Service Hub migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Crisp to HubSpot Service Hub migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Small migrations under 5,000 contacts and 20,000 conversations with no custom properties typically complete in two to three weeks. Medium-complexity migrations with 5,000-25,000 contacts or multiple custom fields, a sandbox testing phase, and multi-channel configuration extend to four to six weeks. Large migrations with over 100,000 conversations, custom segments, or HubSpot Enterprise custom object schema reach eight to twelve weeks due to chunked API extraction, extended reconciliation, and the configuration scope. HubSpot's own sandbox creation and the customer's sign-off cycle add fixed time that is included in our timeline estimates.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Crisp.
Land in HubSpot Service Hub, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day