Helpdesk migration
Field-level mapping, validation, and rollback between Foqal and Zoho Desk. We move data and schema; workflows are rebuilt natively in Zoho Desk.
Foqal
Source
Zoho Desk
Destination
Compatibility
9 of 12
objects map 1:1 between Foqal and Zoho Desk.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from Foqal to Zoho Desk is a platform-model translation, not a simple record copy. Foqal runs ticketing inside Slack and Microsoft Teams as a messaging-native layer; Zoho Desk is a traditional multi-channel helpdesk with a department-centric hierarchy, department-scoped SLAs, and a REST API that expects helpdesk-standard ticket and thread schemas. We export ticket threads from Foqal's GraphQL endpoint in paginated batches, reconstruct the conversation chronology as Zoho Desk Ticket Threads, and resolve the Foqal Teams model against Zoho Desk Departments before any records land. Approval request URNs, SLA tier definitions, and HubSpot integration relationship pointers migrate as documented references for manual recreation. Workflows and automation rules do not migrate as code; we deliver a written inventory of every active Foqal automation for Zoho Desk Blueprint and macro reconstruction by the customer's admin.
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 Zoho Desk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Foqal
Ticket
Zoho Desk
Ticket
1:1Foqal Tickets map directly to Zoho Desk Tickets with status, priority, assignee, created time, and modified time preserved. We extract tickets from the Foqal GraphQL API using cursor-based pagination (typically 100 records per page) and insert them into Zoho Desk via the Tickets REST endpoint. The Foqal ticket channel (Slack DM, Teams channel, emoji shortcut, floating bar) is stored as a custom field foqal_channel__c to preserve origin context. Parent-child ticket splits from Foqal migrate as Zoho Desk Related Tickets.
Foqal
Conversation
Zoho Desk
Ticket Thread (Comment)
1:1Foqal Conversation messages map to Zoho Desk Ticket Comments. Each message carries author attribution, timestamp, message body, and direction (Agent or Customer). We reconstruct the thread chronology by ordering on Foqal's createdAt timestamp and inserting as Zoho Desk Comments with the IsPublic flag set to true for customer-visible messages and false for internal notes. Foqal's internal-agent comments map to Zoho Desk Internal Notes. Thread direction (Incoming vs Outgoing) from Foqal maps to Zoho Desk Comment Direction.
Foqal
Agent
Zoho Desk
Agent (User)
1:1Foqal Agents map to Zoho Desk Agents (agent-level user profiles). We resolve by email address: if a Zoho Desk user with the matching email already exists, we associate the migrated ticket's assignee to that user; if not, we create the agent profile via the Users API before ticket import. Agent role (Admin, Agent) and team membership are translated to Zoho Desk Role and Department assignment. Foqal Free-plan agents with archived tickets are flagged for reconciliation during scoping.
Foqal
Team
Zoho Desk
Department
lossyFoqal Teams map to Zoho Desk Departments, which are the primary organizational unit in Zoho Desk. Team membership and team-level SLA ownership translate to Department-scoped agents and Department-linked SLA policies. We create Zoho Desk Departments during the schema phase, map team names to department names, and configure the department-to-agent assignments after user provisioning but before ticket import so that ticket assignment rules resolve correctly.
Foqal
SLA Policy
Zoho Desk
Service Level Agreement
lossyFoqal SLA tier definitions (TTFR, wait times, Enterprise/Premium/Free tier differentiation) map to Zoho Desk SLA records. Each Foqal SLA maps to a Zoho Desk SLA with First Response Time and Resolution Time thresholds per priority level. We export the SLA policy definitions from Foqal settings during discovery, then create corresponding Zoho Desk SLAs linked to the target Department. Priority mapping (Urgent, High, Medium, Low) is preserved between platforms.
Foqal
Approval Request
Zoho Desk
Custom Record (manual rebuild required)
1:1Foqal ApprovalRequest objects use a URN identifier format (ApprovalRequestUrn) that is referenced by workflow approval chains. Zoho Desk does not have a native Approval Request object. We export the URN values and associate them with the related ticket as a custom field foqal_approval_urn__c for audit traceability, and we document the approval chain logic (approver, threshold, escalation) in the automation inventory so the customer's admin can recreate it as a Zoho Desk Blueprint approval step or a custom Zoho Creator application.
Foqal
HubSpot Integration (linked records)
Zoho Desk
Custom Field (lookup reference)
1:1Foqal's native HubSpot sync creates linked references to Companies, Deals, Contacts, and Notes inside the Foqal ticket context. We capture the HubSpot record IDs and URL references as custom fields on the migrated Zoho Desk ticket (foqal_hubspot_company_id__c, foqal_hubspot_contact_id__c, foqal_hubspot_deal_id__c) rather than migrating the third-party records themselves. If the customer continues using HubSpot post-migration, they configure the Zoho Desk HubSpot integration separately; if they migrate HubSpot to Zoho CRM, that is a separate engagement.
Foqal
Workflow
Zoho Desk
Blueprint / Workflow Rule (documented, manual rebuild)
lossyFoqal automation rules (routing triggers, SLA-based escalations, approval chains) are configuration-level settings not exposed as queryable API objects. We attempt to export automation definitions from the Foqal UI-level config where accessible and fall back to documenting the observed routing behavior from ticket pattern analysis. We deliver a written automation inventory with each rule's trigger condition, action, and recommended Zoho Desk equivalent (Blueprint stage, Workflow Rule, or Macro). The customer's admin rebuilds these in Zoho Desk post-migration.
Foqal
Attachment
Zoho Desk
Attachment
1:1File attachments on Foqal tickets (images, PDFs, screenshots) are referenced by URL in the Foqal GraphQL response. We download each attachment to local storage, then upload to Zoho Desk via the Attachments API linked to the corresponding ticket. The original filename, MIME type, and uploaded-by attribution are preserved. Attachments from Slack-uploaded files require an additional authentication step against the customer's Slack workspace token.
Foqal
Report / Metrics
Zoho Desk
Not migrated
1:1Foqal's productivity and CSAT reporting is computed dynamically from ticket data at query time and is not stored as an exportable data object. Zoho Desk's Reports module rebuilds reporting from the migrated ticket data. We do not migrate report snapshots or historical metric values; the customer's admin configures Zoho Desk reports post-migration using the imported ticket history as the data source.
Foqal
Tag
Zoho Desk
Tag
1:1Foqal ticket tags migrate as Zoho Desk Tags. Tags are preserved as string values and linked to tickets via the Tags API in Zoho Desk. Tag-based filtering in Foqal translates directly to Zoho Desk tag filtering in custom views.
Foqal
Contact (customer)
Zoho Desk
Contact
1:1Foqal tickets linked to end-customer contacts map to Zoho Desk Contacts. The contact name, email, phone, and company are extracted from the Foqal conversation author metadata and upserted into Zoho Desk Contacts. If a Contact with the same email already exists in Zoho Desk, we link the ticket to the existing record; if not, we create the Contact before ticket import so the lookup is satisfied.
| Foqal | Zoho Desk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Conversation | Ticket Thread (Comment)1:1 | Fully supported | |
| Agent | Agent (User)1:1 | Fully supported | |
| Team | Departmentlossy | Fully supported | |
| SLA Policy | Service Level Agreementlossy | Fully supported | |
| Approval Request | Custom Record (manual rebuild required)1:1 | Fully supported | |
| HubSpot Integration (linked records) | Custom Field (lookup reference)1:1 | Fully supported | |
| Workflow | Blueprint / Workflow Rule (documented, manual rebuild)lossy | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Report / Metrics | Not migrated1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Contact (customer) | Contact1: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
Zoho Desk gotchas
Agent email identity determines comment ownership after migration
Blueprints and SLA policies do not export via API
File upload capped at 10GB per migration batch
Tier-gated export and migration capabilities
Inbound migration is two-phase with a hard Phase 2 cutoff
Pair-specific challenges
Migration approach
Discovery and Foqal API access validation
We audit the source Foqal portal to inventory ticket volume, conversation thread depth (message count per ticket), active and archived agent count, team count, SLA policy definitions, and HubSpot integration connection status. We validate access to the Foqal GraphQL endpoint by testing the Bearer token from Settings > Users and confirming the Origin header resolves correctly. We document every active automation rule observable in the UI and every SLA policy tier configuration. We also confirm whether any tickets reference Foqal Free-plan agents or archived users.
Zoho Desk department and SLA schema design
We create the target Zoho Desk Department structure to match the Foqal Teams hierarchy, with each Department linked to the corresponding SLA policy. We configure Zoho Desk Roles (Agent, Supervisor, Admin) to match the Foqal role model, create the priority mapping (Foqal Urgent/High/Medium/Low to Zoho Desk Critical/High/Medium/Low), and pre-create any custom fields required to carry forward context (foqal_channel__c, foqal_approval_urn__c, foqal_thread_direction_note__c, foqal_originating_plan__c, HubSpot lookup fields). Department setup is validated in Zoho Desk before any data is extracted from Foqal.
Agent provisioning and contact pre-load
We extract every distinct agent email from Foqal Tickets and Agents objects and provision corresponding agent profiles in Zoho Desk via the Users API, using the email as the dedupe key. We simultaneously extract all unique customer contact emails and names from Foqal conversation authors and upsert them into Zoho Desk Contacts before ticket import begins. This two-track pre-load ensures that every ticket assignee lookup and contact lookup in Zoho Desk resolves on the first pass without orphaned references.
Ticket and conversation thread export in paginated batches
We export Foqal tickets in cursor-based GraphQL pages (typically 100 records per page) with the Origin header injected per request. Each ticket record is enriched with its associated conversation messages, ordered by createdAt timestamp. We download any referenced attachments to local storage with filename and MIME type preserved. The exported batch is transformed into Zoho Desk ticket + comment payloads, with agent vs customer author type used to infer thread direction and assign IsPublic flags. We pause at each 429 or timeout response and retry with backoff before continuing.
Zoho Desk import with credit monitoring
We insert tickets into Zoho Desk via the Tickets REST API, then attach comments as Ticket Threads. We monitor Zoho Desk API credit consumption throughout and pause if the credit pool falls below a threshold that would interrupt an in-flight batch. We then insert attachments via the Attachments API linked to the correct ticket ID. Each completed batch emits a row-count reconciliation report (Foqal tickets out, Zoho Desk tickets in, Foqal messages out, Zoho Desk comments in) that we compare before advancing to the next batch.
Cutover, validation, and automation inventory delivery
We freeze Foqal write access during the cutover window, run a delta export for any tickets created or modified since the last batch, and apply the final delta to Zoho Desk. We perform a random-sample reconciliation of 30-50 tickets against the Foqal source (status, priority, assignee, thread completeness, attachment count). We deliver the automation inventory document listing every Foqal workflow, approval chain, and routing rule with a recommended Zoho Desk Blueprint or Workflow Rule equivalent for the customer's admin to rebuild. We do not rebuild Foqal workflows as Zoho Desk automations inside the migration scope; that is a separate engagement.
Platform deep dives
Foqal
Source
Strengths
Weaknesses
Zoho Desk
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 4 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 Zoho Desk.
Object compatibility
4 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 Zoho Desk migration scoping. Not seeing yours? Book a call.
Walk through your Foqal to Zoho Desk 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 Zoho Desk
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.