Helpdesk migration

Migrate from Frappe Helpdesk to Gorgias

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

Frappe Helpdesk logo

Frappe Helpdesk

Source

Gorgias

Destination

Gorgias logo

Compatibility

71%

10 of 14

objects map 1:1 between Frappe Helpdesk and Gorgias.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Frappe Helpdesk and Gorgias are architecturally different platforms that require a structured migration approach. Frappe Helpdesk stores everything in PostgreSQL as DocType records; Gorgias is a REST-based SaaS helpdesk with a ticket-centric data model built for Shopify and e-commerce workflows. The migration requires extracting HD Ticket, HD Customer, Communication, and SLA records from the Frappe database, resolving HD Ticket Template custom field gaps that are a known Frappe Helpdesk configuration issue, mapping Frappe status and priority enums to Gorgias ticket states, and ingesting via Gorgias API with leaky-bucket rate limiting (40-80 requests per 20 seconds on most tiers). Assignment Rules, Portal Settings, and Workflow definitions do not migrate as configuration; we deliver a written inventory for the customer's admin to rebuild in Gorgias. Private file attachments stored in Frappe's private files directory may require session-based re-download or manual export during the inventory phase.

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

Gorgias logo

Gorgias

What's pulling them in

  • Shopify-native integrations pull order details, shipment status, and return data directly into the ticket view, eliminating the need for agents to switch between apps.
  • Unlimited user seats mean growing support teams do not trigger billing changes; pricing scales only on billable ticket volume.
  • AI Agent automates responses to high-volume queries like order status and returns, measurably reducing the number of billable tickets each month.
  • Omnichannel inbox consolidates email, live chat, Facebook, Instagram, WhatsApp, SMS, and voice into a single threaded view.
  • SOC 2 Type II certification and GDPR-aligned data handling satisfy enterprise procurement requirements for customer support platforms.

Object mapping

How Frappe Helpdesk objects map to Gorgias

Each row shows how a Frappe Helpdesk object lands in Gorgias, 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

Gorgias

Ticket

1:1
Fully supported

HD Ticket records map to Gorgias Ticket with status, priority, subject, description HTML, creation timestamp, and modification timestamp transferred directly. The Frappe resolution_status and resolution_date map to Gorgias ticket state transitions. HD Ticket Template custom fields are flagged during discovery and mapped to Gorgias custom ticket attributes (Settings > Ticket Fields). Frappe Helpdesk ticket ID is preserved in a custom Gorgias field frappe_ticket_id__c for audit traceability. If the source instance has the GitHub #3003 site configuration conflict (tickets invisible in agent view), we access data via direct PostgreSQL connection rather than the Frappe API layer.

Frappe Helpdesk

HD Customer

maps to

Gorgias

Customer

1:1
Fully supported

HD Customer records (name, email, phone, organization link, creation timestamp) map to Gorgias Customer. Frappe HD Customer custom fields (via Frappe Custom Field DocType) map to Gorgias customer attributes if they exist, or are flagged as unmapped for manual re-entry. Portal user status on HD Customer maps to Gorgias customer email verification state. We resolve the Frappe HD Customer to HD Ticket linkage by ticket.customer_email match against the Gorgias customer table during ingestion.

Frappe Helpdesk

Communication

maps to

Gorgias

Message

1:1
Fully supported

Every HD Ticket Communication record (agent replies and customer messages with timestamp, author, and message body) migrates as a Gorgias Message attached to the corresponding ticket. We preserve chronological thread ordering by setting the Gorgias Message created_at to the original Frappe Communication creation timestamp. HTML body content from Frappe migrates as-is; embedded image references are re-downloaded where accessible via authenticated Frappe session. Message author type (agent vs customer) maps to Gorgias sender type.

Frappe Helpdesk

SLA Policy

maps to

Gorgias

SLA

1:1
Fully supported

Frappe SLA Policies (response and resolution time windows by priority or ticket type) map to Gorgias SLA Rules. The SLA first_response_by and resolution_by deadline timestamps migrate as Gorgias SLA timer fields. Priority mapping: Frappe Low to Gorgias low, Normal to medium, High to high, Urgent to urgent. If Gorgias SLA Rules are not available on the customer's tier (Starter and Basic plans omit SLA Rules), we document the gap and advise upgrading or rebuilding SLA tracking manually post-migration.

Frappe Helpdesk

Team

maps to

Gorgias

Team

1:1
Fully supported

Frappe Helpdesk Teams (agent groupings, email inbox routing, team-level SLA assignments) map to Gorgias Teams. We extract team name, inbox email address, and SLA policy linkage. If the destination Gorgias account uses Inboxes rather than Teams, we map Frappe teams to Gorgias Inbox configurations during scoping. Team membership is resolved after the Agent mapping step.

Frappe Helpdesk

Agent

maps to

Gorgias

Agent

1:1
Fully supported

Frappe Agent records (user account, role, permissions) map to Gorgias Agent profiles. We match by email address. Agent active status, first name, last name, and email transfer. Frappe role-based permissions (Agent, Ticket Agent, FAQ Manager) map to Gorgias agent role permissions (Agent, Admin). The customer's Gorgias admin provisions agents before migration begins so that OwnerId references resolve on ticket import.

Frappe Helpdesk

HD Customer Organization

maps to

Gorgias

Customer Organization / Shopify Shop

lossy
Fully supported

Frappe HD Customer records can link to an Organization field representing the customer's company. In Gorgias, company context is available through the Shopify store association or as a custom customer attribute. We extract Frappe organization name and map it to a Gorgias customer attribute org_name__c or to the Shopify shop name if the customer operates a multi-brand Shopify setup. This is a configuration step during scoping.

Frappe Helpdesk

Knowledge Base Article

maps to

Gorgias

Article

1:1
Fully supported

Frappe KB Articles (category hierarchy, HTML content, article title, creation date) map to Gorgias Articles in the Help Center. Article view counts and feedback ratings from Frappe do not transfer as Gorgias does not expose these as importable fields. Category hierarchy from Frappe (HD Article Category) maps to Gorgias Article categories. If the Frappe KB is large (over 500 articles), we migrate in batches and validate category assignments against the Gorgias Help Center structure.

Frappe Helpdesk

Canned Response

maps to

Gorgias

Saved Reply

1:1
Fully supported

Frappe Saved Replies (pre-written response templates with subject and content) migrate to Gorgias Saved Replies. The template body transfers as rich text. Dynamic variable substitution syntax in Frappe templates (such as ticket.customer_name or ticket.subject) does not automatically convert to Gorgias syntax; we flag any dynamic variable usage and document the equivalent Gorgias templating format (such as {{ticket.customerName}} or {{customer.email}}) for the customer's admin to update post-migration.

Frappe Helpdesk

Tag

maps to

Gorgias

Tag

1:1
Fully supported

Tags applied to HD Ticket records (via Frappe Tag entry linked to the ticket) map to Gorgias Tags on the corresponding ticket. We extract all distinct tag names from the Frappe Tag table, validate they meet Gorgias tag naming constraints, and attach them to migrated tickets by ticket ID lookup. Tags used for internal categorization in Frappe transfer as Gorgias tags for agent-side filtering.

Frappe Helpdesk

Attachment

maps to

Gorgias

Attachment

1:1
Fully supported

Ticket and communication attachments stored as Frappe File records linked to HD Ticket or Communication DocTypes are migrated as Gorgias ticket attachments. Public file URLs re-download via HTTP. Private file URLs (a known Frappe limitation where files require authenticated session access) are flagged during inventory. We advise customers to temporarily make Frappe private files public or export them manually during the discovery phase, or to provision a Frappe API session cookie for our extraction job to use for private file re-download.

Frappe Helpdesk

HD Ticket Template

maps to

Gorgias

Ticket Field Configuration

lossy
Fully supported

This is a Frappe-specific configuration record that does not have a direct Gorgias equivalent but requires attention. HD Ticket Template is the mechanism by which custom fields on HD Ticket become visible in the agent form. During migration, custom field definitions transfer but the Template entries do not. We inventory all custom fields during discovery, map them to Gorgias ticket attributes, and deliver a field-by-field configuration guide so the customer's Gorgias admin adds each custom field to the ticket form manually post-import. Without this step, agents see empty values for migrated custom field data even though the data exists in Gorgias.

Frappe Helpdesk

Assignment Rule

maps to

Gorgias

Rule (not migrated as code)

lossy
Fully supported

Frappe Assignment Rules (auto-assignment conditions based on subject keywords, customer tier, ticket type) are configuration records that require manual rebuild in Gorgias Rules. We do not migrate them as executable code because the rule engine models differ. We deliver a written inventory of every active Assignment Rule including its trigger conditions, assignment target (agent or team), and priority, mapped to the equivalent Gorgias Rule trigger and action. The customer's admin rebuilds these in Gorgias Settings > Rules post-migration.

Frappe Helpdesk

Customer Portal Settings

maps to

Gorgias

Help Center Settings

lossy
Mapping required

Frappe Helpdesk portal branding, allowed ticket creation types, and visibility settings are configuration records that do not transfer to Gorgias as data. We document the source portal configuration (portal name, allowed channels, ticket type restrictions, white-label settings) and deliver a setup guide for re-configuring the Gorgias Help Center with equivalent settings. This is a manual post-migration step for the customer's admin.

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

Gorgias logo

Gorgias gotchas

High

AI Agent adds outcome-based fees on top of billable ticket costs

High

Overage billing for tickets scales nonlinearly

Medium

API rate limits restrict bulk export throughput

Medium

Agent data visibility cannot be restricted by role for GDPR use cases

Low

Knowledge Base translations require separate API calls per locale

Pair-specific challenges

  • HD Ticket Template custom fields require manual Gorgias re-entry

    Frappe Helpdesk stores custom fields on HD Ticket as Frappe Custom Field DocType records, but they are invisible in the agent form until added to HD Ticket Template. During migration, custom field definitions and values transfer, but the Template entry does not. Agents in Gorgias will see empty values for these fields even though data exists in the database. We inventory every HD Ticket Template entry during discovery, map each custom field to a Gorgias ticket attribute, and deliver a step-by-step field-by-field configuration guide. Skipping this step causes agents to lose visibility into custom data that their Frappe Helpdesk workflow depended on.

  • Private file attachments require Frappe session authentication

    Frappe stores ticket and communication attachments as private files that require an authenticated session or API access token to re-download. During migration, our extraction job cannot fetch private files without a valid Frappe session cookie or API token. We flag all inaccessible attachments during the inventory phase. We advise customers to temporarily set Frappe site permissions to public during extraction, export private files manually alongside structured data, or provide a Frappe API session token for our extraction job to use. Attachments stored as public Frappe files migrate without issue.

  • Frappe Helpdesk site conflict causes tickets to disappear

    Known GitHub issue #3003 describes a site configuration conflict when Helpdesk is installed on an ERPNext site that also has HR modules loaded. Under this condition, HD Ticket and HD Customer records become invisible in the agent view even though data exists in the database. If the source Frappe Helpdesk instance has this conflict, we bypass the Frappe application layer entirely and connect directly to the underlying PostgreSQL database to extract data. We assess site health during discovery using a read-only database connection probe before committing to extraction methodology.

  • Gorgias rate limits require leaky-bucket ingestion pacing

    Gorgias enforces API rate limits using a leaky-bucket algorithm (40-80 requests per 20 seconds depending on plan tier). Our extraction jobs from Frappe PostgreSQL are not rate-limited, but our ingestion into Gorgias must respect this ceiling. We implement request throttling with exponential backoff on 429 responses and batch ticket creation requests where the Gorgias API supports bulk operations. Large migrations with high ticket volume and dense conversation histories require longer ingestion windows; we quote timelines based on effective API throughput after rate-limit throttling, not raw record count.

  • Assignment Rules and Workflows do not migrate as code

    Frappe Helpdesk Assignment Rules (auto-routing based on conditions) and SLA trigger workflows are configuration records stored in Frappe Desk. These do not have Gorgias equivalents that accept a direct data import. We do not migrate them as executable automation. We deliver a written inventory of every active Assignment Rule (trigger, condition, target agent or team) and every SLA trigger workflow with their current configuration, mapped to the equivalent Gorgias Rule or Macro trigger. The customer's admin rebuilds these in Gorgias Settings post-migration. SLA policy definitions themselves do migrate (see object_mapping).

Migration approach

Six steps for a successful Frappe Helpdesk to Gorgias data migration

  1. Discovery and data inventory

    We connect to the source Frappe Helpdesk PostgreSQL database (read-only) and extract a full record inventory across HD Ticket, HD Customer, Communication, SLA Policy, Team, Agent, KB Article, Canned Response, Tag, and Attachment tables. We probe for the GitHub #3003 site configuration conflict and assess private file accessibility. We deliver a written data inventory report showing record counts per object, custom field definitions, SLA policy count, and conversation thread volume. The customer reviews the inventory, confirms scope, and provisions Gorgias agents before migration begins.

  2. Custom field and template gap analysis

    We map every HD Ticket custom field definition (from the Frappe Custom Field DocType) to a Gorgias ticket attribute specification. We cross-reference each custom field against HD Ticket Template entries to identify which fields require agent-form visibility configuration in Gorgias. We deliver a custom field gap report and the Gorgias configuration guide for the customer's admin to use post-import. SLA policy definitions are mapped to Gorgias SLA Rules with priority and deadline mapping documented.

  3. Gorgias sandbox ingestion and reconciliation

    We run a test migration into the customer's Gorgias sandbox environment using a representative data sample (typically the 90-day rolling window of tickets). We reconcile record counts, verify thread ordering in Messages, confirm SLA timer field values, and validate tag attachment. The customer's support team lead spot-checks 25-50 tickets against the Frappe source and signs off the mapping before production migration. Any field mapping corrections and custom field configuration gaps are resolved at this stage.

  4. Agent and team provisioning validation

    We extract all distinct Frappe Agent records and match by email against the Gorgias destination agent list. Any Frappe Agent without a corresponding Gorgias agent profile is held in a reconciliation queue. The customer's Gorgias admin provisions missing agents and assigns them to appropriate Inboxes or Teams. Migration cannot proceed past ticket ingestion because Gorgias requires a valid agent owner on each ticket. We validate agent provisioning completeness before scheduling the production migration window.

  5. Production migration in dependency order

    We execute production migration in dependency sequence: Gorgias Agents and Teams (manual, validated in step 4), Customers (HD Customer as Gorgias Customer), Tickets (HD Ticket with SLA deadline fields and fr_ticket_id preserved for audit), Messages (Communication records attached to tickets by ticket ID with chronological ordering), Tags (attached to tickets by ID lookup), Attachments (re-downloaded from Frappe file URLs and uploaded to Gorgias), KB Articles (batch migrated to Gorgias Help Center by category), and Saved Replies (Canned Responses to Gorgias Saved Replies). We apply Gorgias leaky-bucket rate limiting throughout and emit a row-count reconciliation report after each phase.

  6. Cutover, delta sync, and Workflow rebuild handoff

    We freeze Frappe Helpdesk writes during cutover, run a final delta migration of any tickets or messages created during the migration window, then enable Gorgias as the system of record. We deliver the Assignment Rule and SLA trigger workflow inventory to the customer's admin with Gorgias Rule equivalents documented. We deliver the HD Ticket Template gap report with Gorgias field configuration guide. We provide a one-week hypercare window to resolve reconciliation issues reported by the support team. We do not rebuild Frappe Assignment Rules as Gorgias Rules as part of the migration scope; that work is a separate engagement or internal admin task.

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
Gorgias logo

Gorgias

Destination

Strengths

  • Shopify and BigCommerce integrations surface order, return, and shipment data natively inside every ticket.
  • Unlimited agent seats remove per-user licensing friction as support teams grow.
  • AI Agent reduces billable ticket volume through automated resolution of high-frequency queries.
  • SOC 2 Type II certified with GDPR-aligned data handling for enterprise procurement readiness.
  • Omnichannel inbox aggregates email, live chat, Facebook, Instagram, WhatsApp, SMS, and voice into a single threaded view.

Weaknesses

  • Ticket-volume pricing with overage fees creates unpredictable monthly costs during seasonal traffic spikes.
  • Custom reporting is shallow; raw event-level data export for BI tooling is not natively supported.
  • Knowledge Base, Macros, and Rules lack simple export tooling, making competitive migrations complex.
  • GDPR compliance limitations mean customer data cannot be hidden from agents by role, blocking use by teams with freelance staff.
  • Performance and glitch reports emerge in G2 reviews at higher ticket volumes.

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 Frappe Helpdesk and Gorgias.

  • 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

    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 Gorgias 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 Gorgias data migrations

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

Can't find your answer?

Walk through your Frappe Helpdesk to Gorgias 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 up to 15,000 tickets, 5,000 customers, and standard conversation thread depth without large file attachment volumes. Migrations exceeding 50,000 tickets, with complex SLA deadline preservation across multiple policy tiers, private file re-download requirements, or a large knowledge base (over 500 articles) extend to eight to twelve weeks because of Gorgias leaky-bucket rate limiting on ingestion, private file resolution, and KB article batch validation.

Adjacent paths

Related migrations to explore

Ready when you are

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