Helpdesk migration
Field-level mapping, validation, and rollback between Rooftop and Intercom. We move data and schema; workflows are rebuilt natively in Intercom.
Rooftop
Source
Intercom
Destination
Compatibility
9 of 10
objects map 1:1 between Rooftop and Intercom.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Rooftop to Intercom is a platform upgrade for small support teams moving toward a unified inbox and conversational customer experience. The primary structural difference is that Rooftop uses a traditional ticket-centric model while Intercom centers on Conversations linked to Contacts and Companies. We resolve that conceptual shift during scoping by mapping every Rooftop ticket to an Intercom Conversation, every Rooftop customer to a Contact, and every custom ticket field to a custom attribute in Intercom before data moves. Rooftop has no documented public API, so we coordinate structured CSV exports from the UI with the customer's Rooftop admin, normalizing field names and handling missing timestamps during the transform phase. Intercom requires Contacts to exist before Conversations can be created via API, which dictates migration sequencing. We do not migrate Knowledge Base articles as rendered content, active chat campaigns, or automated workflows; we deliver a written inventory of these 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 Rooftop 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.
Rooftop
Customer
Intercom
Contact
1:1Rooftop Customer records map to Intercom Contacts. The Rooftop email field becomes the Contact email (used as the primary key in Intercom). Name, phone, and custom properties migrate to Intercom's standard contact attributes or custom contact attributes. We run a dedupe check against existing Intercom contacts by email before inserting to avoid duplicates during migration.
Rooftop
Company
Intercom
Company
1:1Rooftop Company records map to Intercom Companies. The company name becomes the Company name, and the domain field maps to the Website attribute. We create Company records before Contact import so that the company_id lookup relationship can be resolved at Contact insert time. Rooftop companies without a domain are still created with a placeholder website value.
Rooftop
Conversation
Intercom
Conversation
1:1Rooftop Conversation threads map to Intercom Conversations. Each conversation's message body, timestamp, sender attribution (agent or customer), and internal note flag migrate. Intercom's API requires the contact to exist before a conversation can be created, so we sequence Contact migration before Conversation migration. The Rooftop channel type (email, chat) maps to Intercom's channel field on the conversation.
Rooftop
Agent
Intercom
Admin or Teammate
1:1Rooftop Agent records map to Intercom Admins (full workspace access) or Teammates (inbox-restricted). Role and team assignment from Rooftop map to Intercom's inbox permissions and team membership. We resolve agents by email match against the Intercom workspace user list and flag any Rooftop agent without a matching Intercom user for admin provisioning before record migration.
Rooftop
Custom Ticket Field
Intercom
Custom Contact Attribute or Conversation Attribute
1:1Rooftop custom ticket fields vary by deployment. We inventory all field names, data types, and values during scoping. String and number fields map to Intercom custom contact attributes; ticket-specific fields that do not apply to the contact record map to conversation attributes on the individual conversation. Picklist-style custom fields map to Intercom select or multiselect custom attributes with the same option set.
Rooftop
Tag
Intercom
Tag
1:1Tags applied to Rooftop tickets migrate as Tags on the corresponding Intercom Conversation. Tag names are preserved verbatim. If the destination Intercom workspace already has tags with the same names, we reuse them to avoid tag proliferation. Tags used for internal categorization rather than customer-facing labeling are prefixed with an underscore in Intercom per the workspace's tagging convention.
Rooftop
Attachment
Intercom
Attachment
1:1File attachments associated with Rooftop conversations migrate as Intercom attachments. We extract the file URL from Rooftop, download the file, and re-upload it to Intercom's attachment endpoint linked to the corresponding conversation part. Attachment size limits (Intercom caps at 20MB per file) may require splitting large files or flagging them for manual re-upload. We validate attachment integrity by checksum before re-upload.
Rooftop
Knowledge Base Article
Intercom
Article
1:1Rooftop KB articles and their category hierarchy migrate to Intercom Help Center articles and collections. Article body content (HTML or plain text) migrates as article body text. We recreate the category-to-article parent relationship as Intercom collection-to-article links. Internal article IDs do not carry forward; Intercom generates new article IDs. Article-level permission settings default to public at migration time and require admin review post-migration.
Rooftop
Ticket Status
Intercom
Conversation State
lossyRooftop ticket status values (Open, Pending, Resolved, Closed) map to Intercom conversation states (Open, Snoozed, Closed). We define the status mapping during scoping and apply it as a transform rule during migration. Any custom status values in Rooftop map to Intercom conversation tags or notes rather than states, since Intercom has a fixed state model.
Rooftop
Timestamp
Intercom
Created At and Updated At
1:1Rooftop ticket creation timestamp and last-modified timestamp migrate to Intercom conversation created_at and updated_at fields. Message timestamps within conversations migrate as part_created_at on each conversation part. We validate timestamp ordering after migration to ensure that no message appears before the parent conversation creation date.
| Rooftop | Intercom | Compatibility | |
|---|---|---|---|
| Customer | Contact1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Conversation | Conversation1:1 | Fully supported | |
| Agent | Admin or Teammate1:1 | Fully supported | |
| Custom Ticket Field | Custom Contact Attribute or Conversation Attribute1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Knowledge Base Article | Article1:1 | Fully supported | |
| Ticket Status | Conversation Statelossy | Fully supported | |
| Timestamp | Created At and Updated At1: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.
Rooftop gotchas
No documented public API for data export
Slow search and loading performance impacts data review
Small verified review base limits migration confidence
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
Rooftop export coordination and scoping
We work with the customer's Rooftop admin to identify all exportable data: Customers, Companies, Agents, Conversations (with message history), Tags, Attachments, Custom Ticket Fields, and Knowledge Base articles. We review Rooftop's UI export limits (row count per export, supported file formats) and design a multi-file export plan that covers the full historical scope. We inventory custom field names, data types, and picklist values, and we document the current ticket status schema and agent role model. The scoping output is a written data map and export schedule.
Intercom workspace provisioning and schema design
We configure the destination Intercom workspace: we create or confirm the required Admins and Teammates matching the Rooftop agent list, design the custom contact attributes and conversation attributes to receive the migrated Rooftop custom ticket field values, set the conversation status mapping, and configure inbox permissions matching the Rooftop team hierarchy. We disable Outbound campaigns and any automated rules that would fire on conversation creation before migration begins. We also confirm the Help Center collection structure for any KB article migration.
CSV extraction, normalization, and transform
We extract CSV files from Rooftop in structured batches coordinated with the admin. We normalize field headers to match Intercom's expected attribute names, handle missing email addresses on contacts (flag for admin review or assign a placeholder domain), normalize date formats to ISO 8601, and apply the ticket status-to-conversation-state mapping. We run a transform validation pass that checks record counts, identifies duplicate emails, and confirms that every conversation references a contact that exists or will exist before the conversation phase. Any Rooftop records that cannot be cleanly transformed go to a reconciliation queue for admin decision.
Contact and Company migration
We run Phase 1 and Phase 2 migration: Contacts first (from the normalized Rooftop Customer export) then Companies (linked to contacts via the company_id reference). We resolve agents by email match against the Intercom workspace. Contacts without a matching email in Intercom are held for admin provisioning of the corresponding Intercom user before the conversation phase. Each phase emits a row-count reconciliation report.
Conversation and attachment migration
We run Phase 3 migration: Conversations linked to the already-migrated Contacts. We use Intercom's REST API with batch chunking (50-100 records per request) and exponential backoff on rate limit 429 responses. Attachment files are downloaded from Rooftop URLs and re-uploaded to Intercom's attachment endpoint linked to the corresponding conversation part. We validate timestamp ordering (no message before conversation creation) and message attribution (agent vs customer) during migration. Active Outbound campaigns remain paused throughout this phase.
Delta migration, cutover, and KB article migration
We freeze writes in Rooftop during a defined delta window, run a final extract of any conversations or contacts created or modified since the main migration, and import the delta into Intercom. Knowledge base articles and collections migrate as a separate phase after conversations are validated. We deliver the migration summary report, reconcile final record counts against the original Rooftop exports, and enable the Intercom workspace as the system of record. We deliver a written inventory of any unmigrated items (custom fields that could not be mapped, attachments exceeding size limits, KB articles with permission issues) and a handoff document for the admin to configure active Intercom campaigns and automated rules post-migration.
Platform deep dives
Rooftop
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 Rooftop 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
Rooftop: Not publicly documented.
Data volume sensitivity
Rooftop 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 Rooftop to Intercom migration scoping. Not seeing yours? Book a call.
Walk through your Rooftop 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 Rooftop
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.