Helpdesk migration
Field-level mapping, validation, and rollback between Awesome Support and HubSpot Service Hub. We move data and schema; workflows are rebuilt natively in HubSpot Service Hub.
Awesome Support
Source
HubSpot Service Hub
Destination
Compatibility
12 of 14
objects map 1:1 between Awesome Support and HubSpot Service Hub.
Complexity
CModerate
Timeline
2-3 weeks
Overview
Moving from Awesome Support to HubSpot Service Hub crosses from a WordPress plugin into a SaaS CRM with native multi-channel support, shared contact records across Sales and Service, and built-in reporting dashboards. Because Awesome Support stores data as WordPress custom post types rather than a REST API, the migration method depends on whether the REST API add-on is active: when it is, we pull from documented endpoints; when it is not, we run read-only SQL against wp_posts, wp_postmeta, and wp_comments. We map Ticket post types to HubSpot Tickets, agent WordPress users to HubSpot Users, customer submitter details to Contacts, and ticket comments (distinguishing public responses from private agent notes) to HubSpot Conversations. Custom fields, tags, satisfaction survey data, and WooCommerce product associations migrate as custom ticket properties or linked records. We do not migrate WordPress plugin settings, add-on-specific tables without an active add-on, or automations built inside Awesome Support; we deliver a written inventory of these for your team to rebuild in HubSpot.
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
Awesome Support platform overview
Scorecard, SWOT, gotchas, and pricing for Awesome Support.
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 Awesome Support 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.
Awesome Support
Ticket
HubSpot Service Hub
Ticket
1:1Awesome Support tickets (wp_posts with post_type 'ticket') map directly to HubSpot Tickets. Ticket ID becomes the subject prefix for traceability. Status, priority, and product association from wp_postmeta map to HubSpot Ticket status, priority, and custom properties respectively. We preserve the original ticket_created_date as a custom date property for chronological ordering. If the destination HubSpot account uses the Free tier, tickets ingest via the Tickets API with the default pipeline and status values.
Awesome Support
Ticket Response (Public)
HubSpot Service Hub
Conversation
1:1Public ticket replies are stored as wp_comments with comment_type distinguishing agent responses from customer messages. We map each wp_comment to a HubSpot Conversation record attached to the parent Ticket. Comment body, timestamp, and author name transfer; we resolve the agent author to a HubSpot User by email match for conversation attribution.
Awesome Support
Private Agent Note
HubSpot Service Hub
Internal Note (Conversation)
1:1Awesome Support private notes use comment_type='wpas_note' in wp_comments. We map these to HubSpot Conversations with the internal flag set so they are visible to agents but not exposed to the ticket submitter in the customer portal. The original note author and timestamp are preserved on the conversation record.
Awesome Support
Agent (WordPress User)
HubSpot Service Hub
User
1:1Agents are wp_users accounts with an Awesome Support role capability. We extract display_name, user_email, and user_login from wp_users and map them to HubSpot Users. The migration user requires the HubSpot Users API permission. If the destination has fewer seats than source agents, we map multiple Awesome Support agents to a single HubSpot User during scoping and document the reassignment.
Awesome Support
Customer (Registered User Submitter)
HubSpot Service Hub
Contact
1:1Registered WordPress users who submitted tickets have a wp_users entry. We extract user_email, display_name, and any additional profile fields stored in wp_usermeta, then create HubSpot Contacts. The WordPress user_id is preserved in a custom property wpas_wp_user_id__c for cross-reference.
Awesome Support
Guest Ticket Submitter
HubSpot Service Hub
Contact
1:1Guest submitters lack a wp_users entry. Their details live in wp_postmeta under wpas_user_email and wpas_user_name on the ticket post. We extract these, create HubSpot Contacts with the guest email and name, and link the Contact to the ticket. The guest flag is set in a custom property is_guest_submitter__c for segmentation.
Awesome Support
Custom Field Values
HubSpot Service Hub
Custom Ticket Properties
1:1Awesome Support custom fields store values in wp_postmeta with wpas_ prefixes or add-on-specific namespaces (wpas_cf_, wtas_, time_tracking_). We enumerate all custom field keys present across the ticket corpus during discovery, map each to a HubSpot Ticket custom property of the matching type (string, number, date, dropdown, checkbox), and create any missing destination properties before import. Picklist values in Awesome Support map to HubSpot dropdown or multi-select properties.
Awesome Support
Tag
HubSpot Service Hub
Ticket Label
1:1Tags live in wp_terms joined via wp_term_taxonomy where taxonomy='ticket_tag'. We extract the full tag taxonomy and apply each tag as a HubSpot Ticket Label. Labels are preserved as-is without transformation since both platforms support string-based tagging on tickets.
Awesome Support
Custom Status Label
HubSpot Service Hub
Ticket Status
lossyAwesome Support allows renaming default status labels (e.g., 'Open' renamed to 'In Progress') via wp_options. We read the current status label configuration during discovery, then configure matching Ticket Status values in the HubSpot destination pipeline before migration begins. Custom statuses added via the custom status add-on map as additional Ticket Status values.
Awesome Support
File Attachment
HubSpot Service Hub
Ticket Attachment
1:1Attachments are WordPress media library items linked to the ticket post. We extract attachment URLs from wp_postmeta (wpas_attachments), validate each URL returns HTTP 200, download the file, and re-upload it as a HubSpot Ticket attachment using the HubSpot Files API. Attachments larger than 25 MB require chunked upload handling. We flag any URLs returning 404 or redirect errors for customer-side resolution from the original email thread.
Awesome Support
Satisfaction Survey
HubSpot Service Hub
Feedback Survey (HubSpot Native)
1:1Survey results (star ratings and feedback text) live in wp_postmeta with wpas_satisfaction_ prefix when the satisfaction survey add-on is active. We export all survey entries, map them to HubSpot's native Feedback Survey feature, and link each survey submission to the corresponding Contact record by email. If the destination HubSpot account lacks a Feedback Survey add-on, survey results migrate as custom properties on the Ticket.
Awesome Support
WooCommerce Product Association
HubSpot Service Hub
Ticket Custom Property (Product Reference)
1:1When the WooCommerce or EDD add-on is active, tickets carry product and order associations in wp_postmeta. We extract the associated product ID and order ID, map them to custom Ticket properties (product_id__c, order_id__c), and flag that these reference external WooCommerce records in the migration inventory so the customer's team can relink them post-migration if a WooCommerce-to-HubSpot integration is implemented.
Awesome Support
Time Tracking Entry
HubSpot Service Hub
Ticket Custom Properties (Time Log)
1:1Time tracking add-on entries store agent, duration, and billing notes in a dedicated table or postmeta with a time_tracking_ prefix. We export all time entries, aggregate total duration per ticket, and store as a custom numeric property total_time_logged__c in seconds on the HubSpot Ticket. Individual time entries are preserved in a migration inventory spreadsheet for the admin to rebuild in HubSpot Timer or a third-party time-tracking integration.
Awesome Support
Pipeline
HubSpot Service Hub
Ticket Pipeline
lossyAwesome Support pipelines are configured in wp_options. We read all pipeline definitions, map each to a HubSpot Ticket Pipeline with matching status stages. If the customer uses multiple pipelines in Awesome Support, each becomes a separate HubSpot Ticket Pipeline, which are available from HubSpot Starter tier onward.
| Awesome Support | HubSpot Service Hub | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Ticket Response (Public) | Conversation1:1 | Fully supported | |
| Private Agent Note | Internal Note (Conversation)1:1 | Fully supported | |
| Agent (WordPress User) | User1:1 | Fully supported | |
| Customer (Registered User Submitter) | Contact1:1 | Fully supported | |
| Guest Ticket Submitter | Contact1:1 | Fully supported | |
| Custom Field Values | Custom Ticket Properties1:1 | Fully supported | |
| Tag | Ticket Label1:1 | Fully supported | |
| Custom Status Label | Ticket Statuslossy | Fully supported | |
| File Attachment | Ticket Attachment1:1 | Fully supported | |
| Satisfaction Survey | Feedback Survey (HubSpot Native)1:1 | Fully supported | |
| WooCommerce Product Association | Ticket Custom Property (Product Reference)1:1 | Fully supported | |
| Time Tracking Entry | Ticket Custom Properties (Time Log)1:1 | Fully supported | |
| Pipeline | Ticket Pipelinelossy | 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
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 extraction method determination
We audit the source WordPress site for active plugins, add-ons, and REST API status. If the REST API add-on is active, we configure endpoint access and enumerate all ticket, agent, and customer endpoints. If the add-on is inactive, we provision read-only database credentials against the WordPress MySQL database and enumerate all relevant tables (wp_posts, wp_postmeta, wp_comments, wp_terms, wp_term_taxonomy, wp_options). We extract a full inventory of ticket counts, agent counts, custom field keys, active add-ons, and attachment URLs. The discovery output is a written extraction plan and a data readiness report that flags any gaps before migration begins.
HubSpot schema preparation
We create the destination HubSpot Ticket Pipeline with status values matching the Awesome Support configuration (including any renamed custom status labels from wp_options). We provision any custom Ticket Properties required for custom field mapping and set property types to match source data (string, number, date, dropdown, multi-select). If the WooCommerce add-on data is present, we create placeholder custom properties for product and order references and document the relinking step for post-migration. User roles and Teams are configured in HubSpot to match the source agent structure.
Contact deduplication and agent resolution
We extract all customer records from Awesome Support, separating registered WordPress users from guest submitters. Registered users are matched by email against existing HubSpot Contacts to avoid duplicates. Guest submitters are processed as new Contact records with the is_guest_submitter__c flag set. Agents are resolved by email against HubSpot Users, with any unresolved agents placed in a reconciliation queue for the customer to provision before import continues. This step is a prerequisite for ticket import because ticket owner assignment depends on User resolution.
Ticket and conversation migration
We run ticket migration in three phases. First, we import all Tickets with core fields (subject, status, priority, created date, updated date) and custom property values from the enumerated meta keys. Second, we attach Conversations (public responses and private notes) by querying wp_comments on each ticket post and mapping each to a HubSpot Conversation record with the internal flag set for private notes. Third, we attach file references and download-reupload attachments via the HubSpot Files API. Each phase emits a row-count reconciliation report before the next begins.
Add-on data and delta migration
We migrate satisfaction survey data, time tracking summaries, and WooCommerce product associations as custom Ticket properties. Time tracking details are preserved in a migration inventory spreadsheet for admin reference. After the primary migration window closes, we run a delta migration capturing any tickets created or modified in Awesome Support during the cutover period. We then freeze Awesome Support writes and set HubSpot Service Hub as the system of record.
Cutover, validation, and handoff
We deliver a reconciliation report comparing source record counts against destination record counts across tickets, contacts, agents, conversations, and attachments. The customer spot-checks 25-50 random tickets for content accuracy and flags any discrepancies within a five-business-day review window. We deliver the automation inventory document (Awesome Support settings, routing rules, and add-on configuration requiring rebuild in HubSpot Workflows) at cutover. We do not rebuild automations or configure HubSpot Workflows as standard scope; that work is handled by the customer's admin team or a HubSpot implementation partner.
Platform deep dives
Awesome Support
Source
Strengths
Weaknesses
HubSpot Service Hub
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 HubSpot Service Hub.
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 HubSpot Service Hub migration scoping. Not seeing yours? Book a call.
Walk through your Awesome Support 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 Awesome Support
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.