Helpdesk migration
Field-level mapping, validation, and rollback between Awesome Support and Intercom. We move data and schema; workflows are rebuilt natively in Intercom.
Awesome Support
Source
Intercom
Destination
Compatibility
11 of 12
objects map 1:1 between Awesome Support and Intercom.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Moving from Awesome Support to Intercom means leaving the WordPress plugin ecosystem for a dedicated SaaS support platform with native AI capabilities, multi-channel inbox, and a structured conversation data model. Awesome Support stores Tickets as WordPress custom post types, Responses as comments, and Custom Fields across multiple meta key namespaces gated by separate add-ons. There is no REST API in the free version, so extraction depends on either the paid REST API add-on or direct read-only queries against wp_posts and wp_postmeta. We enumerate all active add-ons during discovery, extract every relevant meta key prefix, and map the data to Intercom's Conversations, Contacts, and Custom Attributes model. Intercom's API requires contacts to exist before conversations, so import ordering is mandatory. We do not migrate WordPress plugins, Automations, or Rules; we deliver a written inventory of these for the customer to rebuild inside 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 Awesome 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.
Awesome Support
Ticket
Intercom
Conversation
1:1Awesome Support Tickets are custom post types (wp_posts, post_type 'ticket') and map to Intercom Conversations. The ticket ID, subject, creation date, and last-modified date migrate as the conversation id, title, created_at, and updated_at. We preserve original ticket URLs from WordPress in a custom attribute wpas_ticket_id__c for audit and cross-reference. Ticket status (Open, Pending, Closed, etc.) maps to Intercom's open, closed, and snoozed state plus a custom attribute for the original Awesome Support status label.
Awesome Support
Ticket Response (Public Reply)
Intercom
Message (reply type)
1:1Public ticket responses stored as WordPress comments (wp_comments, comment_type 'comment') map to Intercom Messages of type comment. We resolve the agent or submitter identity against the migrated Contact or Teammate record and set the message author reference accordingly. The original comment date sets the message created_at timestamp. HTML content is preserved as-is; we validate that special characters and embedded images are re-uploaded or referenced correctly.
Awesome Support
Private Note
Intercom
Message (note type)
1:1Private agent notes stored as wp_comments with comment_type 'wpas_note' or a similar internal flag map to Intercom Messages of type note. These are distinguishable from public responses by comment_type in the WordPress database. We preserve the note flag so internal context is not exposed to the end customer in Intercom. The original note author and timestamp migrate alongside the content.
Awesome Support
Customer (Registered User Submitter)
Intercom
Contact
1:1Registered WordPress users who submitted tickets map to Intercom Contacts. We resolve by email address and carry across display name, email, and any user meta fields as Intercom custom attributes. The HubSpot-to-Intercom parallel pattern of pre-creating contacts before conversations applies here as well: contacts must exist before their associated ticket history is imported as conversations.
Awesome Support
Customer (Guest Submitter)
Intercom
Contact (email-only)
1:1Guest ticket submitters lack a WordPress user account (no wp_users entry) and exist only in ticket meta (wpas_user_email, wpas_user_name). We extract these from wp_postmeta, create an Intercom Contact using the email as the primary identifier, and carry the guest name as a custom attribute. Guest contacts are a common data gap in WordPress helpdesk migrations; we flag any ticket with a guest submitter separately during scoping.
Awesome Support
Agent (WordPress User)
Intercom
Teammate
1:1Awesome Support Agents are WordPress user accounts with the appropriate WordPress role or capability added by the plugin. We map wp_users to Intercom Teammates, preserving display_name, user_email, and the role assignment. If the destination Intercom workspace uses Teams (grouped inbox), we map the WordPress role to an Intercom Team. We resolve Teammates by email match and flag any Agent without a matching Intercom user for the customer's admin to provision before conversation import.
Awesome Support
Custom Field
Intercom
Custom Attribute
1:1Awesome Support custom fields are stored in wp_postmeta with keys prefixed by wpas_ or the Custom Fields add-on namespace. We enumerate all custom field keys per ticket, map each to an Intercom custom attribute (created under Settings > Data > Custom Attributes before import), and handle field types: text maps to string, select to dropdown, checkbox to boolean, number to number, and taxonomy fields to string with comma-separated values. Add-on-specific custom fields (Gravity Forms, time tracking) use their own meta key prefixes and are enumerated separately during discovery.
Awesome Support
Tag
Intercom
Label
1:1Tags are stored as WordPress post terms (wp_terms joined via wp_term_taxonomy where taxonomy = 'ticket_tag'). We export the full tag taxonomy and apply tags as Intercom Labels on the migrated Conversation. Labels appear in Intercom's conversation sidebar and filtering UI, giving the support team the same tag-based segmentation they relied on in Awesome Support.
Awesome Support
Custom Status Label
Intercom
Conversation State + Custom Attribute
lossyAwesome Support allows renaming status labels via settings (e.g., renaming 'Open' to 'In Progress' or 'New' to 'Awaiting Customer'). We read the current status label configuration from wp_options and map renamed labels to Intercom conversation states (open, closed, snoozed) plus a custom attribute as_status__c carrying the original Awesome Support label for reporting continuity.
Awesome Support
File Attachment
Intercom
Attachment
1:1Attachments are WordPress media items associated with the ticket post via wp_postmeta. We extract attachment URLs and re-upload them to Intercom's file storage, linking each file to the relevant Message in the migrated conversation. We validate attachment URLs during extraction, flag any that return 404 or redirect errors, and re-attach from a backup source or the original ticket email thread if available.
Awesome Support
Satisfaction Survey Result
Intercom
Custom Attribute (Contact or Conversation)
1:1Satisfaction survey responses (star ratings and feedback text) are stored in wp_postmeta with a wpas_satisfaction_ prefix, but only when the Satisfaction Survey add-on is active. Not all Awesome Support installations have this add-on. We export available survey data and map ratings to a custom attribute csat_rating__c on the Contact and survey feedback text to csat_feedback__c. We confirm add-on status during discovery and exclude this object if the add-on is not present.
Awesome Support
Time Tracking Entry
Intercom
Custom Attribute or Note
1:1Time Tracking is a separate add-on that stores billable hours against tickets in a dedicated meta key namespace or custom table. Entries include agent, duration, and optional billing notes. We export time entries as text notes appended to the conversation (internal note type) with the duration in HH:MM format and the billing note included. Intercom does not have a native billing or time-tracking object, so the representation is note-based rather than structured.
| Awesome Support | Intercom | Compatibility | |
|---|---|---|---|
| Ticket | Conversation1:1 | Fully supported | |
| Ticket Response (Public Reply) | Message (reply type)1:1 | Fully supported | |
| Private Note | Message (note type)1:1 | Fully supported | |
| Customer (Registered User Submitter) | Contact1:1 | Fully supported | |
| Customer (Guest Submitter) | Contact (email-only)1:1 | Fully supported | |
| Agent (WordPress User) | Teammate1:1 | Fully supported | |
| Custom Field | Custom Attribute1:1 | Fully supported | |
| Tag | Label1:1 | Fully supported | |
| Custom Status Label | Conversation State + Custom Attributelossy | Fully supported | |
| File Attachment | Attachment1:1 | Fully supported | |
| Satisfaction Survey Result | Custom Attribute (Contact or Conversation)1:1 | Fully supported | |
| Time Tracking Entry | Custom Attribute or Note1: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.
Awesome Support gotchas
No REST API in the free version blocks scripted migration
Ownership change via auction disrupted support continuity
Plugin updates corrupt WordPress media library
Add-on fragmentation spreads data across multiple schemas
Guest ticket submitters lack a persistent contact record
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 add-on enumeration
We enumerate all active WordPress plugins, identify which Awesome Support add-ons are present (Standard Bundle, Professional Bundle, REST API, Time Tracking, Satisfaction Survey, Gravity Forms), and document the meta key prefixes each add-on uses in wp_postmeta. We read the current status label configuration from wp_options, extract the full tag taxonomy, and confirm whether WooCommerce or EDD integration is active and what product associations exist in ticket meta.
Data extraction strategy selection
If the REST API add-on is active, we use it for structured extraction. If not, we run read-only SQL against wp_posts (post_type 'ticket'), wp_comments (linked to ticket IDs), wp_postmeta (all meta keys per ticket and per agent), wp_users (agent accounts), wp_terms and wp_term_taxonomy (tags), and wp_options (settings and label renames). We validate attachment URLs during extraction and flag any that are unreachable.
Intercom workspace provisioning and schema preparation
We create the Intercom custom attributes (Settings > Data > Custom Attributes) for every Awesome Support custom field before importing any data. We create any required Teams, and we configure the default assignment settings for unassigned tickets (Settings > Inbox Settings > Assignment Preferences) so that tickets without a mapped agent land correctly. If the customer plans to use Fin AI with the Knowledge Hub, we provision Articles as a placeholder for the help-center rebuild.
Contact and Teammate import
We run contact import first: registered WordPress users become Intercom Contacts by email, and guest submitters (extracted from ticket meta) become email-only Contacts. Agents become Intercom Teammates, mapped by email. Any Agent without a matching Intercom user is flagged for the customer to provision before conversation import proceeds. Contacts must be confirmed complete and reconciled before any conversation records are created.
Conversation and message import
We import conversations in dependency order: Ticket subject, status, and timestamps create the conversation record; public responses and private notes are imported as messages of the correct type (comment or note) with the author reference resolved to the imported Contact or Teammate. Tags apply as Labels on each conversation. Custom field values attach to the conversation record via the pre-created custom attributes. Attachments re-upload to Intercom and link to the relevant message.
Cutover, validation, and handoff
We run a final delta migration of any tickets modified during the extraction window, then hand off write control to Intercom. We deliver a written inventory of all migrated objects with record counts, a note of any add-on data that could not be mapped to an Intercom equivalent (time tracking entries as notes, survey results as attributes), and a written recommendation for rebuilding any status labels, canned responses, and automation rules inside Intercom. We do not rebuild automations as Intercom Workflows within the migration scope.
Platform deep dives
Awesome 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 Awesome 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
Awesome Support: Not publicly documented.
Data volume sensitivity
Awesome 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 Awesome Support to Intercom migration scoping. Not seeing yours? Book a call.
Walk through your Awesome 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 Awesome 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.