Helpdesk migration

Migrate from Frappe Helpdesk to Zoho Desk

Field-level mapping, validation, and rollback between Frappe Helpdesk and Zoho Desk. We move data and schema; workflows are rebuilt natively in Zoho Desk.

Frappe Helpdesk logo

Frappe Helpdesk

Source

Zoho Desk

Destination

Zoho Desk logo

Compatibility

77%

10 of 13

objects map 1:1 between Frappe Helpdesk and Zoho Desk.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Frappe Helpdesk to Zoho Desk is a multi-phase migration that translates PostgreSQL DocTypes into Zoho Desk's department-centric data model. Frappe Helpdesk stores tickets and communications as HD Ticket and Communication DocTypes in a self-hosted PostgreSQL database, while Zoho Desk organizes support around Tickets, Contacts, Accounts, and a multi-department hierarchy with Blueprint-based workflow automation. We access the Frappe database at the DocType level to extract tickets, customer records, conversations, SLA definitions, canned responses, and custom fields, then re-import them through Zoho Desk's REST API or CSV import endpoints with parent-record lookup resolution. Zoho Desk does not migrate teams as a native concept during third-party imports; we add agents to departments manually as a post-import step. Workflows, SLA triggers, and assignment rules do not migrate as automation code; we deliver a written inventory of every rule requiring rebuild in Zoho Desk Blueprint or Macros. Private file attachments in Frappe that require authenticated sessions may be inaccessible without the site's session cookie; we flag these during discovery and advise customers to temporarily open access before the migration window.

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

Frappe Helpdesk logo

Frappe Helpdesk

What's pushing teams away

  • The agent count and ticket volume that Frappe Helpdesk was designed for caps out around mid-market; large enterprise teams hit scaling limits in self-hosted deployments.
  • Custom field rendering requires manual template configuration in HD Ticket Template, which frustrates non-technical admins who expect standard form behavior.
  • Rate limiting on the Frappe Framework is based on cumulative request time rather than request count, making API-heavy automations unpredictable without load testing.
  • Workflow resets after minor version upgrades, forcing admins to reconfigure assignment rules and triggers after routine system maintenance.
  • Limited third-party integrations outside the Frappe ecosystem means teams using Salesforce or Zendesk on other functions end up maintaining parallel tooling.

Choosing

Zoho Desk logo

Zoho Desk

What's pulling them in

  • Deep Zoho ecosystem integration lets support data tie directly to CRM contacts, invoice records in Zoho Books, and custom apps built in Zoho Creator, providing a unified customer view without third-party middleware.
  • Pricing undercuts comparable platforms significantly: Enterprise at roughly $40 per agent per month versus Zendesk at comparable tiers, making it attractive for cost-sensitive teams scaling past 10 agents.
  • Blueprints and multi-level escalations allow teams to codify support workflows and enforce SLA routing automatically, reducing manual triage for mid-size support operations.
  • Multi-channel ticket ingestion unifies email, social media, live chat, and phone into a single queue view, giving agents one inbox without context-switching across channels.
  • The free tier up to 3 agents lets small teams validate the platform before committing, reducing financial risk for startups and micro-businesses evaluating help desk software.

Object mapping

How Frappe Helpdesk objects map to Zoho Desk

Each row shows how a Frappe Helpdesk object lands in Zoho Desk, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Frappe Helpdesk

HD Ticket

maps to

Zoho Desk

Ticket

1:1
Fully supported

HD Ticket records map to Zoho Desk Ticket with status, priority, ticket type, creation and modification timestamps, description HTML, and SLA deadline fields transferred directly. We preserve the original Frappe created_on timestamp in a custom Zoho Desk field frappe_created_date__s to maintain reporting continuity. Thread history (agent replies, customer messages) migrates as Zoho Desk Comments ordered chronologically. HD Ticket Template custom fields require explicit field-level mapping to Zoho Desk custom ticket fields during scoping; we flag all HD Ticket custom fields during discovery and pre-create equivalent Zoho Desk fields before import.

Frappe Helpdesk

HD Customer

maps to

Zoho Desk

Contact

1:1
Fully supported

HD Customer records map to Zoho Desk Contact with name, email, phone, organization link, and custom fields transferred directly. Portal user linkage is preserved in a custom field for reconciliation. If the source HD Customer has an organization link, we create a corresponding Zoho Desk Account and set the Contact's AccountId lookup. HD Customer custom fields require mapping to Zoho Desk Contact custom fields before import.

Frappe Helpdesk

HD Customer Organization

maps to

Zoho Desk

Account

1:1
Fully supported

Frappe Helpdesk organizations attached to HD Customer map to Zoho Desk Account. The organization's name, website, territory, and industry fields transfer directly. Account is created before Contact import so that the AccountId lookup is satisfied at the moment of Contact insert. If no organization exists in the source, Contact records are created without an AccountId and assigned to an Unassigned Account placeholder for post-import cleanup.

Frappe Helpdesk

Team

maps to

Zoho Desk

Department

lossy
Fully supported

Frappe Helpdesk Teams define agent groupings and email inbox routing. Zoho Desk does not have a native Team equivalent; it uses Department as the agent grouping construct. We map team names to Zoho Desk Departments and add agents to the relevant departments during the post-import agent provisioning step. Email inbox routing rules from Frappe Teams are translated to Zoho Desk department-level email configurations. If multiple Frappe Teams map to a single Zoho Desk Department, agent assignment is cumulative.

Frappe Helpdesk

Agent

maps to

Zoho Desk

Agent

1:1
Fully supported

Frappe Helpdesk Agent records (user accounts, roles, permissions) map to Zoho Desk Agent profiles. We match agents by email address. Any Frappe Agent without a corresponding Zoho Desk agent account is placed in a reconciliation queue and the customer's Zoho admin provisions the missing account before record import resumes. Agent role scoping (tier-1, tier-2, supervisor) maps to Zoho Desk agent Level and field-level security.

Frappe Helpdesk

SLA Policy

maps to

Zoho Desk

SLA Policy

1:1
Fully supported

Frappe Helpdesk SLA Policies define response and resolution time windows by priority or ticket type. Zoho Desk SLA Policies support first-response and resolution targets scoped per department. We map Frappe SLA Policy definitions to Zoho Desk SLA Policy configurations with matching time windows. If the destination Zoho Desk plan does not include SLA management, we preserve SLA policy names and target minutes in a custom field on the Ticket for manual policy application post-migration.

Frappe Helpdesk

Assignment Rule

maps to

Zoho Desk

Blueprint or Macro

lossy
Fully supported

Frappe Helpdesk Assignment Rules automate ticket routing based on subject keywords, customer tier, and ticket type. These are configuration records that do not migrate as automation code. We export all active assignment rules, document their trigger conditions, actions, and order, and deliver a written inventory recommending equivalent Zoho Desk Blueprint stages or Macro triggers for each rule. The customer's admin rebuilds automation rules in Zoho Desk post-migration.

Frappe Helpdesk

Knowledge Base Article

maps to

Zoho Desk

Article

1:1
Fully supported

KB Articles in Frappe Helpdesk are DocTypes with category assignments and HTML article content. We migrate articles and category hierarchy to Zoho Desk Help Center Articles and Sections. Article view counts and feedback ratings are not transferred because Zoho Desk's Article object does not store these as standard fields. Knowledge base attachments (images embedded in articles) require manual re-upload to Zoho Desk because third-party imports do not transfer KB attachments.

Frappe Helpdesk

Canned Response

maps to

Zoho Desk

Macro

1:1
Fully supported

Pre-written response templates in Frappe Helpdesk store subject and content as DocType fields. These migrate cleanly as text blobs to Zoho Desk Macros, which contain a name, description, and set of automated actions (reply content, field updates, tag additions). Dynamic variable substitution syntax such as {{ticket.customer_name}} in Frappe canned responses does not have a direct Zoho Desk equivalent; we strip the template variables and flag them in the handoff document for manual update.

Frappe Helpdesk

Communication

maps to

Zoho Desk

Comment

1:1
Fully supported

Frappe Helpdesk Communication records represent agent replies and customer messages linked to HD Ticket. We preserve chronological order and thread structure by inserting Comments on the mapped Zoho Desk Ticket in original timestamp sequence. Comment author is preserved in a custom Comment field frappe_author__s because Zoho Desk third-party imports do not always carry the original author name. Inline images embedded in Communication records are dropped during import; we flag these in the attachment inventory for manual re-insertion.

Frappe Helpdesk

HD Ticket Template

maps to

Zoho Desk

Custom Ticket Fields

lossy
Fully supported

HD Ticket Template is a Frappe Doctype that controls which custom fields render in the agent form view. Custom fields on HD Ticket exist as Frappe Custom Field records but do not appear in the agent interface until they are added to the Template. We export all HD Ticket Template entries, map each custom field definition to a Zoho Desk custom ticket field with an equivalent data type, and document any fields that exist in the source but have no Zoho Desk equivalent for the customer's admin to review.

Frappe Helpdesk

Attachment (public file)

maps to

Zoho Desk

Ticket Attachment

1:1
Fully supported

Frappe Helpdesk file records linked to HD Ticket that are stored as public files are re-downloaded using the Frappe site's public URL and uploaded to Zoho Desk as ticket attachments. We preserve the original filename and attach it to the corresponding migrated Ticket. Attachment migration is attempted during the main import phase and failed downloads are logged in the attachment inventory for the customer's review.

Frappe Helpdesk

Tag

maps to

Zoho Desk

Tag

1:1
Fully supported

Tags applied to HD Ticket records are mapped to Zoho Desk Tags. If Zoho Desk's tagging feature is not enabled in the destination account, we migrate tag names as a custom multi-select picklist field on the Ticket for post-migration admin review and tagging-system activation.

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.

Frappe Helpdesk logo

Frappe Helpdesk gotchas

Medium

HD Ticket custom fields require HD Ticket Template configuration

Medium

Workflow resets after Frappe version upgrades

High

Errors when Helpdesk is installed on existing ERPNext + HR sites

Low

Rate limiting is time-based, not request-count based

Low

Private file attachments require authentication to re-download

Zoho Desk logo

Zoho Desk gotchas

High

Agent email identity determines comment ownership after migration

High

Blueprints and SLA policies do not export via API

Medium

File upload capped at 10GB per migration batch

Medium

Tier-gated export and migration capabilities

Low

Inbound migration is two-phase with a hard Phase 2 cutoff

Pair-specific challenges

  • Zoho Desk does not preserve original ticket creation date during third-party imports

    Zoho Desk's import tools and Zwitch set the ticket creation timestamp to the date and time of import rather than preserving the original HD Ticket creation date. This breaks historical SLA breach reporting that relies on original creation timestamps. We address this by storing the original Frappe Helpdesk created_on timestamp in a custom Zoho Desk field (frappe_created_date__s) during import and advising the customer to configure a Zoho Desk report or dashboard that references this field for SLA compliance tracking. If SLA breach data must be exact, the customer should request Zoho Desk's Assisted Data Migration service for manual date preservation.

  • Zoho Desk does not migrate CC users, Groups, or Team assignments during import

    Third-party imports to Zoho Desk, including via Zwitch and CSV templates, do not transfer CC users on tickets, Group membership, or Frappe Helpdesk Team assignments as agent group memberships. We export Team structures and agent rosters during discovery, add agents to the corresponding Zoho Desk Departments during the post-import agent provisioning step, and log any CC user references in the ticket comment thread. If CC escalation history must be preserved as a structured field rather than a comment note, the customer's admin configures a custom field for post-import population.

  • Knowledge base attachments and inline images are dropped during Zoho Desk imports

    Zoho Desk's import process does not transfer knowledge base article attachments or inline images embedded in ticket descriptions and comments. Frappe Helpdesk KB Articles that contain embedded images require manual re-upload to the Zoho Desk Help Center after migration. Similarly, inline images in HD Ticket descriptions and Communication records are stripped and flagged in the attachment inventory. We re-download accessible public file attachments and re-upload them to the migrated Ticket, but inline images embedded in HTML body content require post-migration manual remediation or a custom script.

  • Frappe Helpdesk workflow automation does not migrate to Zoho Desk Blueprint

    Assignment Rules, SLA triggers, and notification conditions stored in Frappe Helpdesk are Frappe Desk DocTypes that have no structural equivalent in Zoho Desk's Blueprint process builder or Macro system. We do not migrate automation as code. We deliver a written inventory of every active Frappe Helpdesk assignment rule and SLA trigger with its conditions, actions, scope, and a recommended Zoho Desk Blueprint stage or Macro configuration for each. The customer's admin rebuilds automation in Zoho Desk post-migration. This is a known scope limitation that requires admin time post-cutover.

  • Private Frappe file attachments may be inaccessible without authenticated session

    Frappe Helpdesk stores some attachments as private files in the site's file directory that require an authenticated session to access via URL. During migration, we cannot re-download private file attachments without the Frappe site's session cookie or API access token. During discovery, we flag all private file references in HD Ticket and Communication records. Customers should temporarily make private files public or provide an API access token before the migration window so that attachments can be re-downloaded. Files that remain inaccessible are logged in the attachment inventory and can be manually uploaded to Zoho Desk after cutover.

Migration approach

Six steps for a successful Frappe Helpdesk to Zoho Desk data migration

  1. Discovery and site health assessment

    We audit the source Frappe Helpdesk instance across PostgreSQL DocTypes: HD Ticket volume and custom field count, HD Customer records, Communication record count, SLA Policy definitions, active Assignment Rules, KB Article count and category structure, canned response volume, Team structures, and attachment inventory (public vs private files). We also run Frappe site health checks to identify the GitHub issue #3003 site-configuration conflict that can render tickets invisible in the agent view. If that conflict is present, we resolve it before exporting or use a direct database connection to bypass the application layer. Discovery output is a written migration scope, object inventory, and Frappe site health report.

  2. Schema design and field mapping

    We design the destination Zoho Desk schema based on the discovery inventory. This includes creating Zoho Desk custom fields for every Frappe Helpdesk HD Ticket custom field and HD Customer custom field, mapping Frappe Teams to Zoho Desk Departments, designing the SLA Policy mapping, and documenting which canned responses require template variable cleanup. We pre-create the Zoho Desk custom fields via API before any data import begins so that the import job can write directly to typed fields. The customer provisions Zoho Desk agents and departments in advance so that agent email matching and department assignment are ready before record migration starts.

  3. Sandbox migration and reconciliation

    We run a full migration into the customer's Zoho Desk sandbox using production-like data volume. The customer reconciles record counts (Tickets in, Contacts in, Accounts in, Comments in), spot-checks 25-50 random tickets for field accuracy and thread completeness, and reviews the attachment inventory. Any field mapping corrections, SLA policy adjustments, or department assignments are finalized here. Sign-off on sandbox results authorizes the production migration start date. This step also confirms the scope of any delta migration window (tickets created in Frappe Helpdesk during the migration window) that requires a second pass.

  4. Production migration in dependency order

    We run production migration in record-dependency order: Accounts (from Frappe organizations), Contacts (with AccountId resolved and HD Customer custom fields mapped), Departments (from Frappe Teams), Agents (matched by email, with role and level mapped), SLA Policies (definition mapping), Knowledge Base Articles and Sections, Canned Responses to Macros (with template variables flagged), Tickets (with original creation date preserved in custom field, SLA deadline fields mapped, and status translated), Comments (chronological order preserved, author flagged in custom field, inline images logged separately), and Attachments (public files re-downloaded and re-uploaded). Each phase emits a row-count reconciliation report before the next phase begins.

  5. Agent provisioning and team mapping

    We reconcile Frappe Helpdesk agents against Zoho Desk agent accounts by email. Agents without a Zoho Desk account are logged in the reconciliation queue for the customer's admin to provision. We add each Frappe agent to the corresponding Zoho Desk Department based on the Team-to-Department mapping designed during schema design. If a Frappe agent appears in multiple Teams, they are added to multiple Zoho Desk Departments. Role scoping (tier-1, tier-2, supervisor) maps to Zoho Desk agent Level configuration.

  6. Cutover, delta sync, and workflow rebuild handoff

    We freeze Frappe Helpdesk writes during cutover, run a final delta migration of any records modified or created during the migration window, then mark Zoho Desk as the system of record. We deliver the Assignment Rule and SLA trigger inventory document to the customer's admin team with Blueprint and Macro recommendations for each migrated rule. We do not rebuild Frappe Helpdesk workflows as Zoho Desk Blueprint stages inside the migration scope; that is a separate engagement or an internal admin task. We support a five-business-day hypercare window for reconciliation issues raised during the first week of production use in Zoho Desk.

Platform deep dives

Context on both ends of the pair

Frappe Helpdesk logo

Frappe Helpdesk

Source

Strengths

  • Open-source with AGPL-3.0 license, no per-agent or per-ticket billing
  • Deep ERPNext integration connecting support tickets to financial transactions
  • Full SLA configuration with response and resolution deadline tracking
  • Customizable agent portal and customer portal with white-label branding
  • Built-in knowledge base, canned responses, and customer rating collection

Weaknesses

  • Smaller community and plugin ecosystem compared to Zendesk or Freshdesk
  • Self-hosted deployments require server administration and backup management
  • API documentation is sparse; integrations often require custom Frappe scripting
  • Version upgrade path can break custom apps and custom field configurations
  • Limited native AI or advanced automation capabilities compared to newer SaaS competitors
Zoho Desk logo

Zoho Desk

Destination

Strengths

  • Generous free tier for teams of up to 3 agents with no time limit, reducing financial risk for small support operations.
  • Per-agent flat pricing across tiers is significantly lower than Zendesk, Freshdesk, or Intercom at equivalent feature levels.
  • Tight integration with Zoho CRM, Zoho Books, and Zoho Creator provides a unified data ecosystem without third-party middleware.
  • Multi-channel ticket aggregation consolidates email, social, chat, and phone into a single queue view.
  • Assisted migration service handles the two-phase transfer process with Zoho's own migration team for inbound moves.

Weaknesses

  • The UI is frequently described as dated, clunky, and inconsistent across modules compared to modern SaaS competitors.
  • Advanced automation features including Blueprints, multi-brand, and live chat are tier-gated, limiting the free and Express plans to basic ticketing.
  • Non-Zoho integrations require custom Deluge scripting or external middleware, reducing flexibility for heterogeneous tech stacks.
  • Steep learning curve and complex customization options mean slower onboarding for new agents and ongoing training investment.
  • Export and migration capabilities are gated by plan tier, with data backup only available on higher plans.

Complexity grading

How hard is this migration?

Moderate Helpdesk migration. 4 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 Frappe Helpdesk and Zoho Desk.

  • Object compatibility

    C

    4 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

    Frappe Helpdesk: Fixed-window rate limiting based on cumulative request time; no public per-endpoint limit documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Frappe Helpdesk to Zoho Desk 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 Frappe Helpdesk to Zoho Desk data migrations

Answers to the questions buyers ask most during Frappe Helpdesk to Zoho Desk migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Frappe Helpdesk to Zoho Desk 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 minimal custom fields. Migrations with complex HD Ticket Template configurations, knowledge base article volumes over 500, multiple Frappe Teams requiring department mapping, or a requirement for parallel-run delta migration move to eight to twelve weeks because of parent-record resolution, template variable cleanup, and post-import workflow inventory scope. Zoho Desk's import tools process data in two phases (initial bulk followed by a delta window), which adds to the overall timeline.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Frappe Helpdesk.
Land in Zoho Desk, 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