Helpdesk migration

Migrate from eTicket to Salesforce Service Cloud

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 logo

eTicket

Source

Salesforce Service Cloud

Destination

Salesforce Service Cloud logo

Compatibility

80%

8 of 10

objects map 1:1 between eTicket and Salesforce Service Cloud.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

eTicket logo

eTicket

What's pushing teams away

  • The project is effectively dormant — the latest documented release (1.7.3) is from October 2008, with no modern development cadence, leaving customers exposed to unpatched dependency and security issues.
  • No public API and no modern integration story — teams that want to connect helpdesk data to CRM, BI, or modern automation tools have no native path.
  • PHP and MySQL stack assumptions are dated; deploying on modern hosting often requires patching PHP compatibility issues that the upstream project does not address.
  • Limited reporting and analytics — eTicket is a basic queue-and-conversation tool, with no SLA timers, no advanced workflow, and no dashboard depth that modern helpdesks ship by default.
  • Migration paths to modern helpdesks (Zendesk, Freshdesk, Help Scout) are entirely manual — there is no published export tool or supported migration partner, so teams must scrape the MySQL database directly.

Choosing

Salesforce Service Cloud logo

Salesforce Service Cloud

What's pulling them in

  • Deep Salesforce ecosystem integration with Sales Cloud, Marketing Cloud, and custom Apex apps creates a single pane of glass for enterprise customer data and cross-functional workflows.
  • Omnichannel case routing — email, chat, phone, social, and messaging — unified under one case object means agents do not lose context when customers switch channels mid-interaction.
  • AI for customer service (Einstein AI / Agentforce) offers automated case classification, suggested replies, and chatbot routing that reduces Tier-1 ticket volume without manual rule authoring.
  • Entitlement and milestone tracking enforces SLA compliance natively, automatically calculating breach windows and surfacing violations to supervisors in dashboards.
  • Salesforce's massive AppExchange ecosystem provides pre-built connectors, industry-specific managed packages, and third-party tools that extend Service Cloud beyond its out-of-box capabilities.

Object mapping

How eTicket objects map to Salesforce Service Cloud

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

maps to

Salesforce Service Cloud

Case

1:1
Fully supported

eTicket 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

maps to

Salesforce Service Cloud

CaseComment

1:1
Fully supported

eTicket 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

maps to

Salesforce Service Cloud

Contact

1:1
Fully supported

eTicket 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)

maps to

Salesforce Service Cloud

Account

1:1
Fully supported

If 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

maps to

Salesforce Service Cloud

User

1:1
Fully supported

eTicket 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

maps to

Salesforce Service Cloud

Case.OwnerId

1:1
Fully supported

eTicket'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

maps to

Salesforce Service Cloud

ContentDocument

1:1
Fully supported

eTicket 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

maps to

Salesforce Service Cloud

Case.Tag__c (custom multi-select)

lossy
Fully supported

eTicket 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

maps to

Salesforce Service Cloud

Custom Case Field

lossy
Fully supported

eTicket 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

maps to

Salesforce Service Cloud

KnowledgeArticleVersion

1:1
Fully supported

If 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.

Gotchas + challenges

What specifically takes care here

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 logo

eTicket gotchas

High

Project is effectively dormant — latest release dates to 2008

High

No public API or vendor-supported export tooling

Medium

Attachments live on disk and can be orphaned

Medium

No SLA, automation, or modern routing engine

Salesforce Service Cloud logo

Salesforce Service Cloud gotchas

High

Data Export 512MB file size cap breaks large org exports

High

API Daily Request Limits vary by license edition

High

No automatic data backup in base Salesforce

Medium

Picklist dependencies silently break records when unmapped

Medium

Workflow rules fire unexpectedly during data load

Pair-specific challenges

  • Custom fields require explicit Salesforce schema creation

    eTicket custom fields are key-value pairs with no upfront schema definition. Salesforce requires every custom field to be created in Setup before data import. We audit all eTicket custom fields during discovery, map each to a typed Salesforce field, and create the schema in a Sandbox before production migration. Fields that cannot map directly (eTicket dropdown values that exceed Salesforce picklist limits, or multi-value arrays that have no Salesforce equivalent) are flagged in the scoping document for a decision before migration proceeds.

  • Ticket threading order requires timestamp-based sorting at import

    eTicket stores conversations in reverse-chronological order in the UI, but the underlying data may not guarantee sequence. Salesforce CaseComment requires a CreatedDate that is set at insert time. We extract the original eTicket conversation timestamp, sort the comment batch by that timestamp, and insert CaseComments in sequence. Skipping this step results in thread displays that show replies before original messages, which misleads agents reviewing case history.

  • Attachment ContentDocument linkage must follow the two-object model

    Salesforce attachments follow a ContentVersion + ContentDocument + ContentDocumentLink three-step model. Upload to ContentVersion first (which creates a ContentDocument), then create a ContentDocumentLink linking the ContentDocument to the Case Id. eTicket attachments may have file names with characters that Salesforce rejects in ContentDocument titles. We sanitize filenames before upload and map ContentDocumentLink ShareType and Visibility fields to match the original attachment's visibility (customer-facing vs. internal-only).

  • Salesforce field-level security can reject valid imported records

    Salesforce orgs commonly enforce field-level security and validation rules that block imports on fields the migration user is not permitted to write to. We coordinate with the customer's Salesforce admin to grant the migration user write access to all Case fields, and we either disable active validation rules during load or add a migration-context bypass check. Skipping this step typically causes 5-20 percent record rejection on the first import attempt.

  • eTicket workflows and automations do not migrate to Salesforce Flow

    eTicket may have ticket routing rules, auto-assignment rules, or escalation triggers. These are configuration constructs, not data, and they do not migrate. Salesforce Flow uses a different trigger model, action library, and flow type taxonomy. We deliver a written inventory of every eTicket automation with its conditions, actions, and recommended Salesforce Flow equivalent for the customer's admin to rebuild post-migration.

Migration approach

Six steps for a successful eTicket to Salesforce Service Cloud data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

eTicket logo

eTicket

Source

Strengths

  • Free and open-source self-hosted PHP/MySQL helpdesk.
  • Email-to-ticket (pop3/pipe) and web-form ticket creation in the core distribution.
  • Skinnable to match the host website's branding.
  • Multi-lingual UI and CAPTCHA / spam filtering included.
  • Full database ownership for teams that need on-premise data control.

Weaknesses

  • Project is effectively dormant; last release in October 2008.
  • No public API or supported migration tooling — exports go through direct MySQL queries.
  • No SLA engine, no automation rules, no modern reporting.
  • PHP / MySQL stack compatibility issues on modern hosting are not addressed upstream.
  • Limited third-party community or commercial support for new deployments.
Salesforce Service Cloud logo

Salesforce Service Cloud

Destination

Strengths

  • Enterprise-grade security, compliance certifications, and audit logging available across all paid editions with Shield offering enhanced event monitoring.
  • Scalable multi-tenant cloud architecture supporting orgs from 5 users to 150,000+ seat enterprises without infrastructure management overhead.
  • Omnichannel contact center unifying email, live chat, phone, messaging, and social into a single Case timeline per customer interaction.
  • Rich workflow automation via Salesforce Flow, Process Builder, and Apex triggers enabling complex case escalation, routing, and field updates.
  • Native AI capabilities (Agentforce / Einstein) for case auto-routing, classification, suggested responses, and chatbot escalation without third-party add-ons.

Weaknesses

  • Per-seat pricing model with no contact limits creates unpredictable cost scaling for large organizations adding many agents over time.
  • No automatic data backup — organizations must purchase a third-party backup solution or build manual Data Loader exports to protect against data loss from human error, failed deployments, or integrations overwriting records.
  • Steep learning curve for non-technical users requiring dedicated admin resources and formal training investment before teams reach productive velocity.
  • Annual contract requirements and limited pro-ration on exit create significant switching cost friction, especially for organizations evaluating alternatives mid-cycle.
  • Add-on licensing (CPQ, Einstein Activity Capture, Shield, Data Cloud) can double effective per-seat cost without clear documentation of which features are included in base tiers.

Complexity grading

How hard is this migration?

Moderate Helpdesk migration. 1 of 7 objects need a manual workaround.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across eTicket and Salesforce Service Cloud.

  • Object compatibility

    D

    1 of 7 objects need a manual workaround.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    eTicket: Not applicable — no API surface exists..

  • Data volume sensitivity

    B

    eTicket doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your eTicket to Salesforce Service Cloud migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about eTicket to Salesforce Service Cloud data migrations

Answers to the questions buyers ask most during eTicket to Salesforce Service Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most migrations land between three and five weeks for accounts under 10,000 tickets and 500 customers with no Salesforce Knowledge in scope. Migrations with large attachment libraries (over 50,000 files), extensive custom field schemas, Knowledge Base article transfer, or multi-queue team structures move to eight to twelve weeks because of ContentDocument linkage work, field schema provisioning, and Knowledge article type configuration. Small migrations under 3,000 tickets with minimal custom fields can sometimes complete in two to three weeks.

Adjacent paths

Related migrations to explore

Ready when you are

Move from eTicket.
Land in Salesforce Service Cloud, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day