Helpdesk migration
Field-level mapping, validation, and rollback between Rooftop and Gorgias. We move data and schema; workflows are rebuilt natively in Gorgias.
Rooftop
Source
Gorgias
Destination
Compatibility
10 of 12
objects map 1:1 between Rooftop and Gorgias.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Moving from Rooftop to Gorgias is a migration from a small-team helpdesk with no public API to a Shopify-native support platform built for e-commerce scale. Rooftop's per-seat pricing ($49-$199 per user per month) shifts to Gorgias's per-ticket billing model ($10-$900 per month based on ticket volume), which can reduce costs for low-volume teams but scales unpredictably for high-volume operations. The core technical challenge is that Rooftop has no documented public API, so all data extraction relies on CSV exports from the Rooftop UI. We batch those exports, normalize conversation threads into Gorgias ticket messages, resolve agent email matches against Gorgias User provisioning, and map Rooftop custom fields to Gorgias custom field definitions. Tags and knowledge base articles migrate as label arrays and article records respectively. We do not migrate Rooftop workflows or automations as code; we deliver a written inventory of any automation rules requiring rebuild in Gorgias Flows.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Rooftop 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.
Rooftop
Customer
Gorgias
Customer
1:1Rooftop customer records (name, email, phone, language, timezone, notes, customer type) map to Gorgias Customer objects. The Gorgias Customer API accepts these fields directly. We resolve Rooftop customer IDs to Gorgias external_id references for thread association. Any custom properties found in Rooftop CSV exports map to Gorgias custom fields (string, boolean, date, number types per the Gorgias custom field API schema).
Rooftop
Company
Gorgias
Customer (organization field)
1:1Rooftop company or account records map to the organization field on Gorgias Customer. The company name and domain migrate as the organization name string. If the destination Gorgias account uses multi-brand or multi-store configuration, company records map to the appropriate customer organization scope.
Rooftop
Conversation
Gorgias
Ticket (message thread)
1:1Rooftop conversation threads attached to tickets map to Gorgias ticket messages. Each message in the thread becomes a separate message entry in Gorgias with sender attribution (customer vs agent), timestamp preserved, and channel type (email, chat, social). Internal notes in Rooftop migrate to Gorgias internal note messages with visibility restricted to agents. We normalize HTML-formatted messages to plain text for display consistency.
Rooftop
Ticket
Gorgias
Ticket
1:1Rooftop ticket records map to Gorgias Ticket objects. The Rooftop ticket ID is preserved as external_id in Gorgias. Subject, status (open, pending, resolved, closed), priority, and assignment migrate directly. Team assignments in Rooftop map to Gorgias Team objects if the destination account has team structures configured.
Rooftop
Agent
Gorgias
User
1:1Rooftop agent profiles (name, email, role, team assignment) map to Gorgias User records. We match agents by email address during migration. If a Rooftop agent email has no corresponding Gorgias user, we flag the record for customer-admin provisioning before ticket import so that ticket assignments are satisfied at insert time.
Rooftop
Custom Ticket Fields
Gorgias
Custom Fields
lossyRooftop custom field names and data types are inventoried during scoping. We create matching custom field definitions in Gorgias via the custom fields API before migration using the corresponding type (string, boolean, date, number). Values transform from Rooftop format to Gorgias accepted values. Any picklist-style custom fields in Rooftop map to Gorgias select or multiselect custom fields with equivalent option lists.
Rooftop
Tag
Gorgias
Tag
1:1Rooftop tags applied to tickets migrate as tag arrays in Gorgias. We preserve the full tag label without transformation. If Rooftop uses tag hierarchies or namespaced tag prefixes, these flatten to flat tag labels in Gorgias per the target platform's tagging model.
Rooftop
Attachment
Gorgias
Attachment (URL reference)
1:1File attachments associated with Rooftop tickets or conversations are migrated by URL reference where Rooftop provides accessible attachment URLs. We preserve the original attachment filename and MIME type. If Rooftop attachments are stored behind authentication or are inaccessible after the source account is deprovisioned, we flag them as requiring manual re-upload in Gorgias and document the file list for the customer admin.
Rooftop
Knowledge Base Articles
Gorgias
Help Center Article
1:1KB articles exported from Rooftop migrate to Gorgias Help Center articles. Article body content transfers as HTML or markdown depending on Rooftop export format, with formatting preserved. Category and folder structure from Rooftop maps to Gorgias Help Center categories. Internal article ID references are remapped to destination article IDs during ingestion.
Rooftop
Ticket Status
Gorgias
Ticket Status
lossyRooftop ticket status values (open, pending, resolved, closed, or any custom statuses) are mapped to Gorgias ticket status values during migration setup. We configure the status mapping before ticket import so that status values are valid in the destination schema at insert time.
Rooftop
Integration References
Gorgias
External ID
1:1Rooftop ticket or customer external IDs referencing third-party integrations (if present in Rooftop export) are preserved in Gorgias as external_id fields on the corresponding ticket and customer records. This preserves cross-system reference data for teams that will reconnect integrations post-migration.
Rooftop
Customer Language and Timezone
Gorgias
Customer (language, timezone fields)
1:1Rooftop customer language and timezone values migrate to the corresponding fields on Gorgias Customer records. These values are used by Gorgias for ticket routing rules and SLA calculation if the destination account uses time-based routing.
| Rooftop | Gorgias | Compatibility | |
|---|---|---|---|
| Customer | Customer1:1 | Fully supported | |
| Company | Customer (organization field)1:1 | Fully supported | |
| Conversation | Ticket (message thread)1:1 | Fully supported | |
| Ticket | Ticket1:1 | Fully supported | |
| Agent | User1:1 | Fully supported | |
| Custom Ticket Fields | Custom Fieldslossy | Mapping required | |
| Tag | Tag1:1 | Fully supported | |
| Attachment | Attachment (URL reference)1:1 | Fully supported | |
| Knowledge Base Articles | Help Center Article1:1 | Mapping required | |
| Ticket Status | Ticket Statuslossy | Fully supported | |
| Integration References | External ID1:1 | Fully supported | |
| Customer Language and Timezone | Customer (language, timezone fields)1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Rooftop gotchas
No documented public API for data export
Slow search and loading performance impacts data review
Small verified review base limits migration confidence
Gorgias gotchas
AI Agent adds outcome-based fees on top of billable ticket costs
Overage billing for tickets scales nonlinearly
API rate limits restrict bulk export throughput
Agent data visibility cannot be restricted by role for GDPR use cases
Knowledge Base translations require separate API calls per locale
Pair-specific challenges
Migration approach
Export scoping and CSV extraction planning
We audit the Rooftop account to identify all customer records, company records, ticket queues, conversation threads, agent profiles, custom field definitions, tag taxonomies, and knowledge base articles. Because Rooftop has no API, we plan the CSV extraction sequence: customers and companies first, then tickets with conversation threads, then agents, then KB. We estimate row counts and thread depth per export run, accounting for Rooftop's UI pagination limits and the slow loading documented in G2 reviews. We request exports in full during off-peak hours to avoid UI timeout issues.
Gorgias account preparation and custom field creation
We configure the Gorgias destination account before any data ingestion. This includes creating custom field definitions (matching the types inventoried in Rooftop: string, boolean, date, number) via the Gorgias custom fields API, configuring team structures if agents were assigned to teams in Rooftop, and setting ticket status values that match the migrated Rooftop statuses. We also provision the agent users (or receive the provisioning list from the customer's admin) so that OwnerId references are satisfied at ticket import time.
Data extraction and normalization from Rooftop CSV
We extract all data from Rooftop in CSV format. Customers and companies normalize into the Gorgias customer API payload format, including the organization field for company data. Conversation threads parse into individual message records with sender type, timestamp, and channel. Tags flatten from hierarchical Rooftop taxonomy to flat Gorgias tag arrays. Knowledge base articles extract with body HTML preserved for Gorgias help center ingestion. We flag any Rooftop attachment URLs that may be inaccessible post-migration for manual handling.
Sandbox migration and reconciliation
We run a test migration into a staging or trial Gorgias account using a representative sample (typically 100-200 records across each object type). The customer's admin reviews ticket thread rendering, customer profile display, agent assignment, tag application, and KB article formatting. We correct any field mapping errors, custom field type mismatches, or status value gaps identified during reconciliation before the production migration begins.
Production migration with dependency ordering
We run production migration in dependency order: Gorgias Users (if provisioned by admin), Customers (with company data embedded as organization), Tickets (with external_id preserving the Rooftop ticket reference), conversation messages (linked to tickets by external_id), agents (matched by email), tags (applied to tickets), custom fields (filled on customers and tickets), and KB articles (with category assignments). Each phase emits a row-count reconciliation report. Any Rooftop attachment URLs are preserved in ticket notes for manual re-upload if the files are inaccessible.
Cutover, delta capture, and automation rebuild handoff
We freeze writes to Rooftop during the cutover window, run a final delta migration of any records modified during the migration run, then enable Gorgias as the system of record. We deliver the KB internal link audit report, the automation rule inventory (for Gorgias Flow rebuild by the customer admin), and the agent provisioning sign-off checklist. We support a three-day hypercare window for reconciliation issues raised by the customer's support team. Workflows and automations are documented separately and not rebuilt within migration scope.
Platform deep dives
Rooftop
Source
Strengths
Weaknesses
Gorgias
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 3 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Rooftop and Gorgias.
Object compatibility
3 of 7 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Rooftop: Not publicly documented.
Data volume sensitivity
Rooftop doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Rooftop to Gorgias migration scoping. Not seeing yours? Book a call.
Walk through your Rooftop to Gorgias migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Rooftop
Other ways to arrive at Gorgias
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.