Helpdesk migration
Field-level mapping, validation, and rollback between osTicket and Intercom. We move data and schema; workflows are rebuilt natively in Intercom.
osTicket
Source
Intercom
Destination
Compatibility
7 of 11
objects map 1:1 between osTicket and Intercom.
Complexity
CModerate
Timeline
2-4 weeks
Overview
osTicket and Intercom are fundamentally different helpdesk architectures. osTicket is a self-hosted PHP application that stores the entire ticket conversation history as one merged rich-text thread per ticket, while Intercom is a cloud-native, AI-first customer service platform built around Conversations, Contacts, and Team Inboxes. There is no native osTicket-to-Intercom importer, and osTicket's API only supports ticket creation — it cannot list, export, or update records. We resolve this by connecting directly to osTicket's MySQL database using a read-only connection scoped to the documented ERD schema. We split osTicket's merged thread blobs into discrete message entries, preserve author, timestamp, and the internal versus public flag for each segment, and resolve organisation-to-Contact lookups before inserting into Intercom. Intercom's Team Inbox structure maps to osTicket's Departments, and osTicket SLA Plans become custom attributes on Intercom Tickets. We do not migrate osTicket automations, email templates, or SLA configurations as functional equivalents — we deliver a written inventory for the customer's admin to rebuild in Intercom.
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 osTicket 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.
osTicket
Ticket
Intercom
Ticket
1:1osTicket Tickets map directly to Intercom Tickets. Each osTicket ticket becomes one Intercom Ticket with its ticket type, status, priority, and assignee resolved at migration time. The ticket subject from osTicket maps to the Intercom Ticket title, and the split thread body becomes the conversation history. osTicket's isoverdue flag becomes a custom attribute on the Intercom Ticket.
osTicket
Thread (Conversation)
Intercom
Conversation Part
1:manyosTicket stores the entire ticket conversation history as one merged Thread record per ticket — user replies, agent responses, and internal notes combined in a single rich-text blob. We split this blob into discrete Conversation Parts in Intercom, preserving the author (agent vs user), timestamp, and the internal note versus public message flag for each segment. The splitting logic is derived from osTicket's rendered-thread HTML structure and is version-sensitive to the osTicket release (1.14 through 1.18 have slightly different markup). Internal notes from osTicket become private notes in Intercom if the destination is on the Advanced tier or above.
osTicket
User (End User / Customer)
Intercom
Contact
1:1osTicket Users map to Intercom Contacts. We map name, email, and phone directly, and store any osTicket Organisation linkage as a custom attribute for resolution to an Intercom Company after Company migration. Users with no email address (phone-only contacts) are flagged for the customer's admin to review — Intercom Contacts require an email identifier at the Contact level for notification routing.
osTicket
Organisation (Company)
Intercom
Company
1:1osTicket Organisations map to Intercom Companies. The Organisation name becomes the Company name, and domain information becomes the Company domain. osTicket enforces no referential integrity between Users and Organisations — a User can exist without an Organisation. We flag orphaned User records and attempt to link them to a Company by email domain match during migration. Any remaining unlinked Contacts are moved to a reconciliation list for the admin to resolve post-migration.
osTicket
Agent (Staff / Operator)
Intercom
Admin
1:1osTicket Agents map to Intercom Admins. We resolve agents by email match against the destination Intercom workspace's Admin list. Any osTicket Agent without a matching Intercom Admin is held in a reconciliation queue — the customer must provision the Intercom Admin before the migration resumes so that ticket assignments are valid at insert time. osTicket's per-department permission model maps to Intercom's Inbox permissions, not to individual Admin records.
osTicket
Department
Intercom
Team Inbox
lossyosTicket Departments control ticket routing and agent permissions. Each osTicket Department maps to an Intercom Team Inbox, which is a grouping mechanism for conversations assigned to a team. Department email routing addresses map to Intercom's email forwarding addresses per Inbox. Agents assigned to a department in osTicket become members of the corresponding Team Inbox in Intercom. We configure the Team Inbox structure during the schema design phase before any record migration begins.
osTicket
Custom Field (Ticket-level)
Intercom
Custom Attribute (Ticket)
1:1osTicket ticket Custom Fields map to Intercom Ticket Custom Attributes. We map text, boolean, date, and list-typed fields to their Intercom equivalents. The visibility rules (agent-only versus user-visible) from osTicket do not transfer — Intercom's attribute visibility is controlled at the Admin-level rather than per-field for tickets, and we document the discrepancy in the mapping notes.
osTicket
Custom Field (User-level)
Intercom
Custom Attribute (Contact)
1:1osTicket User-level Custom Fields map to Intercom Contact Custom Attributes. These include any additional data collected on the user form beyond name, email, and phone. osTicket's required-flag on custom fields requires a temporary optional flag during migration (the osTicket API silently blocks ticket creation from users with required fields that are not present — a known osTicket forum issue); we document this for the admin and restore the flag post-migration if required.
osTicket
SLA Plan
Intercom
Custom Attribute (Ticket) + Rule documentation
lossyosTicket SLA Plans define response and resolution deadlines tied to ticket priority and department. Intercom's SLA enforcement requires an Advanced tier or above and operates on Team Inbox rules rather than named SLA Plan objects. We migrate SLA Plan names and time windows as custom attributes on the migrated Tickets and deliver a written map of each SLA Plan with its conditions and recommended Intercom Inbox Rule equivalent for the admin to configure post-migration.
osTicket
Help Topic
Intercom
Tag
lossyosTicket Help Topics are ticket categories that drive routing and SLA assignment. Intercom has no direct Help Topic equivalent — tags are the closest analogue. We migrate Help Topic names as Tags on the corresponding Intercom Tickets, and the customer chooses whether to use a flat tag list or a hierarchical naming convention during scoping. We document the full Help Topic list as a reference for the admin to restructure as Intercom Topics or inbox routing rules.
osTicket
Attachment
Intercom
Attachment (via Conversation Part)
1:1osTicket stores attachments separately from the ticket Thread record and links them by attachment ID. We extract attachment records alongside the ticket thread, download the file content, and attach each file to the corresponding Intercom Conversation Part. File size limits in Intercom (default 10 MB per attachment, configurable) apply — any osTicket attachments exceeding this limit are flagged for manual download and re-upload.
| osTicket | Intercom | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Thread (Conversation) | Conversation Part1:many | Fully supported | |
| User (End User / Customer) | Contact1:1 | Fully supported | |
| Organisation (Company) | Company1:1 | Fully supported | |
| Agent (Staff / Operator) | Admin1:1 | Fully supported | |
| Department | Team Inboxlossy | Fully supported | |
| Custom Field (Ticket-level) | Custom Attribute (Ticket)1:1 | Fully supported | |
| Custom Field (User-level) | Custom Attribute (Contact)1:1 | Fully supported | |
| SLA Plan | Custom Attribute (Ticket) + Rule documentationlossy | Fully supported | |
| Help Topic | Taglossy | Fully supported | |
| Attachment | Attachment (via Conversation Part)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.
osTicket gotchas
API supports ticket creation only
Ticket threads are a single rich-text blob
Custom fields require optional setting for API
IP-restricted API keys block automated migration tooling
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 database access scoping
We audit the source osTicket instance: MySQL version, database size, osTicket version (for thread-splitting logic), ticket count, user count, agent count, organisation count, custom field inventory, and SLA plan inventory. We verify that direct MySQL read access is available and scope the egress IP for the migration tooling. If osTicket is running on shared hosting with no direct DB access, we scope the CSV export fallback path and note any data fidelity trade-offs. The discovery output is a written migration scope document and an Intercom workspace readiness checklist covering Team Inbox structure, Ticket Types, and custom attribute names.
Schema design and Intercom workspace configuration
We configure the destination Intercom workspace before any data moves. This includes creating Team Inboxes mapped from osTicket Departments, defining Ticket Types (mapped from osTicket ticket categories or Help Topics), creating custom Contact attributes for any osTicket User-level custom fields, and creating custom Ticket attributes for osTicket SLA Plan names, ticket-level custom fields, and the original osTicket ticket ID. We do not configure Intercom workflows, routing rules, or Fin AI Agent setup — these are documented separately as rebuild scope for the customer's admin.
Thread splitting validation
We run thread-splitting validation on a 50-ticket sample across different osTicket versions and ticket age ranges. We validate that each extracted message entry has a correct author, timestamp, and body, and that the internal-note flag is preserved. We present the split results to the customer for sign-off before committing to the full ticket migration. Any tickets with malformed thread HTML are flagged and moved to a manual-review queue.
Sandbox migration and reconciliation
We run a full migration into an Intercom test workspace using a representative sample of records (typically 100-200 tickets). The customer's support operations lead reviews the migrated records against the osTicket source: ticket titles, conversation thread fidelity, contact-company linkage, and agent assignment. We correct any mapping errors before production migration begins. Sandbox reconciliation typically takes two to four business days of customer involvement.
Production migration in dependency order
We run production migration in record-dependency order: Intercom Admins (validated against a provisioning list), Companies (from osTicket Organisations), Contacts (with Company linkage resolved), Team Inboxes (validated against Department structure), then Tickets with split Conversation Parts. Each phase emits a row-count reconciliation report before the next phase begins. Attachments migrate as a final phase, after ticket and conversation records are stable. We implement batch chunking and exponential backoff to stay within Intercom API rate limits throughout.
Cutover, validation, and automation rebuild handoff
We freeze osTicket writes during cutover, run a final delta migration of any records modified during the migration window, then hand the Intercom workspace to the customer's team as the system of record. We deliver the Automation Inventory document listing every osTicket workflow, email template, and SLA configuration that requires rebuild in Intercom. We support a three-day hypercare window where we resolve any reconciliation issues raised by the customer's support team. We do not rebuild osTicket automations as Intercom workflows inside the migration scope — that is a separate engagement or an internal admin task.
Platform deep dives
osTicket
Source
Strengths
Weaknesses
Intercom
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 osTicket and Intercom.
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
osTicket: Not publicly documented.
Data volume sensitivity
osTicket 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 osTicket to Intercom migration scoping. Not seeing yours? Book a call.
Walk through your osTicket 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 osTicket
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.