Helpdesk migration
Field-level mapping, validation, and rollback between Awesome Support and Salesforce Service Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Service Cloud.
Awesome Support
Source
Salesforce Service Cloud
Destination
Compatibility
10 of 12
objects map 1:1 between Awesome Support and Salesforce Service Cloud.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from Awesome Support to Salesforce Service Cloud crosses from a WordPress plugin data model to a typed SaaS object hierarchy. Tickets live as custom post types in wp_posts with responses as wp_comments, while Salesforce uses the Case object with a structured conversation thread model. We read the WordPress database directly (wp_posts, wp_postmeta, wp_comments, wp_terms) when the REST API add-on is inactive, enumerate all active add-on namespaces during discovery, and map each data namespace to the equivalent Salesforce field or custom property. File attachments migrate as Salesforce ContentVersion records re-uploaded from the WordPress media library. We do not migrate WordPress pages, themes, or site configuration; the decision to decommission the WordPress instance is separate from the data migration. We do not migrate Awesome Support workflows, canned responses as templates, or add-on automation rules as code.
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
Salesforce Service Cloud platform overview
Scorecard, SWOT, gotchas, and pricing for Salesforce Service Cloud.
Data migration guide
The complete Salesforce Service Cloud migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Salesforce Service Cloud migration checklist
Pre- and post-cutover tasks for moving onto Salesforce Service Cloud.
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 Salesforce Service Cloud, 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
Salesforce Service Cloud
Case
1:1Awesome Support tickets (post_type = 'ticket' in wp_posts) map to Salesforce Case records. The WordPress ticket ID becomes the Case CaseNumber or a custom field src_ticket_id__c for traceability. Ticket subject migrates to Case Subject, ticket status (wpas_status) maps to Case Status with custom status values created in Salesforce to match renamed labels from Awesome Support settings. Priority and product associations from postmeta keys wpas_priority and any WooCommerce/EDD product link migrate to Case Priority and a custom product reference field.
Awesome Support
Ticket Response (Public Reply)
Salesforce Service Cloud
EmailMessage + Case Conversation
1:1Public replies stored as wp_comments with comment_type = 'ticket_reply' map to Salesforce EmailMessage records linked to the Case via ParentId. The WhoId on EmailMessage references the Contact (or Guest Contact) created from the ticket submitter. Body content migrates as HTML with inline images preserved via ContentDocument re-upload. We preserve the original reply timestamp as EmailMessage.MessageDate for conversation timeline ordering.
Awesome Support
Private Note
Salesforce Service Cloud
Note
1:1Internal agent notes stored as wp_comments with comment_type = 'ticket_note' map to Salesforce Note records linked via ContentDocumentLink to the parent Case. The private flag is preserved in a custom field is_internal_note__c so the customer's admin can configure visibility logic in Salesforce. Private notes are not exposed to the end customer in either system.
Awesome Support
Agent (WordPress User)
Salesforce Service Cloud
User
1:1WordPress users with the Awesome Support agent role map to Salesforce User records. We extract display_name, user_email, and the agent role designation from wp_usermeta. User provisioning is sequential: the customer's Salesforce admin creates matching active Users before the Case migration phase runs, because Case.OwnerId requires a valid Salesforce User lookup. Agents without a matching Salesforce User are held in a reconciliation queue.
Awesome Support
Customer (Registered User Submitter)
Salesforce Service Cloud
Contact
1:1Ticket submitters who are registered WordPress users (wpas_user_id in postmeta) map to Salesforce Contact records. The WordPress user_email and display_name become Contact Email and Name. We use Contact Email as the dedupe key during import to prevent duplicate Contact creation if the same user submitted multiple tickets. The Contact is created before the associated Case import so that Case.ContactId lookup is satisfied.
Awesome Support
Guest Ticket Submitter
Salesforce Service Cloud
Contact
1:1Guest ticket submitters lack a WordPress user account and appear only in ticket postmeta (wpas_user_email, wpas_user_name). We extract these values, create a Contact record with the IsGuestContact flag set, and link it to the Case. Email address is preserved as the dedupe key. If a guest later registers, the customer can merge or link the records manually in Salesforce.
Awesome Support
Custom Fields
Salesforce Service Cloud
Custom Fields on Case or Custom Object
1:1Awesome Support custom fields use postmeta keys prefixed wpas_ or the active add-on namespace. We enumerate every distinct custom field key across all tickets during discovery, map each to a typed Salesforce Custom Field (Text, Number, Picklist, Date, Checkbox) on Case or a related Custom Object, and create the schema before migration begins. Add-on-gated fields (Gravity Forms, billing, WooCommerce product) are mapped to equivalent Salesforce fields with a note in the scope document identifying which add-on originally owned the data.
Awesome Support
Tag
Salesforce Service Cloud
Labels (Case) or Custom Multi-Select Picklist
lossyTags stored as WordPress post terms (taxonomy = 'ticket_tag') migrate to Salesforce Case Labels or to a custom multi-select picklist field on Case, depending on the customer's preference. The customer selects tag strategy during scoping. Multi-select picklist values are migrated as delimited strings in a single field; Labels create Salesforce TopicAssignment records linked to the Case.
Awesome Support
File Attachment
Salesforce Service Cloud
ContentVersion + ContentDocumentLink
1:1Attachments stored as WordPress media items linked to the ticket post type are extracted as URLs from wp_postmeta (wpas_attachments) and wp_posts guid fields. We validate each URL for a 200 response, re-upload valid files as Salesforce ContentVersion records, and link them to the Case via ContentDocumentLink. Files returning 404 or redirect errors are flagged in the reconciliation report with the source ticket reference for manual recovery from the original email thread or backup.
Awesome Support
Satisfaction Survey Result
Salesforce Service Cloud
Custom Field on Case
1:1Satisfaction survey data (wpas_satisfaction_rating, wpas_satisfaction_feedback) is only present when the Satisfaction Survey add-on is active. We check for the add-on during discovery, and if present, map the rating to a custom Number field cs_satisfaction_rating__c and feedback text to a custom Text Area field cs_satisfaction_feedback__c on Case. If the add-on is inactive, this object is omitted from the migration scope with a note in the scope document.
Awesome Support
Time Tracking Entry
Salesforce Service Cloud
Custom Object or Custom Field on Case
1:1Time tracking entries stored by the Time Tracking add-on exist in a custom table or postmeta namespace (wpas_timetracking_). Each entry includes agent ID, duration in minutes, and optional billing notes. We map these to a custom Time_Entry__c object with fields for Case lookup, Agent lookup, Duration__c (Number), and Billing_Notes__c (Text), or to custom fields on Case if the customer prefers a simpler schema. The choice is confirmed during scoping.
Awesome Support
Custom Status Label
Salesforce Service Cloud
Case Status Picklist Values
lossyAwesome Support allows renaming default status labels via settings (e.g., renaming 'Open' to 'In Progress'). We read the current status label configuration from wp_options during discovery, map each renamed label to a corresponding Salesforce Case Status picklist value, and configure the Case Status picklist in Salesforce to match the renamed labels exactly. Agents see the same label names in Salesforce that they saw in Awesome Support.
| Awesome Support | Salesforce Service Cloud | Compatibility | |
|---|---|---|---|
| Ticket | Case1:1 | Fully supported | |
| Ticket Response (Public Reply) | EmailMessage + Case Conversation1:1 | Fully supported | |
| Private Note | Note1: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 Fields | Custom Fields on Case or Custom Object1:1 | Mapping required | |
| Tag | Labels (Case) or Custom Multi-Select Picklistlossy | Fully supported | |
| File Attachment | ContentVersion + ContentDocumentLink1:1 | Fully supported | |
| Satisfaction Survey Result | Custom Field on Case1:1 | Fully supported | |
| Time Tracking Entry | Custom Object or Custom Field on Case1:1 | Fully supported | |
| Custom Status Label | Case Status Picklist Valueslossy | 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
Salesforce Service Cloud gotchas
Data Export 512MB file size cap breaks large org exports
API Daily Request Limits vary by license edition
No automatic data backup in base Salesforce
Picklist dependencies silently break records when unmapped
Workflow rules fire unexpectedly during data load
Pair-specific challenges
Migration approach
Discovery and add-on enumeration
We audit the source WordPress site across the active plugin list, Awesome Support version, REST API add-on status, and ticket volume estimate. We enumerate every active add-on, query the corresponding meta key namespaces in the WordPress database, and produce a written discovery document listing all objects to migrate, their source locations (postmeta key, custom table, or term taxonomy), and any add-ons whose data will be skipped because the add-on is inactive or the license has lapsed. We also assess whether the WordPress database is accessible via read-only credentials or whether a wp-cli export is required.
Schema design in Salesforce
We design the destination schema in Salesforce Service Cloud. This includes creating all custom fields referenced in the discovery document (with typed Salesforce field types matched to the source data format), configuring Case Status picklist values to match renamed status labels from Awesome Support settings, creating any custom objects required for time tracking or add-on-gated data, and setting up Page Layouts. Schema is deployed into a Salesforce Sandbox first via change set or metadata API for validation before production migration begins.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox using production-equivalent data volume. The customer's Service Cloud admin reconciles record counts (Cases in, Contacts in, ContentDocuments in), spot-checks 20-30 random Cases against the WordPress source, and validates attachment presence and status label accuracy. Any mapping corrections, missing picklist values, or schema adjustments happen in the Sandbox and are redeployed before production migration begins.
User provisioning and agent reconciliation
We extract every distinct WordPress user with the Awesome Support agent role and match by email against the Salesforce destination org's User table. Any agent without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Case.OwnerId requires a valid Salesforce User lookup, so this step must complete before the Case migration phase runs.
Production migration in dependency order
We run production migration in record-dependency order: Contacts (registered users first, then guest submitters), ContentVersion records for attachments (to establish ContentDocument IDs before linking), Cases (with ContactId, OwnerId, and all custom field values resolved), Case Conversations (EmailMessage and Note records linked to Cases in timestamp order), and finally any custom objects for add-on data. Each phase emits a row-count reconciliation report before the next phase begins. We use the Salesforce REST API for small-volume batches and Bulk API 2.0 for histories exceeding 50,000 records.
Cutover, attachment validation, and inventory delivery
We freeze new ticket creation in Awesome Support during cutover, run a final delta migration of any Cases modified during the migration window, validate every ContentDocument attachment URL in Salesforce, then hand off the system as live. We deliver the written automation inventory documenting every Awesome Support workflow, canned response, and add-on rule requiring rebuild in Salesforce Flow or the customer's admin rebuild scope. We do not rebuild automations as Salesforce Flow inside the migration scope; that is a separate engagement.
Platform deep dives
Awesome Support
Source
Strengths
Weaknesses
Salesforce Service Cloud
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 1 of 7 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Awesome Support and Salesforce Service Cloud.
Object compatibility
1 of 7 objects need a manual workaround.
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 Salesforce Service Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Awesome Support to Salesforce Service Cloud 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 Salesforce Service Cloud
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.