Helpdesk migration
Field-level mapping, validation, and rollback between eTicket and Salesforce Service Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Service Cloud.
eTicket
Source
Salesforce Service Cloud
Destination
Compatibility
8 of 10
objects map 1:1 between eTicket and Salesforce Service Cloud.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from eTicket to Salesforce Service Cloud is a platform-level migration, not a ticket copy. eTicket uses a flat Ticket object with Conversations, Attachments, Tags, and custom fields; Salesforce Service Cloud uses the Case object as the core, with Contacts on Cases, Accounts as the organizational hierarchy, and Knowledge Base articles in a separate Content management model. We map eTicket Tickets to Cases, eTicket Customers to Contacts (with optional Account resolution), and eTicket Conversations to Case Comments and EmailMessage records. We flag custom eTicket fields that have no direct Salesforce equivalent and resolve agent-to-User lookups before import. Historical timestamps, priority, and status map to Case fields. Attachments migrate as Salesforce ContentDocument records linked to the parent Case. We do not migrate eTicket workflows, automations, or macros; we deliver a written inventory of these for the customer's Salesforce admin to rebuild in Flow. Knowledge Base articles migrate to Salesforce Knowledge if the destination org has it enabled; otherwise we deliver a structured export for manual upload.
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
eTicket platform overview
Scorecard, SWOT, gotchas, and pricing for eTicket.
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 eTicket 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.
eTicket
Ticket
Salesforce Service Cloud
Case
1:1eTicket Tickets map to Salesforce Case records. Ticket subject becomes Case Subject, ticket description becomes Case Description, ticket status (Open, Pending, Resolved, Closed) maps to Case Status with a custom status value set matching eTicket's state machine. Priority (Low, Medium, High, Urgent) maps to Case Priority. Created timestamp preserves as Case.CreatedDate via Bulk API with explicit date mapping. Ticket ID is stored in a custom text field eticket_id__c for cross-reference during reconciliation.
eTicket
Conversation
Salesforce Service Cloud
CaseComment
1:1eTicket Conversations (internal and external messages threaded on a ticket) map to Salesforce CaseComment records. The CommentBody, CreatedBy, and CreatedDate migrate for each conversation entry. Public/internal visibility on eTicket maps to a custom IsInternal__c flag on CaseComment to preserve agent-only notes. Threading order is preserved by sorting on the original eTicket conversation timestamp before insert.
eTicket
Customer
Salesforce Service Cloud
Contact
1:1eTicket Customers map to Salesforce Contact records. Email, FirstName, LastName (extracted from the name field if eTicket stores it as a single string), and phone migrate directly. If eTicket stores a company name on the customer, we resolve it to an Account lookup. Any customer without an email is flagged for manual review because Salesforce requires an email for Contact records by default.
eTicket
Customer (company link)
Salesforce Service Cloud
Account
1:1If eTicket stores a company or organization field on the Customer record, we create a Salesforce Account record for each unique company value before Contact import and link the Contact to the Account via AccountId. The Account.Name maps from the eTicket company field. This creates the organizational hierarchy that Salesforce reporting relies on.
eTicket
Agent
Salesforce Service Cloud
User
1:1eTicket Agents map to Salesforce User records. We resolve agents by email match against the destination org's User table. Any eTicket Agent without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Active/inactive status on the User maps from eTicket's agent active flag.
eTicket
Ticket Assignment
Salesforce Service Cloud
Case.OwnerId
1:1eTicket's direct ticket-to-agent assignment maps to Salesforce Case.OwnerId. If the destination org uses Salesforce Queues for case distribution, we map agent-assigned tickets to the appropriate Queue by matching the agent's team in eTicket to a Queue with the same name. Omni-Channel routing can be enabled post-migration as a separate configuration step.
eTicket
Attachment
Salesforce Service Cloud
ContentDocument
1:1eTicket file attachments migrate to Salesforce ContentDocument records linked to the parent Case via ContentDocumentLink. Each attachment's filename, content type, and binary content map to ContentVersion (Title, FileType, VersionData) and then to ContentDocument via the Salesforce two-object attachment model. We chunk large attachment batches to stay within Salesforce's ContentDocument file size limits per upload.
eTicket
Tag
Salesforce Service Cloud
Case.Tag__c (custom multi-select)
lossyeTicket tags stored on tickets migrate to a custom multi-select picklist field on Case. We extract the distinct tag values across all tickets, create the picklist entries during schema setup, and populate Tag__c during the Case import. Tags used for categorization rather than filtering migrate as-is; if tag cardinality exceeds picklist limits, we recommend splitting into multiple single-select custom fields.
eTicket
Custom Ticket Field
Salesforce Service Cloud
Custom Case Field
lossyeTicket custom fields on tickets require pre-creation in Salesforce before migration. We audit every eTicket custom field during discovery, map field types (text, number, date, dropdown) to equivalent Salesforce field types, and create the Salesforce custom fields (with __c suffix) in the destination org's Case object before data import. Fields with no direct Salesforce equivalent are flagged in the discovery report and resolved with the customer before schema finalization.
eTicket
KB Article
Salesforce Service Cloud
KnowledgeArticleVersion
1:1If eTicket has Knowledge Base articles and the destination org has Salesforce Knowledge enabled, we migrate articles to KnowledgeArticleVersion records. Article title, body content, and summary map to the Salesforce Knowledge data model. Article categories or topics map to Salesforce Data Category Group assignments. If Salesforce Knowledge is not enabled, we deliver a structured CSV export of the KB content for manual upload or a separate Knowledge enablement engagement.
| eTicket | Salesforce Service Cloud | Compatibility | |
|---|---|---|---|
| Ticket | Case1:1 | Fully supported | |
| Conversation | CaseComment1:1 | Fully supported | |
| Customer | Contact1:1 | Fully supported | |
| Customer (company link) | Account1:1 | Fully supported | |
| Agent | User1:1 | Fully supported | |
| Ticket Assignment | Case.OwnerId1:1 | Fully supported | |
| Attachment | ContentDocument1:1 | Fully supported | |
| Tag | Case.Tag__c (custom multi-select)lossy | Fully supported | |
| Custom Ticket Field | Custom Case Fieldlossy | Fully supported | |
| KB Article | KnowledgeArticleVersion1: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.
eTicket gotchas
Project is effectively dormant — latest release dates to 2008
No public API or vendor-supported export tooling
Attachments live on disk and can be orphaned
No SLA, automation, or modern routing engine
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 scoping call
We audit the source eTicket instance for ticket volume, customer count, agent count, custom field definitions (name, type, options), attachment count and total file size, conversation thread depth, KB article count, and any active routing rules or automations. We pair this with a Salesforce edition check: which Service Cloud edition the destination org runs, whether Salesforce Knowledge is enabled, and what add-ons (Omni-Channel, Field Service) are active. The discovery output is a written migration scope with object mapping, custom field schema for Salesforce, and a ticket of every eTicket automation requiring rebuild in Salesforce Flow.
Schema provisioning in Salesforce Sandbox
We create Salesforce custom fields on the Case object for every eTicket custom field using the type mapping defined in discovery. We create a custom picklist field for tags and a text field for the eTicket ticket ID. If KB articles are in scope and Salesforce Knowledge is not yet enabled, we scope the Knowledge enablement as a separate pre-migration step with the customer's Salesforce admin. All schema is validated in Sandbox before any data moves.
Sandbox migration and reconciliation
We run a representative migration into the Salesforce Sandbox using a sample of production ticket volume (typically 10-20 percent of records). The customer's support operations lead spot-checks 25-50 cases against the eTicket source, verifies that conversation threads appear in correct order, confirms attachment filenames, and validates custom field values. Any mapping corrections are applied before the production migration begins. This step catches schema gaps and threading issues at zero risk to production data.
Agent and customer reconciliation
We extract every distinct eTicket Agent email and resolve by email match against the Salesforce destination org's User table. Agents without a matching User go to a reconciliation queue for the customer's admin to provision. We extract every distinct eTicket Customer email and match to existing Salesforce Contacts if present; new customers create new Contacts. Any customers stored without an email are flagged for manual resolution because Salesforce requires an email for Contact records.
Production migration in dependency order
We run production migration in record-dependency order: Users (validated before start), Accounts (from eTicket company values), Contacts (with AccountId resolved), Cases (with OwnerId resolved to User or Queue, and custom fields populated), CaseComments (sorted by original eTicket timestamp, with IsInternal flag), Attachments (via ContentVersion then ContentDocumentLink), Tags (multi-select picklist), KB Articles (if Salesforce Knowledge enabled). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation rebuild handoff
We freeze eTicket writes during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce Service Cloud as the system of record. We deliver the eTicket automation inventory document to the customer's Salesforce admin for Flow rebuild. We support a one-week hypercare window for reconciliation issues. We do not rebuild eTicket automations as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
eTicket
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 eTicket 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
eTicket: Not applicable — no API surface exists..
Data volume sensitivity
eTicket 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 eTicket to Salesforce Service Cloud migration scoping. Not seeing yours? Book a call.
Walk through your eTicket 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 eTicket
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.