Helpdesk migration
Field-level mapping, validation, and rollback between Seraph and Zendesk. We move data and schema; workflows are rebuilt natively in Zendesk.
Seraph
Source
Zendesk
Destination
Compatibility
7 of 12
objects map 1:1 between Seraph and Zendesk.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Seraph is an open-source PHP-based helpdesk platform built for IT support companies that need to track onsite visits and billing alongside tickets. It has no public API documented for automated export, no native multi-channel support, and no built-in knowledge base. Zendesk is a cloud-native customer service platform that organizes support around Tickets, Users, Organizations, and Views with multi-channel routing across email, chat, voice, and social. The structural differences between these platforms are significant: Seraph stores IT-company-specific fields (onsite visits, billing rates, contract tracking) that have no Zendesk equivalent, and Seraph has no documented REST API for bulk record extraction, which makes direct API migration impossible without a custom export layer built by Seraph or a third-party scraping tool. We work around this by building a custom JSON export pipeline from Seraph's MySQL database or file-based storage, then mapping that structure into Zendesk's REST API and applying custom field type translation. Workflows, automations, and billing configurations do not migrate; we deliver a written inventory of every Seraph automation and IT-company-specific field requiring manual rebuild in Zendesk.
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 Seraph object lands in Zendesk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Seraph
Ticket
Zendesk
Ticket
1:1Seraph tickets map to Zendesk tickets with the subject, description, status, priority, and created/updated timestamps preserved. Seraph's internal ticket IDs are stored in a custom field seraph_original_id__c for cross-reference. If Seraph uses MySQL datetime columns for timestamps, we convert to Unix epoch before writing to Zendesk's ISO 8601 fields.
Seraph
User (agent)
Zendesk
User (agent)
1:1Seraph agent accounts map to Zendesk agent profiles. We match by email address as the dedupe key. Any Seraph agent without a matching Zendesk user is placed in a reconciliation queue for the customer's Zendesk admin to provision before the agent import phase begins.
Seraph
User (end-user / requester)
Zendesk
End User
1:1Seraph end-user accounts map to Zendesk end-user profiles in the users endpoint. Email address is the dedupe key. If Seraph stores user data across multiple tables (a common pattern in Laravel-based applications), we join on the user_id foreign key before writing to Zendesk.
Seraph
Organization
Zendesk
Organization
1:1Seraph organizations (company records tied to tickets) map to Zendesk Organizations. Organization name becomes the Organization name field, and domain-based matching is applied post-import if Seraph stores domain data in the organization record.
Seraph
Comment
Zendesk
Comment
1:1Seraph ticket comments map to Zendesk ticket comments. We identify public versus private comments using Seraph's visibility column and set the public boolean on the Zendesk Comment API payload accordingly. Comment ordering is preserved by timestamp.
Seraph
Attachment
Zendesk
Attachment
1:1File attachments stored in Seraph's file directory or database blob columns migrate as Zendesk ticket attachments via the Attachments API. We extract the file name, MIME type, and binary content and POST each to the Zendesk Attachments endpoint before linking to the target ticket comment.
Seraph
Tag
Zendesk
Tag
1:1Seraph tags attached to tickets migrate to Zendesk tags. Zendesk applies a tag limit policy (maximum tags per ticket varies by plan), so we flag any ticket with more than 50 Seraph tags for customer review before import.
Seraph
Custom Field (dropdown / single-select)
Zendesk
Custom Field (dropdown)
lossySeraph MySQL columns with ENUM or VARCHAR-backed choice fields map to Zendesk dropdown custom fields. We pre-create the Zendesk custom field with the exact option labels from Seraph before importing any ticket records. Option ordering is preserved when Seraph stores ordinal position.
Seraph
Custom Field (checkbox / boolean)
Zendesk
Custom Field (checkbox)
lossySeraph boolean columns or TINYINT(1) fields map to Zendesk checkbox custom fields. We map 1/true/yes to checked and 0/false/no to unchecked.
Seraph
Custom Field (numeric / billing rate)
Zendesk
Custom Field (numeric)
lossySeraph numeric columns used for billing rates, contract values, or hour tracking map to Zendesk numeric custom fields. Zendesk numeric fields have no length restriction, which accommodates billing and contract data without truncation.
Seraph
Onsite Visit Record
Zendesk
Custom Object or Ticket Comment
many:1Seraph onsite visit records (location, scheduled time, assigned technician, visit outcome, and billing hours) are Seraph-specific with no Zendesk native equivalent. We migrate these as structured data merged into the parent ticket as internal comments with a standard prefix (e.g., [ONSITE VISIT DATA]:) and a custom Zendesk field set capturing the key visit metadata. The customer's Zendesk admin decides whether to keep this structure or replace it with a Service Hub field service integration post-migration.
Seraph
Billing / Contract Record
Zendesk
Custom Field + Ticket Comment
many:1Seraph billing and contract tracking fields (hourly rate, contract type, billing status, invoice reference) are IT-company-specific and have no Zendesk standard object. We merge these into the Zendesk ticket as a structured internal comment and optionally create Zendesk custom fields for the customer's admin to configure. We do not create a separate billing module in Zendesk; this data is preserved as a structured handoff for the customer's admin to handle.
| Seraph | Zendesk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| User (agent) | User (agent)1:1 | Fully supported | |
| User (end-user / requester) | End User1:1 | Fully supported | |
| Organization | Organization1:1 | Fully supported | |
| Comment | Comment1:1 | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Custom Field (dropdown / single-select) | Custom Field (dropdown)lossy | Fully supported | |
| Custom Field (checkbox / boolean) | Custom Field (checkbox)lossy | Fully supported | |
| Custom Field (numeric / billing rate) | Custom Field (numeric)lossy | Fully supported | |
| Onsite Visit Record | Custom Object or Ticket Commentmany:1 | Fully supported | |
| Billing / Contract Record | Custom Field + Ticket Commentmany: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.
Seraph gotchas
Self-hosted extraction depends on customer-controlled database
Managed-hosted (Standard/Premium) customers extract through vendor
No public API or developer portal
Zendesk gotchas
Data export requires API scripting on non-Enterprise plans
Automations cap at 500 active rules and 1,000 tickets per hour
Help Center has no native export feature
Custom Objects and full data export are Enterprise-only
Pair-specific challenges
Migration approach
Database schema audit and custom export pipeline build
We connect read-only to the Seraph MySQL database and audit the full schema, including every table, column type, foreign key relationship, and soft-delete pattern. We build a custom PHP or Python export script that extracts records in ordered batches (ordered by primary key or created_at timestamp), joins across related tables (users, tickets, comments, organizations, attachments), and emits Zendesk-compatible JSON. If Seraph stores files on disk rather than in the database, we map file paths to ticket IDs and prepare them for the Zendesk Attachments API.
Zendesk environment setup and custom field creation
We configure the Zendesk target environment before any data import. This includes provisioning agent and admin accounts, creating the Organization structure, setting up Views and ticket field configurations, and pre-creating every custom field with the correct Zendesk field type matched from the Seraph MySQL schema audit. We disable Zendesk triggers, automations, and SLA policies during the migration window to prevent unwanted customer notifications or ticket routing during import.
Sandbox test migration and reconciliation
We run a full test migration into the Zendesk Sandbox (or a trial environment) using a representative data sample of at least 500 records per object type. The customer's Zendesk admin reconciles record counts, spot-checks 25-50 records against the Seraph source for accuracy, and validates that custom field values, timestamps, and comment threading are intact. We correct any mapping errors identified during sandbox testing before production migration begins.
User and Organization migration with dedupe
We migrate Seraph agents to Zendesk agents (matching by email address) and Seraph end-users to Zendesk end-users. Organizations are migrated next using the organization name as the dedupe key. Any Seraph user without a matching Zendesk user email goes to a reconciliation queue. Owner assignments on tickets are resolved at this stage by mapping the Seraph user ID to the newly created Zendesk agent user ID.
Ticket and comment migration in dependency order
Tickets are migrated first (without comments), followed by comments (linked to the pre-created ticket IDs), followed by attachments (linked to the pre-created comment IDs). We process tickets in batches of 100 via the Zendesk REST API, applying exponential backoff on 429 rate-limit responses. Timestamp fields are normalized from Seraph MySQL DATETIME to Unix epoch and then to ISO 8601 strings compatible with Zendesk.
Seraph-specific field handoff and cutover
We migrate onsite visit metadata and billing field data as structured internal comments on the parent ticket, with the key values also captured in Zendesk custom fields created during the setup phase. We deliver a written inventory document listing every Seraph-specific field, its current value in Zendesk, and a recommendation for whether to keep it as a custom field, move it to a Service Hub field service module, or archive it. We freeze writes to Seraph, run a final delta migration of any records modified during the migration window, then enable Zendesk as the system of record.
Platform deep dives
Seraph
Source
Strengths
Weaknesses
Zendesk
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. All 7 core objects map 1:1 between Seraph and Zendesk.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Seraph and Zendesk.
Object compatibility
All 7 core objects map 1:1 between Seraph and Zendesk.
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
Seraph: Not publicly documented.
Data volume sensitivity
Seraph 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 Seraph to Zendesk migration scoping. Not seeing yours? Book a call.
Walk through your Seraph to Zendesk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Seraph
Other ways to arrive at Zendesk
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.