Helpdesk migration
Field-level mapping, validation, and rollback between Foqal and Freshdesk. We move data and schema; workflows are rebuilt natively in Freshdesk.
Foqal
Source
Freshdesk
Destination
Compatibility
6 of 9
objects map 1:1 between Foqal and Freshdesk.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from Foqal to Freshdesk is a structural translation from a messaging-layer ticketing model to a traditional portal-based helpdesk. Foqal turns Slack and Teams channels into support queues; Freshdesk organizes support around structured Tickets with a standard agent portal, SLA tiers, and multi-channel routing. We resolve the channel-to-ticket origin mapping, preserving the full conversation thread chronology against Freshdesk Ticket Conversations, and we document automation rules and approval chains for manual rebuild. We do not migrate Foqal Workflows or approval request objects as executable records. Reports and computed metrics have no export path in Foqal and are not migrated; the destination Freshdesk workspace rebuilds reporting from migrated ticket data. The Origin header authentication requirement on Foqal's API demands per-request header injection during extraction, which we handle programmatically before any record batch moves.
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 Freshdesk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Foqal
Ticket
Freshdesk
Ticket
1:1Foqal Tickets map 1:1 to Freshdesk Tickets with status, priority, assignee, created_at, updated_at, and source channel preserved. We extract tickets in paginated batches from the Foqal GraphQL API and insert via Freshdesk's Ticket API. The Foqal channel origin (Slack or Teams message reference) is stored in a custom Freshdesk conversation note so agents can trace the original message thread when reopening migrated tickets.
Foqal
Conversation
Freshdesk
Conversation (Ticket Replies)
1:1Foqal conversation threads attached to each ticket migrate as Freshdesk Conversation records ordered by timestamp. Each message preserves the author attribution (agent vs requester), body content, and attachment URLs. We handle Foqal's nested reply structure by flattening it into a chronological Freshdesk conversation list with message ordering preserved via created_at timestamps. Inline images and file attachments migrate as Freshdesk attachment records linked to the conversation.
Foqal
Agent
Freshdesk
Agent (User)
1:1Foqal Agent records (name, email, role, team assignment) map to Freshdesk Agent profiles. We resolve agents by email match against Freshdesk User records, creating agents in Freshdesk if no matching User exists. Agent role mapping (Admin, Agent, Team Lead) translates to Freshdesk's agent permission levels. Active vs archived status in Foqal determines whether the Freshdesk agent is provisioned as active or invited-inactive.
Foqal
Team
Freshdesk
Group
1:1Foqal Teams map to Freshdesk Groups. Team membership (which agents belong to which teams) translates to Group membership in Freshdesk. Team-level SLA assignments in Foqal become SLA Policy assignments in Freshdesk, documented during migration so the customer admin can map them in Freshdesk's SLA configuration UI post-import. Team routing rules are documented for manual recreation in Freshdesk's Scenario Automations.
Foqal
SLA Policy
Freshdesk
SLA Policy
lossyFoqal SLA configurations (TTFR, wait times, tier definitions for Enterprise, Premium, Free) are exported as structured settings and mapped to Freshdesk SLA Policies. Freshdesk SLA Policies are configured via the admin UI; we export the Foqal definitions and deliver a written SLA mapping document specifying which Freshdesk SLA Policy corresponds to each Foqal SLA tier, the applicable business hours, and any holiday calendar differences. Customer-side admin applies the Freshdesk SLA Policy settings post-migration.
Foqal
Workflow
Freshdesk
Scenario Automation (documentation only)
lossyFoqal automation rules (routing, approval chains, SLA triggers) are stored as configuration settings, not as queryable data objects. The API returns ApprovalRequest URNs but not the full rule definitions. We flag this during discovery, export workflow logic from the UI-level config where accessible, and deliver a written automation inventory with each rule's trigger, conditions, actions, and recommended Freshdesk Scenario Automation equivalent. The customer rebuilds automations in Freshdesk's Scenario Automations editor (Growth+). Workflows do not migrate as executable code.
Foqal
Approval Request
Freshdesk
Freshservice Approval Workflow (documentation only)
lossyFoqal ApprovalRequest objects use a URN identifier format (ApprovalRequestUrn) referenced by workflow approvals. These URNs have no Freshdesk equivalent; Freshdesk lacks native approval workflows and requires Freshservice or a custom build. We export approval request URNs, the requester and approver relationships, and the approval status timeline, then deliver a written handoff specifying which Freshdesk/Freshservice approval model the customer should implement post-migration.
Foqal
Integration (HubSpot sync)
Freshdesk
Freshdesk CRM sync or Freshdesk Custom App (relationship pointers)
1:1Foqal's native HubSpot sync maintains relationship pointers between Foqal tickets and HubSpot Companies, Deals, and Contacts. We export the linked HubSpot record IDs and store them as a custom Freshdesk field (e.g., hs_company_id__c) so the customer can re-establish the HubSpot relationship in Freshdesk via Freshdesk's native HubSpot integration or a custom CRM connector. The sync configuration itself does not migrate; it must be re-connected in the destination.
Foqal
Integration (Jira sync, ServiceNow sync)
Freshdesk
Freshdesk Integrations (relationship pointers)
1:1Foqal's Jira and ServiceNow sync connections maintain ticket-to-issue pointers. We export the external system record IDs and store them in custom Freshdesk fields so the customer can re-establish integration connections in Freshdesk's Integrations directory post-migration. The connection credentials and sync rules do not migrate.
| Foqal | Freshdesk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Conversation | Conversation (Ticket Replies)1:1 | Fully supported | |
| Agent | Agent (User)1:1 | Fully supported | |
| Team | Group1:1 | Fully supported | |
| SLA Policy | SLA Policylossy | Fully supported | |
| Workflow | Scenario Automation (documentation only)lossy | Fully supported | |
| Approval Request | Freshservice Approval Workflow (documentation only)lossy | Fully supported | |
| Integration (HubSpot sync) | Freshdesk CRM sync or Freshdesk Custom App (relationship pointers)1:1 | Fully supported | |
| Integration (Jira sync, ServiceNow sync) | Freshdesk Integrations (relationship pointers)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.
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
Freshdesk gotchas
API access is blocked on the free plan
Per-minute rate limits are account-wide and endpoint-specific
Multi-channel source types do not map 1:1 to all destinations
Custom objects created in-product cannot be accessed by other apps
Contact import requires at least 10 existing tickets in the account
Pair-specific challenges
Migration approach
Discovery and credentialing
We audit the source Foqal workspace: ticket volume, conversation thread length, active agent count, team structure, SLA tier configuration, active workflow rules, approval request objects, and any HubSpot/Jira/ServiceNow integration relationship pointers. We confirm the Foqal subdomain and retrieve the Bearer token from Settings > Users. We verify the destination Freshdesk plan tier (minimum Blossom/Growth required for API access) and confirm API activation. The discovery output is a written migration scope document specifying record counts per object, mapping decisions, and any pre-migration actions (e.g., Freshdesk plan upgrade).
Schema pre-creation in Freshdesk
We create custom fields in Freshdesk to receive Foqal origin metadata: hs_company_id__c for HubSpot company pointers, foqal_channel_source__c for Slack/Teams message references, and hs_original_lifecycle__c if HubSpot lifecycle data is present. We configure Freshdesk Groups to match Foqal Teams and document the SLA Policy mapping for the customer admin to apply in Freshdesk's SLA configuration UI before ticket migration begins.
Sandbox migration and reconciliation
We run a full migration into a Freshdesk test workspace using production-like data volume. The customer reconciles record counts (Tickets in, Conversations in, Agents in), spot-checks conversation thread ordering, verifies SLA field mapping, and reviews agent assignment. Any mapping corrections happen in the sandbox before production migration. We specifically verify that the Origin header and token authentication work reliably under pagination before committing to production.
Production migration in dependency order
We run production migration in record-dependency order: Agents (Agents first so they are available as assignees), Teams (as Freshdesk Groups), SLA Policy definitions (documented for manual Freshdesk configuration), Tickets (with conversation threads in timestamp order), Integration relationship pointers (stored as custom fields), and Automation inventory (delivered as written handoff). Each phase emits a row-count reconciliation report before the next phase begins. We use paginated GraphQL extraction from Foqal with Origin header injection and batch inserts via Freshdesk's Ticket and Conversation API.
Cutover, validation, and workflow handoff
We freeze Foqal writes during cutover, run a final delta migration of any tickets modified during the migration window, then enable Freshdesk as the system of record. We deliver the Automation and Approval Request inventory document to the customer admin with recommended Freshdesk Scenario Automation equivalents. We support a one-week hypercare window where we resolve any ticket mapping or conversation ordering issues raised by the support team. We do not rebuild Foqal automations as Freshdesk Scenario Automations inside the migration scope.
Platform deep dives
Foqal
Source
Strengths
Weaknesses
Freshdesk
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. All 7 core objects map 1:1 between Foqal and Freshdesk.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Foqal and Freshdesk.
Object compatibility
All 7 core objects map 1:1 between Foqal and Freshdesk.
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 Freshdesk migration scoping. Not seeing yours? Book a call.
Walk through your Foqal to Freshdesk 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 Freshdesk
Same-Helpdesk migrations
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.