Helpdesk migration

Migrate from Zammad to HubSpot Service Hub

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

Zammad logo

Zammad

Source

HubSpot Service Hub

Destination

HubSpot Service Hub logo

Compatibility

64%

9 of 14

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

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Zammad to HubSpot Service Hub is a schema and context migration, not a simple record export. Zammad organizes support around Tickets with a flat Group/Role permission model; HubSpot Service Hub uses Tickets linked to Contacts, Companies, and Pipelines with a shared CRM record that surfaces marketing and sales context at the agent level. We migrate Zammad Users (Agents and Customers) to HubSpot Contacts, Zammad Organizations to HubSpot Companies, and Zammad Tickets to HubSpot Tickets with their full article thread history. Zammad's Groups map to HubSpot Inboxes and Teams, with the Group's email address becoming the routing address on the HubSpot Inbox. Zammad time entries that cannot be corrected after creation are flagged before migration so customers can review and correct them in the source system. We do not migrate Triggers, Macros, Text Modules, or SLA configurations as code; we deliver a written inventory for the customer's admin to rebuild in HubSpot Workflows, Snippets, and SLA policies. Knowledge Base articles are migrated as content, not as structured knowledge-base records, because Zammad's article schema does not map directly to HubSpot's Knowledge Base object model.

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

Zammad logo

Zammad

What's pushing teams away

  • Time tracking cannot be corrected after entry — users report frustration that you cannot edit or delete time entries without rewriting entire ticket communications.
  • Feature requests are frequently dismissed by the community team as isolated cases, leaving customers with no clear roadmap for common workflow needs like per-customer PDF reports.
  • Custom field support via the API is poorly documented, requiring developers to experiment with undocumented endpoints to populate or read custom objects on tickets.
  • Organizations outgrow Starter and Professional agent limits and find Plus tier pricing approaches commercial SaaS alternatives, eliminating the cost advantage.
  • Self-hosting operational overhead — server maintenance, updates, backups, and support contracts — grows disproportionately for teams without dedicated DevOps resources.

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 Zammad objects map to HubSpot Service Hub

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

Zammad

Ticket

maps to

HubSpot Service Hub

Ticket

1:1
Fully supported

Zammad Tickets map directly to HubSpot Tickets with state (open, pending, closed), priority (low, normal, high, urgent), and owner preserved. The full article thread (emails, chat logs, notes, public replies, internal notes) migrates as HubSpot Ticket Conversations. Zammad's ticket number becomes the ticket ID in HubSpot. Tags on the Zammad ticket transfer to HubSpot Ticket Labels. Group assignment on the Zammad ticket maps to the HubSpot Inbox routing.

Zammad

User (Agent)

maps to

HubSpot Service Hub

User

1:1
Fully supported

Zammad Agents map to HubSpot User records. We resolve by email match. Agents without a matching HubSpot User go to a reconciliation queue for the customer's admin to provision before record import. Zammad role permissions do not map to HubSpot Roles because HubSpot's permission model uses Roles, Teams, and Individual-level overrides differently; we deliver a Zammad role-to-HubSpot-permission mapping document for the admin to configure post-migration.

Zammad

User (Customer)

maps to

HubSpot Service Hub

Contact

1:1
Fully supported

Zammad Customer records (the end-user who submits tickets) map to HubSpot Contacts. The Zammad customer's email, name, phone, and organization membership transfer to HubSpot Contact properties. Zammad's Customer users do not become HubSpot Users because HubSpot User seats are for agents, not end-users.

Zammad

Organization

maps to

HubSpot Service Hub

Company

1:1
Fully supported

Zammad Organizations map to HubSpot Companies. Organization domain, name, note, and member Users transfer. A User can belong to multiple Organizations in Zammad; HubSpot Companies support multiple contacts, but the many-to-many relationship requires a junction approach if the customer needs dual-company associations. We flag this during scoping and default to a primary-company assignment with secondary associations stored in a custom field-contact field.

Zammad

Group

maps to

HubSpot Service Hub

Inbox + Team

lossy
Fully supported

Zammad Groups map to HubSpot Inboxes (for email routing) and HubSpot Teams (for agent access control). The Group's email address becomes the routing address on the HubSpot Inbox. Group members (agents) are assigned to the corresponding HubSpot Team. Zammad's assignment rules (ticket routing to Groups) become HubSpot Inbox routing rules. Default Groups like 'Users' and 'First Level Support' require customer guidance on which HubSpot Inbox to map to.

Zammad

Tag

maps to

HubSpot Service Hub

Ticket Label

1:1
Fully supported

Zammad Tags (flat key-value labels on Tickets) map to HubSpot Ticket Labels. Labels in HubSpot attach to ticket records and can be used for filtering, reporting, and workflow triggers. Zammad tag associations migrate as label assignments on each ticket.

Zammad

SLA

maps to

HubSpot Service Hub

SLA Policy (Professional and Enterprise)

lossy
Fully supported

Zammad SLAs define response and resolution time commitments tied to Calendars. HubSpot Service Hub Professional and Enterprise include SLA Policies with First Response and Next Response SLA targets. We map Zammad SLA configurations to HubSpot SLA Policies, converting the calendar-based business hours to HubSpot Business Hours. First Response SLA from Zammad maps to HubSpot First Response SLA; Resolution Time SLA maps to Time to Close SLA. Starter tier lacks SLA Policies; we flag this gap during scoping.

Zammad

Calendar (Business Hours)

maps to

HubSpot Service Hub

Business Hours

1:1
Fully supported

Zammad Calendars defining business hours migrate to HubSpot Business Hours. Working days, timezone, and holiday schedules transfer. Calendars must exist in HubSpot before SLAs that reference them are created. We create HubSpot Business Hours during the schema phase.

Zammad

Custom Object / Object Attribute

maps to

HubSpot Service Hub

Custom Object / Custom Property

1:1
Fully supported

Zammad Custom Objects extending Tickets, Users, Organizations, and Groups migrate to HubSpot Custom Objects (Professional tier and above) and Custom Properties on standard objects. We pre-create the destination schema via HubSpot's API including field types, picklist values, and lookup relationships. Zammad's Boolean, Date, DateTime, Integer, Float, Text, Single Select, Multi Select, and User Reference types map to their HubSpot equivalents. Lookup relationships to other custom objects require pre-creation of the target schema.

Zammad

Attachment

maps to

HubSpot Service Hub

File (ContentDocument / Attachments)

1:1
Fully supported

Attachments on Zammad ticket articles migrate as HubSpot Files attached to the parent Ticket record via ContentDocumentLink. Content-type, filename, and size are preserved. We chunk large attachment batches (over 50 GB total) into sequential API calls respecting HubSpot's per-second rate limits. Inline images embedded in ticket articles migrate as separate Files.

Zammad

Knowledge Base Article

maps to

HubSpot Service Hub

Knowledge Base Article

1:1
Fully supported

Zammad Knowledge Base articles migrate as HubSpot Knowledge Base articles with title, body content, and category assignments preserved. Zammad article visibility settings (internal vs. external) do not map directly to HubSpot's portal visibility model; we flag these for admin configuration. Multi-language Zammad articles with locale tags require the destination HubSpot Knowledge Base to have matching language settings enabled.

Zammad

Trigger

maps to

HubSpot Service Hub

Workflow (documented, not migrated)

lossy
Fully supported

Zammad Triggers automate actions based on ticket conditions and migrate as a written inventory document for HubSpot rebuild. Zammad trigger conditions referencing custom Objects map to HubSpot Workflow triggers on custom property values. We document the trigger name, conditions, operators, and action set for the admin to recreate in HubSpot Workflows. Active/inactive status is noted for the admin to apply during rebuild.

Zammad

Macro

maps to

HubSpot Service Hub

Snippet (documented, not migrated)

lossy
Fully supported

Zammad Macros bundle ticket updates and article templates for quick agent responses. We document Macros with their action sets, template content, and Group ID references for the admin to rebuild as HubSpot Snippets and Shared Inbox macros. Zammad macro-specific ticket field updates map to HubSpot workflow-triggered property updates.

Zammad

Text Module

maps to

HubSpot Service Hub

Snippet (documented, not migrated)

lossy
Fully supported

Zammad Text Modules are reusable response templates with multi-language support. We document Text Module content, language tags, and usage counts for the admin to recreate as HubSpot Snippets. The destination must have matching locale configurations.

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.

Zammad logo

Zammad gotchas

High

Migration Wizard requires empty, uninitialized instance

High

Agent count limits are enforced, not advisory

Medium

Time entries are immutable post-creation

Medium

Custom Objects use a disabled-not-deleted convention

Low

Annual billing cancellation requires 90-day notice

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

  • Zammad time entries cannot be edited post-migration

    Once a time entry is saved against a ticket in Zammad, there is no UI or API method to edit or delete it. The only workaround is to delete the entire article containing the time entry, which also removes all subsequent communications on the ticket. We flag this before migrating any tickets with time accounting and recommend customers review and correct time entries in Zammad before migration. HubSpot's time tracking on tickets is fully editable, so correcting the source data before migration is the only path to accurate time reporting in HubSpot.

  • Groups require Inbox and Team mapping before ticket migration

    Zammad Groups control ticket assignment, agent access, and email routing. HubSpot uses Inboxes for email routing and Teams for agent access, which are separate objects. A Zammad Group maps to a HubSpot Inbox (for email routing) plus a HubSpot Team (for access control). We configure both during the schema phase before any ticket records migrate, so that Group assignments on tickets resolve to the correct Inbox and Team at migration time. Skipping this step results in tickets routing to the default Inbox and missing the Group-based context.

  • HubSpot API rate limits constrain attachment and activity batch sizes

    HubSpot enforces per-second rate limits (100 req/10s on Starter, 190 req/10s on Professional, 250 req/10s with purchased increase) and daily call limits (250k on Starter, 650k on Professional, up to 3M on Enterprise with purchased increases). Zammad's API does not enforce equivalent limits. We chunk attachment batches and activity history migrations to stay within HubSpot's limits using exponential backoff on 429 responses. Migrations that ignore rate limits produce silent record drops or timeout failures.

  • Zammad's Migration Wizard requires an empty destination instance

    Zammad's official Migration Wizard and third-party migrators can only import into a fresh, completely empty Zammad instance. This is a Zammad-source constraint, not a HubSpot destination constraint. Our migration uses HubSpot's API directly rather than Zammad's import tool, so this constraint does not apply to our process. However, customers planning a parallel cutover or using Zammad's wizard for supplemental data should be aware that the wizard cannot import into an already-initialized Zammad instance.

  • SLA Policies are Professional and Enterprise only in HubSpot

    Zammad's SLA configurations (response and resolution time commitments tied to Calendars) map to HubSpot SLA Policies, which are only available on Service Hub Professional ($90/agent/month) and Enterprise ($270/agent/month). Customers on HubSpot Starter cannot use SLA Policies; Zammad SLA configurations will not be active in HubSpot Starter. We scope SLA migration only when the destination HubSpot plan includes SLA Policies and flag the gap for customers on Starter.

Migration approach

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

  1. Discovery and Zammad instance audit

    We audit the source Zammad instance across tier (Starter, Professional, Plus), agent count, ticket volume, organization count, attachment size, custom Object definitions, active Triggers and Macros, and SLA configurations. We also review time-entry volume and flag any tickets with time accounting that require pre-migration correction. The discovery output is a written migration scope including a record-count matrix, custom object schema inventory, and a HubSpot Service Hub tier recommendation based on the customer's SLA, automation, and agent-count requirements.

  2. HubSpot destination schema setup

    We create the HubSpot destination schema before any data migration. This includes provisioning Custom Objects (if Professional or Enterprise), custom properties on Ticket and Contact objects, Inboxes with email routing addresses mapped from Zammad Groups, Teams for agent access control, Business Hours from Zammad Calendars, and SLA Policies for Professional and Enterprise tiers. Schema is validated in a HubSpot test portal before production migration begins.

  3. Staging migration and reconciliation

    We run a full migration into a HubSpot staging or sandbox environment using production-like data volume. The customer's operations lead reconciles record counts (Contacts in, Companies in, Tickets in, Labels in), spot-checks 25-50 random ticket records against the Zammad source for thread completeness and attachment presence, and reviews tag preservation. We flag mapping corrections here. Staging sign-off is required before production migration begins.

  4. Time-entry pre-migration review

    We extract all tickets with time entries and surface them to the customer's admin before migration. Because Zammad time entries are immutable post-creation, any corrections must happen in Zammad before the migration. We provide a sorted list of tickets with time entries, the entry timestamps, and the logged duration so the admin can review and correct before the cutover window. This step prevents corrupted time data from migrating to HubSpot.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Contacts (from Zammad Customer users), Companies (from Zammad Organizations with primary-contact resolution), Teams and Inboxes (from Zammad Groups with email routing), Business Hours and SLA Policies (from Zammad Calendars and SLAs), Tickets with thread history and attachments (via batched API calls with rate-limit handling), Custom Objects and their associations (with lookup resolution to parent records), and Knowledge Base articles. Each phase emits a row-count reconciliation report before the next phase begins.

  6. Trigger, Macro, and Text Module inventory delivery

    We do not migrate Zammad Triggers, Macros, or Text Modules as code because their automation logic does not map directly to HubSpot Workflows, Snippets, or Shared Inbox macros. We deliver a written inventory of every active Trigger (with conditions, operators, and action sets), Macro (with template content and Group ID references), and Text Module (with multi-language tags) for the customer's admin to rebuild in HubSpot. We support a one-week post-migration window for questions on the inventory document.

  7. Cutover, delta sync, and hypercare

    We freeze Zammad writes during cutover, run a final delta migration of records modified during the migration window, then designate HubSpot as the system of record. We deliver the Zammad cutover checklist (inbox routing update, DNS MX change if applicable, agent training on HubSpot Inbox). We provide a two-week hypercare window where we resolve reconciliation issues raised by the customer's support team. We do not provide post-migration admin training, workflow rebuild, or ongoing support as standard scope; these are separate engagements.

Platform deep dives

Context on both ends of the pair

Zammad logo

Zammad

Source

Strengths

  • Fully open-source with both cloud-hosted and self-hosted deployment options, giving complete control over infrastructure.
  • Omnichannel consolidation — email, chat, SMS, Telegram, Twitter/X, Facebook, and WhatsApp unified in a single ticket queue.
  • Per-agent pricing with generous free tier on Starter (€7/agent/month annual) and no per-contact billing surprises.
  • GDPR-compliant with ISO27001-certified German data center for hosted deployments.
  • REST API supports automation, integrations via n8n or custom scripts, and programmatic ticket/User/Organization management.

Weaknesses

  • Time tracking entries cannot be edited or deleted after creation without rewriting the associated ticket communication.
  • Per-agent pricing scales linearly — large support teams on Plus tier (€25/agent/month) approach commercial SaaS cost territory.
  • Custom Objects lack clear API documentation for read/write operations, requiring developer experimentation for integration work.
  • Feature development pace is governed by a small nonprofit team, with community feature requests frequently deprioritized.
  • WhatsApp and Facebook channels are gated behind the €25/agent Plus tier, not available on lower-cost Professional.
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?

Moderate Helpdesk migration. 3 of 7 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

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

  • Object compatibility

    C

    3 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

    Zammad: Not publicly documented in core REST API docs — Zammad is self-hostable, so effective limits depend on each instance's deployment topology and any reverse-proxy throttling in front of the app.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Zammad 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 Zammad to HubSpot Service Hub data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 15,000 tickets, 5,000 contacts, and 2,000 organizations with no custom objects. Migrations with custom objects, large attachment volumes (over 50 GB), multi-language knowledge base content, or Zammad Plus tier SLA configurations move to eight to twelve weeks because of custom object schema mapping, attachment batch sequencing, HubSpot SLA policy design, and knowledge base content review. The time-entry pre-migration review adds one to three days to the schedule depending on volume.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Zammad.
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