Helpdesk migration
Field-level mapping, validation, and rollback between Khoros Service and Salesforce Service Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Service Cloud.
Khoros Service
Source
Salesforce Service Cloud
Destination
Compatibility
7 of 10
objects map 1:1 between Khoros Service and Salesforce Service Cloud.
Complexity
CModerate
Timeline
4-6 weeks
Overview
Khoros Service and Salesforce Service Cloud differ fundamentally in their primary objects and organizational model. Khoros uses Customer and Case as the core pair, with Interactions embedded as an ordered array inside each Case and Author records tracking social identities separately. Salesforce Service Cloud uses Contact and Case with Activity history in separate EmailMessage, Task, and Event objects linked by WhatId and WhoId lookups. We resolve this structural difference during migration by exploding each Khoros Interaction array into discrete Salesforce activity records while maintaining conversation thread order. Khoros Brand and Initiative scoping have no direct Salesforce equivalent, so we map these to Salesforce Teams and Case Tags respectively. We do not migrate automation rules, social care routing workflows, or knowledge base configuration; we deliver a written inventory of these for the customer's admin to rebuild in Salesforce Flow and Knowledge Base.
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
Khoros Service platform overview
Scorecard, SWOT, gotchas, and pricing for Khoros Service.
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 Khoros Service 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.
Khoros Service
Customer
Salesforce Service Cloud
Contact
1:1Khoros Customer maps to Salesforce Contact as the primary profile object. Standard fields (screen name, email, location) map to Contact.Name, Contact.Email, and Contact.MailingCity. Custom searchable and non-searchable customer fields declared in the Khoros meta/object endpoint are discovered during scoping, then typed and mapped to Salesforce custom fields (with __c suffix) on the Contact object. Brand associations from Khoros Brands migrate as Salesforce Teams or a custom multi-select picklist field depending on the customer's reporting structure.
Khoros Service
Case
Salesforce Service Cloud
Case
1:1Khoros Case maps to Salesforce Case as the primary ticket object. Title, status, priority, and customId migrate to Case.Subject, Case.Status, Case.Priority, and a custom Case.KhorosId__c field for cross-reference. The Case.Origin field is set based on the Khoros channel identifier (social, community, messaging, email) stored in the Case customId metadata. OwnerId is resolved by matching the Khoros agent email to a Salesforce User.
Khoros Service
Author
Salesforce Service Cloud
Contact (linked profile)
1:1Khoros Author represents the social identity of a customer engaging on a channel. Author profile data (screen name, brandOwned flag, properties metadata) is appended to the mapped Contact as custom fields. Where an Author does not have a corresponding Khoros Customer record, we create a Contact record with the Author data and tag it with a custom field author_only__c to indicate it is a social identity without a full CRM profile.
Khoros Service
Interaction
Salesforce Service Cloud
EmailMessage + Task
1:manyKhoros Interactions are an ordered array within each Case representing individual messages, notes, and status changes. We explode this array into discrete Salesforce activity records: inbound messages become EmailMessage records (Body, FromName, FromAddress, ToAddress, Incoming=true) linked to the Case via ParentId; outbound messages become EmailMessage with Incoming=false; notes and status changes become Task records with TaskSubtype set appropriately. The original Khoros Interaction timestamp preserves ActivityDate for thread ordering.
Khoros Service
Conversation
Salesforce Service Cloud
Case (real-time thread)
1:1Khoros Conversation is the real-time messaging object. We treat each Conversation as a Case, extracting metadata and participants as a Case record with the Khoros Conversation ID stored in KhorosId__c. Message history within the Conversation is migrated as Interaction records following the same EmailMessage and Task pattern as Case Interactions. The rate limit of 60 req/min on the Khoros Conversation API requires chunked export with exponential backoff.
Khoros Service
User (Agent)
Salesforce Service Cloud
User
1:1Khoros Agent records (email, name, role assignment) map to Salesforce User. We resolve agents by email match. Any Khoros agent without a matching Salesforce User is held in a reconciliation queue for the customer's admin to provision before Case import resumes. Role assignments map to Salesforce Permission Sets or a custom role hierarchy field depending on the customer's security model.
Khoros Service
Initiative
Salesforce Service Cloud
Case Tag or Custom Field
lossyKhoros Initiatives group Case workflows under a specific business objective and have no direct Salesforce equivalent. We export initiative membership on records and map it to Salesforce Case Tags (a standard tagging feature) or a custom multi-select picklist field on Case, depending on which approach the customer's reporting structure requires. Initiative-level reporting requires a separate rebuild using Salesforce Reports and Dashboards.
Khoros Service
Campaign
Salesforce Service Cloud
Campaign + Case Tag
1:1Khoros Campaigns track marketing and social care campaign attribution on Cases and Conversations. We export campaign association as a Campaign record (Name, StartDate, Type) plus a tag on the Case linking to the Campaign. If Salesforce already has a Campaign object with overlapping data, we use CampaignMember to associate the Case or Contact with the existing Campaign record.
Khoros Service
KB Articles
Salesforce Service Cloud
KnowledgeArticle
1:1Khoros Knowledge Base articles export with structured content, categories, and visibility settings. Article body, title, and category hierarchy map to KnowledgeArticle.Title, KnowledgeArticle.UrlName, and DataCategoryGroupAssignment. Embedded image assets in KB content are downloaded from Khoros CDN and re-uploaded to Salesforce Files (ContentDocument) with the Article ID stored in the ContentDocument's Description field for re-linking. We do not migrate KB article configuration or visibility rules as Salesforce Knowledge settings; we document the source settings for the admin to rebuild.
Khoros Service
Custom Fields
Salesforce Service Cloud
Custom Fields
lossyBoth Khoros Customer and Case objects support custom field declarations via the meta/object API, with schema varying by tenant. We call GET /meta/object/{type} for both customer and case during discovery, validate the discovered fields against a sample of records, then pre-create the Salesforce custom fields (with appropriate field types) before any data import begins. Custom fields that have no suitable Salesforce type are stored as text and documented for the customer to re-type post-migration.
| Khoros Service | Salesforce Service Cloud | Compatibility | |
|---|---|---|---|
| Customer | Contact1:1 | Fully supported | |
| Case | Case1:1 | Fully supported | |
| Author | Contact (linked profile)1:1 | Fully supported | |
| Interaction | EmailMessage + Task1:many | Fully supported | |
| Conversation | Case (real-time thread)1:1 | Fully supported | |
| User (Agent) | User1:1 | Fully supported | |
| Initiative | Case Tag or Custom Fieldlossy | Fully supported | |
| Campaign | Campaign + Case Tag1:1 | Fully supported | |
| KB Articles | KnowledgeArticle1:1 | Mapping required | |
| Custom Fields | Custom Fieldslossy | Mapping required |
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.
Khoros Service gotchas
Care API rate limits throttle bulk migration speed
Custom field schema must be discovered before migration scoping
Support portal transition disrupted ticket management
Aurora AI migration path for Community Classic is vendor-managed
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 schema audit
We audit the source Khoros portal for Customer and Case record volumes, custom field declarations via GET /meta/object/{type} for both objects, the list of active Brands and Initiatives, Agent count and email list, KB article count and content volume, and existing Salesforce org structure (edition, existing Contact and Case fields, Teams configuration). The discovery output is a written migration scope document with a custom field mapping table, Salesforce schema modification plan, and a project timeline based on export record counts.
Salesforce schema preparation
We pre-create all required Salesforce custom fields (with __c suffix and appropriate field types), configure Case Tags or a custom picklist for Khoros Initiative scoping, provision Salesforce Teams for Brand mapping, and set up Record Types and Page Layouts for the migrating Case data. Schema modifications deploy via Salesforce metadata API into a Sandbox org first for validation. This step runs in parallel with the Khoros export preparation.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox using a representative data sample (typically 5-10% of production record counts). The customer's Service Cloud admin reviews record counts (Customers in, Contacts in, Cases in, Interactions exploded to EmailMessage and Task counts), spot-checks 25-50 random records against the Khoros source, and signs off on the field mapping and tagging strategy before production migration begins. Mapping corrections happen in Sandbox, not production.
Agent and User provisioning reconciliation
We extract every distinct Khoros Agent referenced on Case and Conversation records and match by email against the Salesforce destination org's User table. Agents without a matching Salesforce User go to a reconciliation queue. The customer's Salesforce admin provisions missing Users and assigns appropriate Permission Sets. Migration cannot proceed past Case import because OwnerId references require an active User record.
Production migration in dependency order
We run production migration in record-dependency order: Salesforce Users (validated from step 4), Contacts (from Khoros Customers, with Brand mapped to Teams), Cases (with Author profiles linked, Initiative membership tagged, and OwnerId resolved), Interaction history (exploded to EmailMessage and Task via Bulk API 2.0), Campaigns (mapped to Salesforce Campaign with Case associations), KB Articles (with image assets re-uploaded to Salesforce Files), then Custom Fields last for any remaining data. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation rebuild handoff
We freeze Khoros writes during cutover, run a final delta migration of any Cases or Interactions modified during the migration window, then enable Salesforce Service Cloud as the system of record. We deliver the automation inventory document to the customer's admin team listing every active Khoros routing rule, triage rule, and escalation rule with its trigger conditions, actions, and recommended Salesforce Flow equivalent. We support a one-week hypercare window where we resolve reconciliation issues raised by the service team. We do not rebuild Khoros automations as Salesforce Flow inside the migration scope.
Platform deep dives
Khoros Service
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 Khoros Service 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
Khoros Service: 60 req/min on Author and Conversation APIs; 20 req/min on Analytics Reports API.
Data volume sensitivity
Khoros Service 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 Khoros Service to Salesforce Service Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Khoros Service 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 Khoros Service
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.