Helpdesk migration
Field-level mapping, validation, and rollback between Siit and Salesforce Service Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Service Cloud.
Siit
Source
Salesforce Service Cloud
Destination
Compatibility
8 of 11
objects map 1:1 between Siit and Salesforce Service Cloud.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Siit to Salesforce Service Cloud is an ITSM platform migration that replaces a Slack and Teams-native conversational helpdesk with a traditional portal-based service cloud. Siit organizes work around Admins who resolve requests and uses a per-Admin billing model; Salesforce bills per user with Service Cloud licenses that differentiate agents, supervisors, and portal customers. We extract Siit Requests, People records, Services catalog items, Equipment device records, and communication threads via Siit's Bearer-token REST API, then map them into Salesforce Case, Contact, Asset, and custom objects. Inbox routing maps to Salesforce Queues and Assignment Rules. SLA data exports as workflow metadata and gets rebuilt as Salesforce Entitlement Processes and Milestones. Siit Workflow definitions, including trigger conditions and approval chains, are documented for the customer's admin to rebuild in Salesforce Flow; we do not migrate them as executable 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
Siit platform overview
Scorecard, SWOT, gotchas, and pricing for Siit.
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 Siit 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.
Siit
Request
Salesforce Service Cloud
Case
1:1Siit Requests map to Salesforce Case as the core ticket object. title becomes Subject, description migrates as Description, status (open, pending, resolved, closed) maps to Case Status picklist values we pre-configure, priority maps to Case Priority, and submitted_from (employee_portal, slack, mail, ms_teams) becomes a custom Case field channel__c to preserve the intake source. We resolve assignee_admin_uid to a Salesforce User record via the People-to-User mapping before Case insert so that OwnerId is satisfied. SLA timestamps (first_replied_at, first_completed_at) migrate as custom Case fields since standard Salesforce Case timestamps are set by trigger logic, not direct assignment.
Siit
People
Salesforce Service Cloud
Contact
1:1Siit People records store employee directory data including department, team, office location, legal entity, employment type, and lifecycle stage. For Service Cloud, the relevant People fields map to Contact: department, team, and location map to custom Contact fields; legal_entity and employment_type map to custom fields. Employees who only submit requests in Siit map to Contact without a Salesforce User license; Admins who resolve requests map to a Salesforce User with the appropriate Service Cloud Profile. We use email as the deduplication key during import.
Siit
Services
Salesforce Service Cloud
Custom Object or Salesforce Knowledge
1:1Siit Services represent IT catalog items employees request, each with configuration metadata and category assignments. Salesforce Service Cloud does not have a native catalog object equivalent, so we create a custom object service_catalog__c with fields for Name, Category, Description, and Workflow_Reference__c (carrying the Siit workflow association). The customer can alternatively use Salesforce Knowledge articles as a self-service catalog; we scope the preferred approach during discovery based on whether the catalog needs entitlement linkage.
Siit
Equipment
Salesforce Service Cloud
Asset
1:1Siit Equipment records represent physical and virtual devices with lifecycle attributes, ownership details, and key configuration fields. Equipment maps directly to Salesforce Asset, which supports Name, Status (Planned, In Stock, In Use, In Maintenance, Retired), InstallDate, PurchaseDate, SerialNumber, and a Link to a Contact or Account as the asset owner. We resolve target_uid from the Siit Equipment record to the corresponding Contact or Account Salesforce record via the People mapping.
Siit
Applications
Salesforce Service Cloud
Custom Object app_inventory__c
1:1Siit Application inventory tracks software assets with ownership fields, lifecycle status, and category metadata. Application ownership linking to employee or equipment records maps to a custom object app_inventory__c with lookup relationships to Asset (for device linkage) and Contact (for user ownership). lifecycle_status becomes a picklist field with values matching the Siit source values, preserving the software asset taxonomy the team uses for ITAM reporting.
Siit
Communication
Salesforce Service Cloud
EmailMessage
1:1Siit Communication exports include outbound messages and satisfaction survey responses linked to Requests. Each thread maps to Salesforce EmailMessage records linked to the parent Case via the WhatId field. We set MessageDate to the original Siit timestamp and preserve the satisfaction survey score in a custom Case field csat_score__c. Outbound messages are inserted as EmailMessage with direction = Outgoing. If the customer used Slack or Teams threaded messages within Siit, we flatten the thread into a chronological sequence of EmailMessage records to preserve context in the Case timeline.
Siit
Inboxes
Salesforce Service Cloud
Queue
lossySiit Inboxes route requests to specific teams or queues. We map each Siit Inbox to a Salesforce Queue with the Queue Name matching the Inbox title and the Queue Type set to Cases. During Case migration, we assign cases to the appropriate Queue based on the Inbox assignment in Siit. If the customer used Inbox-level SLA configurations, those translate to Salesforce Entitlement Processes linked to the Queue via Assignment Rules.
Siit
SLA Data
Salesforce Service Cloud
Entitlement Process and Business Hours
lossySiit Request records include first_replied_at and first_completed_at timestamps, and SLA timers and escalation configurations export as part of workflow and request data. We rebuild these in Salesforce as Entitlement Processes with First Response Time and Next Response Time milestones, using Business Hours for working-hour calculations. The original Siit SLA status (met, breached, in_progress) migrates as a custom Case field original_sla_status__c to preserve the audit trail.
Siit
Tags
Salesforce Service Cloud
Multi-Select Picklist
lossySiit Tags are associated with Requests via tag_uids arrays. We extract all unique tags during the migration scan and create a Salesforce multi-select picklist field tag__c on Case with each distinct Siit tag as a picklist value. Tags used for categorization and filtering preserve the taxonomy teams rely on for reporting. If there are more than 150 unique tags, we use a custom object tag__c with a junction object casetag__c to avoid Salesforce multi-select picklist limits.
Siit
Custom Form Inputs
Salesforce Service Cloud
Custom Case Fields
1:1Siit Requests support custom_form_inputs as key-value label/value pairs with no fixed schema per request type and organization. We extract all unique custom field labels during the migration scan and create Salesforce custom fields on Case (custom_<label>__c) with appropriate types: text fields for string values, number fields for numeric values, and date fields for date values. If a label contains special characters, we sanitize it to a Salesforce-valid API name. Where the destination Salesforce edition has a field limit, we serialize remaining custom inputs as a structured JSON blob in a custom long-text field custom_inputs_raw__c.
Siit
People (Admin seat type)
Salesforce Service Cloud
User
1:1Siit Admins are the billable seat type in Siit and must be provisioned in Salesforce as User records with the appropriate Service Cloud license (Agent, Supervisor, or Lightning Experience depending on role). We use email as the matching key between Siit People records and Salesforce Users. Users without a matching Salesforce User go to a reconciliation queue for the customer's admin to provision before record import resumes, because Case.OwnerId requires a valid User or Queue reference at insert time.
| Siit | Salesforce Service Cloud | Compatibility | |
|---|---|---|---|
| Request | Case1:1 | Fully supported | |
| People | Contact1:1 | Fully supported | |
| Services | Custom Object or Salesforce Knowledge1:1 | Fully supported | |
| Equipment | Asset1:1 | Fully supported | |
| Applications | Custom Object app_inventory__c1:1 | Fully supported | |
| Communication | EmailMessage1:1 | Fully supported | |
| Inboxes | Queuelossy | Mapping required | |
| SLA Data | Entitlement Process and Business Hourslossy | Fully supported | |
| Tags | Multi-Select Picklistlossy | Fully supported | |
| Custom Form Inputs | Custom Case Fields1:1 | Mapping required | |
| People (Admin seat type) | User1: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.
Siit gotchas
Admin-based pricing is migration-critical for billing accuracy
Workflow state and logic do not transfer automatically
Open API requires scoping permission before migration access
Custom form inputs have no stable schema across requests
Billing ownership is restricted to the account owner
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 API credential validation
We audit the Siit tenant across plan tier, total Request count, active Inbox count, People record volume, Services catalog size, Equipment and Application inventory, active Workflow list, and communication thread volume. We request Siit API credentials during discovery and run a test batch against the Siit REST API to validate pagination limits, response field availability, and any undocumented rate limits. If the API is unavailable at the required plan tier, we fall back to CSV exports from Siit's Reporting section and document the field coverage difference in the discovery output. We pair the Siit audit with a Salesforce Service Cloud edition assessment and Service Cloud license count estimation based on the Admin-to-User provisioning split.
Schema design and Queue configuration
We design the Salesforce destination schema in a Sandbox org before any production migration. This includes provisioning custom fields on Case for custom_form_inputs, creating the service_catalog__c and app_inventory__c custom objects with their field sets, configuring Salesforce Queues (one per Siit Inbox), designing Entitlement Processes and Business Hours for SLA translation, and creating the csat_score__c and original_sla_status__c custom fields for satisfaction and SLA audit data. We configure Case Record Types if the customer has multiple request categories that require different Page Layouts or Business Hours. Schema is deployed via Salesforce metadata API or change set.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy) using a representative data volume. The customer's Service Desk manager reconciles record counts (Cases in, Contacts in, Assets in, custom object records in), spot-checks 25-50 random Cases against the Siit source for field accuracy and timestamp correctness, and validates that Inbox-to-Queue routing produced the correct Case distribution. SLA timestamp translation is spot-checked for any time zone discrepancies. The customer signs off the schema and mapping before production migration begins.
User provisioning and Owner reconciliation
We extract every distinct Admin from Siit People records and match by email against the Salesforce destination org's User table. Siit Admins who resolve requests are provisioned as Salesforce Users with the appropriate Service Cloud license (Agent, Supervisor, or both). Siit People records classified as non-admin employees (submitters only) map to Contact records without a Salesforce User license. Any Siit Admin without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision before Case migration resumes, because Case.OwnerId is required at insert time.
Production migration in dependency order
We run production migration in record-dependency order: Salesforce Users (validated by admin), Queues (configured), Contacts (People mapping with dedupe by email), Cases (with OwnerId resolved to Contact, Queue, or User, with channel__c, SLA fields, csat_score__c, and original_sla_status__c populated), Assets (Equipment mapping with ownership lookups resolved), service_catalog__c records, app_inventory__c records, EmailMessage records via Bulk API 2.0 linked to Cases, and Tags mapped to multi-select picklist fields. Each phase emits a row-count reconciliation report before the next phase begins. We use Salesforce Bulk API 2.0 with chunking and exponential backoff on API limit responses for high-volume Case and EmailMessage phases.
Cutover, delta sync, and Workflow inventory handoff
We freeze Siit writes during the cutover window, 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 Siit Workflow inventory document to the customer's admin team as the specification for Salesforce Flow rebuilds. We provide a one-week hypercare window for reconciliation issues raised by the service desk team. We do not rebuild Siit Workflows as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Siit
Source
Strengths
Weaknesses
Salesforce Service Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. 1 of 7 objects need a manual workaround.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Siit 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
Siit: Not publicly documented; varies by plan tier.
Data volume sensitivity
Siit 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 Siit to Salesforce Service Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Siit 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 Siit
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.