Helpdesk migration
Field-level mapping, validation, and rollback between Crisp and Gorgias. We move data and schema; workflows are rebuilt natively in Gorgias.
Crisp
Source
Gorgias
Destination
Compatibility
8 of 12
objects map 1:1 between Crisp and Gorgias.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Moving from Crisp to Gorgias is a philosophical migration as much as a data migration. Crisp treats every customer message as a conversation thread without ticket numbers; Gorgias uses a ticket-centric model with explicit open, pending, resolved, and closed states. We transform Crisp conversation states (active, resolved, unread) into Gorgias ticket statuses during the migration load so that historical threads land with correct states on day one. Contact records migrate from Crisp's CRM module (Essentials tier or higher required for UI export; API access available with a key at any tier) with all custom properties carried as typed fields in Gorgias. Operators map to Gorgias agents by email match, and we flag any operator count that exceeds the destination plan's seat allowance before migration. Chat widget settings, chatbot configuration, Canned Responses with Crisp %placeholder% syntax, and website routing rules do not migrate as configuration; we deliver a written inventory of these for the customer's admin to rebuild in Gorgias.
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.
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 Gorgias, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Crisp
Conversations
Gorgias
Ticket
1:1Crisp Conversations map to Gorgias Tickets. The primary transform maps Crisp conversation state (active, resolved, unread) to Gorgias ticket status (open, pending, resolved, closed). We preserve the Crisp conversation_id as an external_id field on the Gorgias ticket for cross-referencing. All nested Messages migrate as ticket conversation entries in chronological order, with author attribution (operator versus visitor) preserved as the ticket message author metadata.
Crisp
Contacts
Gorgias
Customer
1:1Crisp Contacts (CRM module, Essentials tier or higher) map to Gorgias Customers. Standard fields (email, name, phone) map directly. All Crisp custom properties migrate as typed Gorgias Customer attributes (string, boolean, date, number). For accounts on Crisp Free or Mini tier without CRM UI access, we extract contacts via the REST API /contacts endpoint using an API key, which is accessible at any tier. Accounts exceeding 200,000 contacts require sequential API chunks with date or ID-range filters; we deduplicate on contact_id across passes and reassemble before loading.
Crisp
Messages
Gorgias
Ticket Message
1:1Messages are nested inside Crisp Conversations and include text body, attachment references, and author metadata. Each message migrates as a ticket conversation entry in Gorgias, preserving the message body, author identity (operator or visitor), timestamp, and any inline attachment references. Attachment URLs pointing to Crisp file storage are re-hosted to Gorgias storage during migration so that inline images and files remain accessible in the ticket view.
Crisp
Operators
Gorgias
Agent
1:1Crisp Operators map to Gorgias Agents by email match. Display name, email, and role (admin versus operator) migrate. We flag any operator count that exceeds the destination Gorgias plan's seat allowance before migration, and the customer decides whether to deactivate operators in Crisp before migration or upgrade the destination plan.
Crisp
Tags
Gorgias
Ticket Tag
1:1Crisp Tags applied to Conversations migrate as Gorgias ticket tags. Tags are carried as label strings and associated with the migrated ticket threads. The customer reviews the resulting tag set in Gorgias post-migration to consolidate or rename any tags that do not map cleanly to the destination naming convention.
Crisp
Segments
Gorgias
Customer Filter (manual rebuild)
lossyCrisp Segments are dynamic Contact filters defined by rule sets against Contact properties (Essentials tier and above). We preserve the segment rule definitions as structured metadata in the migration inventory. Gorgias does not have an equivalent dynamic segment object; customer filters are defined per-rule inside the platform. We deliver a written list of each Crisp Segment with its rule logic for the customer's admin to rebuild as Gorgias customer filters or as a basis for macro and automation triggers.
Crisp
Canned Responses
Gorgias
Saved Reply
lossyCrisp Canned Responses use %placeholder% variable syntax (for example, %session.nickname%). Gorgias Saved Replies use a different variable format. We export Canned Responses as plain text with placeholders intact and flag them for manual review in Gorgias so the customer's admin can adapt them to the destination variable format. This is a configuration inventory item, not an automated migration.
Crisp
Websites
Gorgias
Channel Configuration (manual)
lossyA Crisp Website represents a configured chat widget tied to a domain, holding widget settings, enabled channels, and routing rules. We extract Website configuration as a structured snapshot and deliver it as a written inventory. Chat widget theme, color, greeting message, and routing behavior do not migrate automatically to Gorgias; the customer's admin rebuilds these in Gorgias channel and inbox settings.
Crisp
Attachments
Gorgias
Ticket Attachment
1:1File attachments uploaded to Crisp Messages are stored as URLs referencing Crisp's file storage. We preserve attachment URLs and re-upload files to Gorgias storage during migration. All attachments land as ticket-level attachments on the corresponding migrated ticket, with the original filename and content type preserved.
Crisp
Chat Widget Settings
Gorgias
Inbox and Channel Settings (manual)
lossyCrisp chat widget has theme, color, greeting message, and behavior configuration tied to each Website. We extract widget settings as configuration snapshots. Gorgias channel settings for web chat (appearance, trigger rules, greeting) are configured separately inside the platform. We deliver a written widget configuration inventory for the customer's admin to reassign in Gorgias; this is not an automated configuration transfer.
Crisp
Operator Role
Gorgias
Agent Role
1:1Crisp operator roles (admin versus standard operator) map to Gorgias Agent roles. We preserve the role assignment on each agent record. Gorgias permission granularity (full access, ticket management, reporting only) may differ from Crisp's role model; the customer reviews role assignments post-migration.
Crisp
Contact Custom Properties
Gorgias
Customer Custom Attributes
1:1Crisp Contact custom properties of any type (string, boolean, date, number, list) migrate as Gorgias Customer custom attributes of the corresponding type. We validate type compatibility during scoping and flag any Crisp property type that does not have a direct Gorgias equivalent for the customer's admin to review.
| Crisp | Gorgias | Compatibility | |
|---|---|---|---|
| Conversations | Ticket1:1 | Fully supported | |
| Contacts | Customer1:1 | Mapping required | |
| Messages | Ticket Message1:1 | Fully supported | |
| Operators | Agent1:1 | Mapping required | |
| Tags | Ticket Tag1:1 | Fully supported | |
| Segments | Customer Filter (manual rebuild)lossy | Mapping required | |
| Canned Responses | Saved Replylossy | Mapping required | |
| Websites | Channel Configuration (manual)lossy | Mapping required | |
| Attachments | Ticket Attachment1:1 | Fully supported | |
| Chat Widget Settings | Inbox and Channel Settings (manual)lossy | Mapping required | |
| Operator Role | Agent Role1:1 | Fully supported | |
| Contact Custom Properties | Customer Custom Attributes1: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.
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
Gorgias gotchas
AI Agent adds outcome-based fees on top of billable ticket costs
Overage billing for tickets scales nonlinearly
API rate limits restrict bulk export throughput
Agent data visibility cannot be restricted by role for GDPR use cases
Knowledge Base translations require separate API calls per locale
Pair-specific challenges
Migration approach
Discovery and tier verification
We audit the source Crisp account across plan tier (Free, Mini, Essentials, Plus), website count, operator count, conversation volume, contact volume, active tag set, and Segments usage. We confirm whether the CRM module is accessible (Essentials or Plus required for UI export; API key availability for Free/Mini accounts). We extract a sample of 50-100 conversations and 200 contacts to validate field coverage, custom property schemas, and conversation state distribution before committing to a full migration scope. The discovery output is a written migration scope document with object counts, field mapping preview, and a confirmed pricing estimate.
Conversation state and tag mapping design
We design the conversation-to-ticket state mapping rule based on the customer's Crisp conversation state usage patterns. We also design the tag consolidation strategy: Crisp tags are carried as Gorgias ticket tags, and we flag any tag names that may conflict with Gorgias reserved words or naming conventions. We deliver the mapping rules in written form for customer sign-off before migration begins. We also extract the Canned Responses with %placeholder% syntax for the manual review inventory.
Contact extraction with chunking for large datasets
For accounts with fewer than 200,000 contacts, we run a single API extraction against the /contacts endpoint. For accounts exceeding 200,000 contacts, we run sequential chunked passes with ID-range filters, deduplicating on contact_id across passes and reassembling the full dataset before loading. For Free and Mini tier accounts without CRM UI access, we confirm API key availability and use the /contacts endpoint directly. We also extract Segments as structured rule metadata for the configuration inventory.
Ticket and message migration in dependency order
We migrate tickets first, then messages as child entries within each ticket. The conversation state mapping rule is applied at ticket creation time. Operator email references are resolved to Gorgias agent records during the ticket load phase. Tags are applied to each ticket post-creation. We re-host attachment URLs to Gorgias storage in a parallel pass, then link the re-hosted files to the corresponding ticket messages. We emit a row-count reconciliation report after the ticket phase and again after the message phase before proceeding.
Operator and agent reconciliation
We extract every distinct Crisp operator referenced on Conversations, Tags, and segment rules and match by email against the Gorgias destination agents. Operators without a matching Gorgias agent go to a reconciliation queue. The customer's admin provisions any missing agents in Gorgias before record import resumes. We also flag any operator count that exceeds the Gorgias plan seat allowance for the customer to resolve before migration.
Cutover, validation, and configuration handoff
We freeze Crisp writes during the cutover window and run a final delta migration of any records modified during the migration window. We deliver the full migration validation report showing record counts across all objects, spot-check reconciliation results, and the configuration inventory covering Canned Responses, chatbot rules, routing logic, and Segments for manual rebuild in Gorgias. We support a five-business-day hypercare window where we resolve any record-level reconciliation issues raised by the customer's support team. We do not rebuild Crisp chatbot workflows, routing rules, or Segments as Gorgias automation; that work is handled by the customer's admin using the delivered inventory as a guide.
Platform deep dives
Crisp
Source
Strengths
Weaknesses
Gorgias
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 3 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Crisp and Gorgias.
Object compatibility
3 of 7 objects need a mapping; the rest are 1:1.
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 Gorgias migration scoping. Not seeing yours? Book a call.
Walk through your Crisp to Gorgias 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 Gorgias
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.