Helpdesk migration
Field-level mapping, validation, and rollback between Foqal and HubSpot Service Hub. We move data and schema; workflows are rebuilt natively in HubSpot Service Hub.
Foqal
Source
HubSpot Service Hub
Destination
Compatibility
7 of 12
objects map 1:1 between Foqal and HubSpot Service Hub.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Foqal to HubSpot Service Hub is a structural migration that requires translating a Slack-and-Teams-native conversational ticketing model into HubSpot's traditional help desk schema. Foqal tickets live inside messaging channels and carry channel-origin metadata that has no direct HubSpot equivalent; we flatten that context into ticket properties and conversation records at migration time. The HubSpot-native integration that Foqal maintains (syncing Users to Contacts, Companies to Companies, Notes to Engagements, Deals to Deals, and Users to Owners) means that customers already using Foqal as a HubSpot layer may have dual-context records to reconcile during migration. We do not migrate Workflow automation rules, ApprovalRequest URN chains, or SLA policy definitions as executable code; we export those configurations and deliver a written inventory for the customer's admin to rebuild in HubSpot Service Hub's automation builder. Foqal's Origin header requirement for every API call and the absence of publicly documented rate limits add sequencing complexity that we handle through dynamic header injection and adaptive batch sizing during the export phase.
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.
Source platform
Foqal platform overview
Scorecard, SWOT, gotchas, and pricing for Foqal.
Destination platform
HubSpot Service Hub platform overview
Scorecard, SWOT, gotchas, and pricing for HubSpot Service Hub.
Data migration guide
The complete HubSpot Service Hub migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
HubSpot Service Hub migration checklist
Pre- and post-cutover tasks for moving onto HubSpot Service Hub.
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 HubSpot Service Hub, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Foqal
Ticket
HubSpot Service Hub
Ticket
1:1Foqal Tickets map 1:1 to HubSpot Service Hub Tickets. Each ticket's status, priority, assignee, created timestamp, updated timestamp, and source channel metadata migrate as Ticket properties. Channel origin (Slack or Teams) is preserved as a custom property on the HubSpot ticket. The ticket's Foqal URN is stored as a custom property for cross-reference audit. Ticket pipelines in Foqal map to HubSpot Ticket pipelines configured at migration time.
Foqal
Conversation
HubSpot Service Hub
Conversation (Ticket conversations)
1:1Foqal Conversation threads attached to each Ticket migrate as HubSpot Ticket conversations. Each message preserves its timestamp, the sender identity (agent or customer), and the message body. Attachment references migrate as URLs pointing to the original attachment storage; actual file binaries are downloaded from Foqal and uploaded to HubSpot as Ticket attachments. Thread chronology is preserved by ordering on the original message timestamp.
Foqal
Agent
HubSpot Service Hub
User (Owner)
1:1Foqal Agent records (name, email, role, team assignment) map to HubSpot Users. We resolve agents by email match against the destination HubSpot portal's user table. Agents without a matching HubSpot User are held in a reconciliation queue for the customer's admin to provision before ticket import. The agent's Foqal role (Admin, Agent) maps to the HubSpot User role setting, and team membership maps to the HubSpot Team structure under Settings > Users & Teams.
Foqal
Team
HubSpot Service Hub
Team
1:1Foqal Teams group agents and own specific SLA policies and routing rules. Team membership migrates to HubSpot Teams under Settings > Users & Teams. The team-to-SLA assignment that was implicit in Foqal (a Team owned a specific SLA tier) becomes explicit in HubSpot as a Pipeline-to-Team-to-SLA mapping that the customer's admin configures in Service Hub settings after migration.
Foqal
SLA Policy
HubSpot Service Hub
SLA Policy
lossyFoqal SLA configurations (First Time to First Response targets, wait times, Enterprise/Premium/Free tier definitions per Team) are exported as structured records and mapped to HubSpot Service Hub SLA policies on the Professional+ tier. HubSpot SLA policies are scoped to Ticket pipelines rather than Teams. We document the Foqal SLA tier definitions and provide the customer with a mapping table showing which Foqal SLA applies to each HubSpot Ticket pipeline, including business hours configuration.
Foqal
Workflow (Automation Rules)
HubSpot Service Hub
Workflow (documentation only)
1:1Foqal automation rules (routing triggers, approval chains, SLA escalation actions) are config-level objects not exposed as queryable API records. We export what is accessible via the GraphQL API (ApprovalRequest URNs and workflow names) and document the full rule logic from the Foqal UI-level configuration where available. HubSpot Service Hub workflows (Professional+) are rebuilt by the customer's admin using the written inventory we deliver. We do not migrate automation rules as executable code.
Foqal
ApprovalRequest
HubSpot Service Hub
Approval Process (documentation only)
1:1Foqal ApprovalRequest objects use a URN identifier format (ApprovalRequestUrn) that references workflow approval chains. These URNs have no equivalent in HubSpot's approval model. We preserve the URN values as custom properties on the related Ticket for audit traceability, and document the approval chain structure (approver, threshold, escalation path) for manual recreation in HubSpot's approval process builder or via a custom Flow.
Foqal
HubSpot Sync (Users, Companies, Deals, Notes, Owners)
HubSpot Service Hub
CRM Records (deduplication)
many:1Customers using Foqal's native HubSpot integration have records in both systems. Users sync as Foqal Agents to HubSpot Users; Companies sync as Foqal Companies to HubSpot Companies; Deals sync as Foqal Deals to HubSpot Deals; Notes sync as Foqal Engagements to HubSpot Engagements. During migration we deduplicate these cross-system records by email (for users/contacts) and domain (for companies) to ensure that a single HubSpot CRM record exists post-migration rather than a dual-record with conflicting timestamps.
Foqal
Report and Metrics
HubSpot Service Hub
Report (rebuild required)
lossyFoqal's CSAT scores and productivity metrics are computed at query time from ticket data and are not exportable as standalone data objects. The underlying ticket data migrates, so historical CSAT and agent productivity metrics can be recalculated in HubSpot's Service Hub reporting once tickets are present. We do not migrate report snapshots or pre-built dashboards; we deliver a written list of Foqal report definitions for the customer's admin to rebuild in HubSpot's reporting module.
Foqal
Integration (Jira, ServiceNow)
HubSpot Service Hub
Integration (rebuild required)
lossyFoqal's Jira and ServiceNow integrations are connection-level configs that store relationship pointers between tickets and third-party issue records. We capture which Foqal tickets are linked to Jira issues or ServiceNow records and preserve the external ID as a custom property on the migrated HubSpot ticket. The integration itself (OAuth credentials, sync rules, bidirectional updates) is not migrated and requires rebuilding with HubSpot's native integration options or a middleware tool like Zapier or Workato.
Foqal
Ticket (channel metadata)
HubSpot Service Hub
Ticket (custom properties)
lossyFoqal tickets carry channel-origin metadata (the Slack or Teams channel where the ticket was created, the thread ID, the message ID). HubSpot Service Hub does not have native fields for messaging channel context. We create custom ticket properties (foqal_channel_source, foqal_channel_id, foqal_thread_id) to preserve this metadata so that teams with Slack or Teams integrations can use it to reconstruct channel-thread context for agents who reference the original conversation thread during support.
Foqal
Customer (end user)
HubSpot Service Hub
Contact
1:1Foqal customers who submitted tickets (the end users, distinct from agents) are stored as user records in Foqal's system. These migrate to HubSpot Contacts. Where a customer email already exists in HubSpot (from the Foqal sync or prior CRM data), the record is matched and deduplicated rather than created as a duplicate. Customer contact properties from Foqal (name, email, company if linked) map to the corresponding HubSpot Contact properties.
| Foqal | HubSpot Service Hub | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Conversation | Conversation (Ticket conversations)1:1 | Fully supported | |
| Agent | User (Owner)1:1 | Fully supported | |
| Team | Team1:1 | Fully supported | |
| SLA Policy | SLA Policylossy | Fully supported | |
| Workflow (Automation Rules) | Workflow (documentation only)1:1 | Fully supported | |
| ApprovalRequest | Approval Process (documentation only)1:1 | Fully supported | |
| HubSpot Sync (Users, Companies, Deals, Notes, Owners) | CRM Records (deduplication)many:1 | Fully supported | |
| Report and Metrics | Report (rebuild required)lossy | Fully supported | |
| Integration (Jira, ServiceNow) | Integration (rebuild required)lossy | Fully supported | |
| Ticket (channel metadata) | Ticket (custom properties)lossy | Fully supported | |
| Customer (end user) | 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
HubSpot Service Hub gotchas
Rate limits throttle large migration API calls
Side conversations and Zendesk macros have no HubSpot equivalent
HubSpot stores ticket history as fragmented engagement objects
Custom Objects require Enterprise tier in HubSpot
Ticket pipeline stage probability values do not export cleanly
Pair-specific challenges
Migration approach
Discovery and subdomain token collection
We collect the Foqal subdomain (required for Origin header injection), generate or retrieve the Bearer token from Settings > Users in the Foqal dashboard, and confirm the active plan tier (Free, Premium, or Enterprise). We audit the Foqal portal for ticket count, conversation volume, agent count, active teams, SLA policy definitions, and workflow rule names accessible via GraphQL. We also map existing Foqal-to-HubSpot sync records to identify which CRM data is already in HubSpot and requires deduplication rather than fresh import. The discovery output is a written scope document covering object counts, mapping decisions, and conflict-resolution strategy for synced records.
Schema design and custom property provisioning
We create the HubSpot Service Hub ticket pipeline, define custom ticket properties for Foqal channel metadata (foqal_channel_source, foqal_channel_id, foqal_thread_id, foqal_ticket_urn), and configure SLA policies using the exported Foqal SLA tier definitions as a reference. If the customer uses HubSpot Service Hub Professional+ or Enterprise, we also set up the SLA business hours configuration. We configure Teams in HubSpot matching the Foqal team structure and assign team membership during the agent import phase. Schema design happens in the production HubSpot portal with the customer's admin present for approval.
Sample migration and deduplication validation
We run a sample migration of 100-200 tickets with their full conversation threads and agent assignments into the HubSpot staging environment. The customer's support operations lead reviews the migrated tickets, verifies conversation chronology, checks agent attribution, and confirms that channel metadata custom properties are populated. We also run the deduplication pass on the synced-record batch (Users, Companies, Deals) to validate that the conflict-resolution strategy produces a clean CRM record set with no duplicates. Mapping corrections are applied before the full migration begins.
Agent and team provisioning
We extract every distinct Foqal agent and reconcile by email against the destination HubSpot portal's user table. Agents without a matching HubSpot User are held in a provisioning queue for the customer's admin to create. Team membership is mapped to HubSpot Teams during this phase. The customer's admin assigns the appropriate HubSpot seat licenses (Starter, Professional, or Enterprise) to each agent before we proceed to ticket import, because ticket OwnerId references require a valid HubSpot User ID.
Full ticket and conversation migration
We run the full production migration in record-dependency order: first Contacts (Foqal end users), then Agents mapped to HubSpot Users, then Tickets (with custom channel metadata properties), then Conversation messages (ordered by timestamp within each ticket). Attachment binaries are downloaded from Foqal and uploaded to HubSpot as ticket attachments during the conversation migration phase. Each phase emits a row-count reconciliation report. We use adaptive batch sizing for the Foqal export to handle undocumented rate limits, and HubSpot's REST API with exponential backoff for imports. SLA policy assignments are applied to tickets post-import using HubSpot's bulk property update endpoint.
Cutover, validation, and workflow handoff
We freeze Foqal write access during cutover, run a final delta migration of any tickets or conversations modified during the migration window, and enable HubSpot Service Hub as the system of record. The Foqal-to-HubSpot sync integration is disabled at this point. We deliver the workflow automation inventory document (routing rules, approval chains, SLA escalation definitions as documented from Foqal), the SLA policy mapping table, and the HubSpot integration rebuild checklist (Jira, ServiceNow) to the customer's admin team. We support a five-business-day hypercare window for reconciliation issues raised by the support team. Workflow rebuilding in HubSpot Service Hub, SLA policy fine-tuning, and third-party integration setup are outside standard migration scope and are handled as separate engagements.
Platform deep dives
Foqal
Source
Strengths
Weaknesses
HubSpot Service Hub
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. 2 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Foqal and HubSpot Service Hub.
Object compatibility
2 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 HubSpot Service Hub migration scoping. Not seeing yours? Book a call.
Walk through your Foqal to HubSpot Service Hub 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 HubSpot Service Hub
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.