Helpdesk migration
Field-level mapping, validation, and rollback between Crisp and Salesforce Service Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Service Cloud.
Crisp
Source
Salesforce Service Cloud
Destination
Compatibility
5 of 10
objects map 1:1 between Crisp and Salesforce Service Cloud.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Crisp to Salesforce Service Cloud is a schema remapping, not a straight record copy. Crisp organizes customer interactions as Conversations — threaded objects that bundle Messages, a Contact reference, and operator assignments in a single workspace-scoped record. Salesforce Service Cloud uses Cases as the primary ticket object, with a separate EmailMessage table for message history and Task records for activity tracking. We resolve the conversation-to-case mapping during scoping, collapsing each Crisp Conversation into a Case with the full message history stored in Salesforce's EmailMessage and Activity tables. Operator records map to Salesforce Users by email match, and Tags from Crisp become either a custom multi-select picklist on Case or Case Labels depending on the destination org's configuration. Crisp's chatbot flows, automation rules, and canned response templates do not migrate as code — we deliver a written inventory of each for the customer's admin to rebuild in Salesforce Flow or the Service Cloud macro system.
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
Crisp platform overview
Scorecard, SWOT, gotchas, and pricing for Crisp.
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 Crisp 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.
Crisp
Conversations
Salesforce Service Cloud
Case
1:1Crisp Conversations are the primary thread object and map directly to Salesforce Service Cloud Cases. Each Conversation's website_id, contact reference, open/close state, and created_at timestamp become Case fields. We set Case Origin to match the Crisp channel metadata (chat, email, whatsapp, sms) stored on the Conversation. The conversation_id is preserved in a custom field crisp_conversation_id__c for audit and cross-reference.
Crisp
Messages
Salesforce Service Cloud
EmailMessage + Task
1:manyCrisp Messages are nested inside Conversations and include text content, attachment references, author metadata, and timestamp. We split each Message into a Salesforce EmailMessage record (the message body and attachments) linked to the parent Case, plus a Task record for the activity timeline entry. Operator-sent messages set the Salesforce User as the FromAddress; visitor-sent messages set the Contact email. Message sequence order is preserved via a custom position field.
Crisp
Contacts
Salesforce Service Cloud
Contact
1:1Crisp Contacts (available from Essentials tier upward) map to Salesforce Contact. We extract all standard fields (email, name, phone, city) plus the full set of custom properties as typed Salesforce custom fields. For Free or Mini tier accounts where the CRM module is unavailable, we confirm API key access during discovery and pull Contact data directly from the /contacts endpoint. Accounts exceeding 200,000 Contacts require sequential export chunks with ID-range filters, deduplicated on contact_id before Salesforce import.
Crisp
Operators
Salesforce Service Cloud
User
1:1Crisp Operators map to Salesforce User records by email match. We extract all distinct operators referenced in Conversations and Messages, resolve them against the destination Salesforce org's User table, and flag any operators without a matching User in a reconciliation queue. The customer's admin provisions missing Users before record migration proceeds. Role information (admin vs agent) maps to Salesforce Profile and we flag if the operator count exceeds the destination plan's seat allowance.
Crisp
Tags
Salesforce Service Cloud
Case Label or Multi-Select Picklist
lossyCrisp Tags are applied to Conversations to categorize them (urgent, billing, onboarding). We export all Tags as a label set and map them to either Salesforce Case Labels (Service Cloud Lightning) or a custom multi-select picklist field on Case, depending on the destination org's feature level. The customer chooses the target format during scoping.
Crisp
Segments
Salesforce Service Cloud
Custom fields + Campaign List
lossyCrisp Segments are dynamic Contact filter definitions built from CRM properties on Essentials+ accounts. We preserve the segment rule definitions as structured metadata in a written inventory document. Segments do not map directly to a Salesforce object; the customer's admin rebuilds equivalent Salesforce Reports, Campaigns, or List Views from the documented rule definitions.
Crisp
Canned Responses
Salesforce Service Cloud
Email Template or Macro
1:1Crisp Canned Responses are pre-written operator templates with %placeholder% variable syntax. We export them as plain-text templates with placeholders preserved and map them to Salesforce Email Templates or Macros. The %placeholder% syntax requires manual adaptation to Salesforce's {!Contact.FirstName} merge field format during the post-migration review step.
Crisp
Attachments
Salesforce Service Cloud
ContentDocument + ContentVersion
1:1File attachments on Crisp Messages are stored as URLs referencing Crisp's file storage. We download each attachment, re-upload to Salesforce as ContentVersion (the file binary), create a ContentDocument record, and link it to the parent Case and EmailMessage via ContentDocumentLink. This preserves the attachment as a Salesforce native file rather than an external URL reference.
Crisp
Websites
Salesforce Service Cloud
Configuration inventory (not migrated)
lossyA Crisp Website represents a configured chat widget tied to a domain with routing rules, enabled channels, and widget behavior settings. We extract the Website configuration as a structured snapshot for the customer's admin to reference when setting up Salesforce Embedded Service Chat or a custom chat widget in the destination. Widget settings do not migrate as code because the destination chat solution requires separate configuration in Salesforce Setup.
Crisp
Chat Widget Settings
Salesforce Service Cloud
Configuration inventory (not migrated)
lossyCrisp's chat widget theme, color scheme, greeting message, and behavior rules are tied to each Website object. We export these as configuration snapshots. Salesforce Embedded Service Chat requires separate setup via Setup > Embedded Service Deployments, so we deliver the Crisp widget settings as a written handoff document the customer's admin uses to configure the Salesforce equivalent.
| Crisp | Salesforce Service Cloud | Compatibility | |
|---|---|---|---|
| Conversations | Case1:1 | Fully supported | |
| Messages | EmailMessage + Task1:many | Fully supported | |
| Contacts | Contact1:1 | Mapping required | |
| Operators | User1:1 | Mapping required | |
| Tags | Case Label or Multi-Select Picklistlossy | Fully supported | |
| Segments | Custom fields + Campaign Listlossy | Mapping required | |
| Canned Responses | Email Template or Macro1:1 | Mapping required | |
| Attachments | ContentDocument + ContentVersion1:1 | Fully supported | |
| Websites | Configuration inventory (not migrated)lossy | Mapping required | |
| Chat Widget Settings | Configuration inventory (not migrated)lossy | 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.
Crisp gotchas
Contact export is gated behind the Essentials tier
Contact export ceiling of 200K records
Multi-level rate limits on the REST API
Seat limits constrain operator record exports
Canned Responses have Crisp-specific variable syntax
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 tier verification
We audit the source Crisp workspace across plan tier (Free/Mini/Essentials/Plus), active operator count, conversation volume (open and resolved), contact dataset size, active Tags and Segments, chatbot flow list, and canned response count. We confirm API key availability and scope for Free/Mini tier accounts. We also verify the destination Salesforce Service Cloud edition and confirm that Enable Set Audit Fields can be activated by the customer's admin. The discovery output is a written scope document with record counts, a mapping plan, and a pre-migration checklist for Salesforce admin actions.
Schema pre-creation in Salesforce
We pre-create the destination schema in Salesforce before any data moves. This includes custom fields on Case (c Crisp_conversation_id__c, crisp_channel__c, crisp_website_id__c), custom fields on Contact for any Crisp custom Contact properties, a multi-select picklist or Case Labels field for Crisp Tags, and a custom picklist for Crisp channel origin mapping. All fields use the Salesforce API naming standard (__c suffix) and are deployed to a Sandbox org first for validation.
Operator-to-User reconciliation
We extract every distinct Crisp Operator referenced in Conversations and Messages and match them by email against the destination Salesforce org's User table. Operators without a matching User go to a reconciliation queue for the customer's admin to provision. Migration cannot proceed past Case and EmailMessage import because OwnerId references are required on standard Case records. We flag any operator count that exceeds the destination Salesforce plan's seat allowance so the customer can deactivate accounts or upgrade before migration.
Conversation decomposition and sandbox migration
We run a full conversation-to-case decomposition migration into a Salesforce Sandbox. Each Crisp Conversation becomes a Case; each Message becomes an EmailMessage linked to the Case plus a Task for the activity timeline. Attachment URLs are downloaded and re-uploaded as ContentVersion records. The customer's admin validates 25-50 randomly selected Cases against the Crisp source for message ordering, channel attribution, and operator assignment before sign-off.
Contact migration with chunking and deduplication
We export Crisp Contacts via the REST API /contacts endpoint in sequential batches. Accounts with more than 200,000 Contacts use ID-range filters to chunk exports, deduplicated on contact_id across passes. All custom Contact properties from Crisp become typed Salesforce custom fields on Contact. We run Contact import after Case import so that the Contact lookup on Case is satisfied at insert time. Email addresses serve as the dedupe key.
Canned responses, tags, and configuration inventory delivery
We export Canned Responses as plain-text templates with Crisp %placeholder% syntax intact and map them to Salesforce Email Templates or Macros. Tags are mapped to Case Labels or the configured multi-select picklist. We deliver the Chatbot Flow inventory and Website/Widget Configuration snapshot as written documents for the customer's admin to use during Salesforce Flow and Embedded Service Chat setup. We do not rebuild these in Salesforce as part of the migration scope.
Production cutover and validation
We freeze Crisp writes during the cutover window, run a final delta migration of any Conversations or Contacts modified during the migration, then enable Salesforce Service Cloud as the system of record. We perform a row-count reconciliation across all objects and deliver a final migration report. We provide a one-week hypercare window to resolve any record-level issues reported by the customer's support team. Workflow, chatbot, and automation rebuilds remain a separate engagement or internal admin task.
Platform deep dives
Crisp
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 Crisp 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
Crisp: Multi-tier: load balancer (permissive), API global (per IP+user), API route (per IP+user, more restrictive), plugin quota (daily for permanent tokens). No exact published numbers — 429 responses with Retry-After header indicate exhaustion..
Data volume sensitivity
Crisp 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 Crisp to Salesforce Service Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Crisp 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 Crisp
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.