Helpdesk migration
Field-level mapping, validation, and rollback between Fluent Support and Intercom. We move data and schema; workflows are rebuilt natively in Intercom.
Fluent Support
Source
Intercom
Destination
Compatibility
8 of 12
objects map 1:1 between Fluent Support and Intercom.
Complexity
CModerate
Timeline
2-3 weeks
Overview
Moving from Fluent Support to Intercom is a shift from a WordPress plugin with ticket-centric organization to a SaaS platform built around continuous conversations. Fluent Support stores support data in custom WordPress database tables (fs_tickets, fs_conversations) and exposes a REST API at the site's /wp-json/fluent-support/v2 endpoint. Intercom uses a Conversations model where structured Tickets coexist with messaging threads, Contacts replace WordPress user records, and Teammates replace WordPress user roles. We map Fluent Support Tickets to Intercom Tickets, Conversations to Intercom conversation parts, WordPress users to Intercom Contacts, and Agents to Intercom Teammates with team assignment. Workflow automation rules, conditional custom field logic, and Mailbox routing rules do not migrate as structured data; we document each one for the customer's admin to rebuild in Intercom's Rules engine after cutover.
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 Fluent Support object lands in Intercom, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Fluent Support
Ticket
Intercom
Conversation + Ticket
1:manyFluent Support Tickets map to Intercom Conversations with an attached Ticket entity for structured case management. The source ticket title and content become the initial conversation message. We preserve source ticket status (open, pending, closed, archived) as an Intercom conversation state and ticket status value. Priority levels (normal, high, low) map to Intercom Ticket priority attributes with configurable value translation.
Fluent Support
Conversation
Intercom
Conversation Part
1:1Each Fluent Support Conversation entry maps to an Intercom conversation_part record with author attribution (agent vs customer), timestamp, and message content preserved. Message-by-message migration provides the highest historical fidelity but inflates API calls 10-100x per ticket compared to a flat-ticket migration. We confirm the fidelity-versus-cost preference during scoping and note that Intercom recommends flat-ticket migration for teams that need data primarily for reporting consistency rather than per-message context.
Fluent Support
Customer
Intercom
Contact
1:1Fluent Support Customer records (WordPress users with support profile data) map to Intercom Contacts. The WordPress user ID becomes a custom contact attribute rather than a primary identifier. Email address serves as the primary dedupe key. Contact privacy settings from Fluent Support migrate as HasOptedOutOfEmail flags. Any customer timezone, language, or custom profile data maps to Intercom custom attributes.
Fluent Support
Agent
Intercom
Teammate + Team
1:1Fluent Support Agents (WordPress users with support roles) map to Intercom Teammates. We resolve agents by email match against the destination Intercom workspace. If a source Agent has no matching Intercom Teammate account, we flag them for provisioning before migration. Team assignment in Fluent Support maps to Intercom Team structure, which drives inbox routing and SLA assignment.
Fluent Support
Mailbox
Intercom
Inbox
lossyFluent Support Mailboxes define incoming channel sources tied to the WordPress site's domain and email routing. Mailbox associations carry mailbox_id values that reference the specific WordPress environment and are not portable across environments. We flag every Mailbox association during discovery, document what each maps to in Intercom (typically a specific Inbox or shared inbox), and flag email routing rules (reply-to addresses, POP/IMAP inbox mappings) as requiring manual reconfiguration post-migration.
Fluent Support
Custom Field
Intercom
Custom Attribute
lossyFluent Support custom field definitions and their per-ticket values migrate to Intercom custom attributes on the Contact or conversation. Field types (text, dropdown, checkbox, date) map to equivalent Intercom attribute types. Conditional visibility logic (show field B only if field A equals value X) does not export as structured rules because Fluent Support stores this as UI preferences rather than portable configuration. We deliver a custom field inventory worksheet listing field names, types, and conditional logic so the admin can rebuild visibility conditions in Intercom.
Fluent Support
Product
Intercom
Data Attribute (custom)
lossyFluent Support Tickets tagged to a Product carry a product_id and product_source referencing a specific WordPress plugin (e.g., Fluent Forms). These source references are not portable. We extract product_id values and product names, map them to Intercom custom data attributes on the Contact, and flag which Intercom Inbox or routing rule should handle each product context post-migration.
Fluent Support
Tag
Intercom
Tag
1:1Fluent Support tags on tickets and customers migrate to Intercom tags as flat key-value labels. Tags are preserved as-is without conditional logic. We map tags at the conversation level for routing context and at the contact level for segmentation.
Fluent Support
Priority Level
Intercom
Ticket Priority
1:1Ticket priority fields (priority and client_priority) with values like normal, high, or low map directly to Intercom Ticket priority values (urgent, high, medium, low, none). We apply a configurable value translation table if the destination uses a different priority vocabulary than the source.
Fluent Support
Attachment
Intercom
File Attachment
1:1Files attached to Fluent Support tickets and conversations are stored in the WordPress media library or plugin-specific upload directories. We extract attachment URLs and file metadata, download files to a staging environment, and re-upload them to Intercom as conversation attachments. We flag the file type restriction: Intercom blocks .exe, .sys, .scr, .shb, .wsf, and other potentially malicious file types. If the source contains blocked types, we document which files require manual delivery post-migration.
Fluent Support
Workflow
Intercom
Rule (manual rebuild)
1:1Fluent Support Workflows are defined through a UI builder with triggers and conditions stored as UI preferences rather than structured JSON or YAML. We catalog every active workflow by name, trigger type, and action sequence during discovery and deliver a written inventory with a recommended Intercom Rules equivalent for each. The admin rebuilds rules in Intercom's Rules engine post-migration. We do not migrate workflows as executable code.
Fluent Support
Report / Statistics
Intercom
Not migrated
1:1Fluent Support reports (Resolve Stats, Response Stats, Ticket Stats) are computed dynamically from ticket data at query time and are not stored as discrete database rows. They cannot be migrated as objects. We recommend exporting key report screenshots and data snapshots before migration and rebuilding the reporting cadence in Intercom's native analytics and SLA reporting tools after cutover.
| Fluent Support | Intercom | Compatibility | |
|---|---|---|---|
| Ticket | Conversation + Ticket1:many | Fully supported | |
| Conversation | Conversation Part1:1 | Fully supported | |
| Customer | Contact1:1 | Fully supported | |
| Agent | Teammate + Team1:1 | Fully supported | |
| Mailbox | Inboxlossy | Fully supported | |
| Custom Field | Custom Attributelossy | Fully supported | |
| Product | Data Attribute (custom)lossy | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Priority Level | Ticket Priority1:1 | Fully supported | |
| Attachment | File Attachment1:1 | Fully supported | |
| Workflow | Rule (manual rebuild)1:1 | Fully supported | |
| Report / Statistics | Not migrated1: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.
Fluent Support gotchas
REST API authentication requires WordPress application passwords
Mailbox and Product source references are WordPress-site-specific
Workflow automation rules are not structured data and cannot export directly
Custom field conditional logic does not export as structured rules
Reports are computed aggregates, not stored records
Intercom gotchas
S3 JSON export omits conversation transcripts
Workspace isolation prevents workflow migration
Fin AI resolution fees compound with automation success
Two-year conversation history limit on historical export
Private app rate limits share workspace quota
Pair-specific challenges
Migration approach
Discovery and API credential setup
We audit the source Fluent Support environment via the /wp-json/fluent-support/v2 REST API, extracting ticket counts, conversation volume per ticket, customer records, agent accounts, active custom field definitions, active workflow list, mailbox assignments, and product tags. We verify WordPress application password credentials and confirm the API user has read access to all required database tables. On the Intercom side, we provision an OAuth 2.0 integration with the appropriate workspace permissions. We deliver a written migration scope document covering record counts, object mapping, and a fidelity recommendation for conversation migration approach.
Contact pre-migration and reconciliation
We extract Fluent Support customer records (WordPress users with support profile data) and migrate them to Intercom Contacts as the first data phase. Email address serves as the dedupe key. We resolve agents by email against the destination Intercom workspace and flag any agent without a matching Intercom Teammate account for provisioning. Any customer record without a valid email is held in a reconciliation queue. Migration cannot proceed past this step because Intercom requires Contact records to exist before conversation data can be associated with them.
Schema mapping and Intercom workspace configuration
We configure the destination Intercom workspace: Inboxes mapped from source Mailboxes, Teams mapped from source agent role groups, Ticket types and custom attributes mapped from source custom field definitions, and Ticket priority values translated from source priority levels. We map Workflows and conditional custom field logic to a written inventory rather than executable code, so the admin knows what to rebuild. We flag which email routing rules, POP/IMAP inbox mappings, and Mailbox reply-to addresses need manual reconfiguration after migration.
Sandbox migration and reconciliation
We run a full migration into a non-production Intercom workspace using a representative sample of records. The customer reconciles record counts, spot-checks 25-50 records for field-level fidelity, and validates that agent attribution, priority mapping, and custom attribute values transferred correctly. We correct any mapping errors before production migration begins. This step is critical for conversation-dense histories where message sequencing, author attribution, and attachment URLs must be verified before committing to production.
Production migration in dependency order
We run production migration in dependency order: Contacts first (validated against reconciliation queue), then Conversations with optional Ticket linkage based on the fidelity preference, then Tags at the contact and conversation level, then Custom Attributes for product and custom field values, then Attachments with file type validation. We use Intercom's REST API with rate-limit handling and exponential backoff. Message-by-message migration uses batched API calls with parent-record resolution (WhoId, ConversationId) confirmed before each batch. Each phase emits a row-count reconciliation report.
Cutover, validation, and workflow rebuild handoff
We freeze Fluent Support writes during cutover, run a final delta migration of any records modified during the migration window, then enable Intercom as the system of record. We deliver the workflow inventory document, custom field inventory worksheet, and Mailbox-to-Inbox routing map to the customer's admin team. We support a one-week hypercare window for reconciliation issues. We do not rebuild Fluent Support workflows in Intercom's Rules engine inside the migration scope; that is a separate configuration engagement.
Platform deep dives
Fluent Support
Source
Strengths
Weaknesses
Intercom
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 Fluent Support and Intercom.
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
Fluent Support: Not publicly documented.
Data volume sensitivity
Fluent Support 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 Fluent Support to Intercom migration scoping. Not seeing yours? Book a call.
Walk through your Fluent Support to Intercom migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Fluent Support
Other ways to arrive at Intercom
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.