Helpdesk migration
Field-level mapping, validation, and rollback between Foqal and Gorgias. We move data and schema; workflows are rebuilt natively in Gorgias.
Foqal
Source
Gorgias
Destination
Compatibility
8 of 12
objects map 1:1 between Foqal and Gorgias.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Moving from Foqal to Gorgias is a structural migration that crosses two fundamentally different helpdesk models. Foqal treats Slack and Teams channels as the ticketing surface, with tickets, conversations, approval requests, and SLA policies existing as conversational threads embedded in messaging clients. Gorgias uses a traditional ticket-centric model with a Customer object, a separate Ticket object, a native macro system, and a per-ticket pricing tier. We sequence bulk exports from Foqal's GraphQL API using paginated batches and dynamic Origin header injection, reconstruct conversation threads against the ticket metadata, and resolve agent identities to Gorgias users before import. Approval workflows, SLA configurations, and routing rules do not migrate as code; we deliver a written inventory of every active rule for the customer's admin to rebuild as Gorgias macros and rules. The migration runs with zero downtime, with both platforms operational during the transfer window.
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 Foqal 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.
Foqal
Ticket
Gorgias
Ticket
1:1Foqal Tickets map directly to Gorgias Ticket objects. The Foqal ticket ID becomes the Gorgias external_id field for cross-reference. Foqal status (open, pending, resolved, archived) maps to Gorgias Ticket status with the same semantic meaning. Priority, assignee reference, and timestamps (created_datetime, updated_datetime) migrate 1:1. We batch ticket creation in Gorgias using the REST API with parent Customer resolution before ticket import so that no ticket is orphaned on import.
Foqal
Conversation
Gorgias
Message
1:manyFoqal conversation threads (each containing multiple messages attributed to agents and customers) map to Gorgias Ticket Message records. We reconstruct the thread chronology using Foqal's message timestamp ordering, inject each message in sequence into the corresponding Gorgias Ticket, and set the sender reference to the migrated agent or customer. Attachment references from Foqal migrate as attachment URLs; actual file binaries are exported from Foqal and re-uploaded to Gorgias where the file size limits allow.
Foqal
Agent
Gorgias
User
1:1Foqal agent records (name, email, role, team assignment) map to Gorgias user accounts. We match agents by email address during migration. If a Foqal agent email does not have a matching Gorgias user, we hold the mapping in a reconciliation queue and the customer provisions the Gorgias user before the migration phase begins. Agent role (admin, agent) maps to Gorgias permission_group; team assignment maps to Gorgias team membership.
Foqal
Team
Gorgias
Team
1:1Foqal Teams (agent groupings that own specific SLA policies and routing rules) map to Gorgias Teams. We create the destination Teams in Gorgias during schema setup before agent reassignment. Team-level SLA ownership from Foqal is captured in the SLA inventory document rather than migrated as live policies.
Foqal
SLA Policy
Gorgias
SLA Policy
lossyFoqal SLA configurations (TTFR targets, wait times, tier definitions for Enterprise/Premium/Free) are stored as settings that we export during discovery. These do not migrate as live Gorgias SLA policies because Gorgias SLA policies are defined differently (calendar-based, attached to Ticket priority or channel). We deliver a written inventory mapping each Foqal SLA tier to a recommended Gorgias SLA policy configuration, including first reply time, next response time, and resolution time targets per tier.
Foqal
Workflow / Routing Rule
Gorgias
Rule
lossyFoqal automation rules (routing logic, conditional assignment, SLA triggers) are config-level settings, not API-queryable data objects. The GraphQL API returns ApprovalRequest URNs but not full rule definitions. We export available rule definitions from the Foqal dashboard during discovery and document them as a written inventory. The customer's admin rebuilds equivalent automations in Gorgias using Rules and Macros after migration.
Foqal
Approval Request
Gorgias
Ticket (reconstructed)
1:1Foqal ApprovalRequest objects use a URN identifier format (ApprovalRequestUrn) and are referenced by workflow approvals. These are not standard ticket records in Gorgias. We flag all ApprovalRequest URNs during extraction and map them to Gorgias Ticket records with a custom field foqal_approval_urn__c for audit trail. The approval chain itself is documented separately for manual rebuild.
Foqal
Tag
Gorgias
Tag
1:1Foqal ticket tags migrate to Gorgias Ticket Tags. Tags are preserved as string labels on the Gorgias Ticket tag field during import. Custom field tags from Foqal's field-level tagging system map to Gorgias custom fields if the destination schema has equivalent custom field definitions pre-created.
Foqal
Customer (Slack/Teams user)
Gorgias
Customer
1:1Foqal customers are referenced as Slack or Teams users within conversation threads rather than as standalone customer records. We extract unique customer identifiers from conversation sender fields and create corresponding Gorgias Customer records with email (if available from message metadata), name, and language. Phone and timezone data is preserved where present in the Foqal message payload.
Foqal
Integration (HubSpot sync)
Gorgias
Customer (cross-reference)
1:1Foqal's HubSpot integration syncs Companies, Deals, Contacts, and Notes. We capture which Foqal tickets have HubSpot-linked records and preserve the external HubSpot ID in a custom field hs_external_id__c on the corresponding Gorgias Ticket. This allows the customer's Gorgias admin to reconnect HubSpot sync post-migration if needed.
Foqal
Report / Metrics
Gorgias
Report (not migrated)
1:1Foqal productivity and CSAT reporting is computed from ticket data at query time and is not exportable as standalone report objects. We do not migrate report snapshots. The customer rebuilds key reports in Gorgias using its analytics engine, with the migrated ticket history available for historical comparison from day one.
Foqal
Macro (Foqal canned responses)
Gorgias
Macro
lossyFoqal does not have an explicit macro object in its API schema. Canned responses and templated replies are embedded in conversation context rather than stored as reusable macro records. We flag any identifiable macro patterns during discovery (repeated message structures, standardized reply templates) and document them as Gorgias Macro recommendations. The customer's admin rebuilds these as Gorgias Macros post-migration.
| Foqal | Gorgias | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Conversation | Message1:many | Fully supported | |
| Agent | User1:1 | Fully supported | |
| Team | Team1:1 | Fully supported | |
| SLA Policy | SLA Policylossy | Fully supported | |
| Workflow / Routing Rule | Rulelossy | Fully supported | |
| Approval Request | Ticket (reconstructed)1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Customer (Slack/Teams user) | Customer1:1 | Fully supported | |
| Integration (HubSpot sync) | Customer (cross-reference)1:1 | Fully supported | |
| Report / Metrics | Report (not migrated)1:1 | Fully supported | |
| Macro (Foqal canned responses) | Macrolossy | 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.
Foqal gotchas
Import from Zendesk and HappyFox requires manual arrangement
Workflow automation rules are not first-class API objects
Free plan severely limits agent seats and features
Origin header requirement blocks cross-origin API access
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
Discovery and Foqal API access verification
We audit the source Foqal account for ticket volume, conversation thread depth, active agents, team structure, SLA policy definitions, integration connections (HubSpot sync), and any identifiable workflow or routing rules. We verify API access by confirming the customer's subdomain, generating or reviewing the Bearer token from Settings > Users, and running a test GraphQL query against the ticket endpoint. We document the discovered SLA tiers, team assignments, and agent roles in a pre-migration schema report.
Gorgias destination schema setup
We create the destination structure in Gorgias before any data import. This includes provisioning Teams (mirroring Foqal team structure), configuring permission groups for migrated agents, creating any custom fields needed for Foqal metadata (external_id, foqal_approval_urn__c, hs_external_id__c), and mapping Foqal SLA tier names to Gorgias SLA policy definitions. We also configure the help center and knowledge base structure if the customer intends to use Gorgias's self-service portal.
Bulk extraction from Foqal with Origin header injection
We run paginated bulk extraction from Foqal's GraphQL API with dynamic Origin header injection per subdomain. Tickets are extracted in batches of 100-200 records per page, with page tokens tracked for restart continuity. For each ticket, we pull the full metadata (status, priority, assignee, team, timestamps) and then paginate separately through conversation messages to reconstruct the thread. We implement exponential backoff and retry logic because Foqal's rate limits are not publicly documented and may vary by account tier.
Agent and customer reconciliation before import
We extract all distinct agent emails from Foqal tickets and match them against the destination Gorgias user table. Agents without pre-existing Gorgias accounts are held in a reconciliation queue for the customer's admin to provision. We create the corresponding Gorgias Customer records for unique conversation participants, resolving email and name where available from message metadata. SLA policy mappings are locked at this stage so that ticket imports can reference the correct SLA targets.
Production migration in dependency order
We run production migration in record-dependency order: Gorgias Teams and Users (validated), Customer records (from Foqal conversation senders), Ticket records (with external_id set to Foqal ticket ID), Message records (threaded by timestamp into the correct Ticket), Tags (applied post-ticket), and SLA assignments (attached to tickets by tier). Each phase emits a row-count reconciliation report. We use Gorgias REST API with batch inserts where supported and rate-limit-aware sequencing (40-80 requests per 20 seconds as documented) to avoid API throttling.
Cutover, validation, and automation rebuild handoff
We freeze Foqal writes during cutover, run a final delta migration of any records created or modified during the migration window, then redirect the team's workflow to Gorgias. We deliver the SLA policy inventory, workflow rule documentation, and approval chain handoff document to the customer's admin team. We support a one-week hypercare window for reconciliation issues. We do not rebuild Foqal workflow rules as Gorgias Rules inside the migration scope; that is a separate rebuild engagement.
Post-migration HubSpot reconnection planning
For customers who used Foqal's HubSpot integration, we document the Foqal sync state at migration time (which tickets, Companies, Deals, and Contacts were linked) and provide a reconnection plan for the Gorgias HubSpot integration. This includes mapping the preserved hs_external_id__c values back to HubSpot records, configuring the sync direction, and establishing which system is the system of record going forward.
Platform deep dives
Foqal
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 Foqal 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
Foqal: Not publicly documented.
Data volume sensitivity
Foqal 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 Foqal to Gorgias migration scoping. Not seeing yours? Book a call.
Walk through your Foqal 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 Foqal
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.