Launched:self-serve migrations intoSuperhuman Docs (Coda)
Try it now
01Agent-first
Runs where you already work
Plug it into Claude, ChatGPT or Cursor. Describe the move in plain English; the agent runs it.
02Engineer-led
Our production engine, unlocked
The pipeline our engineers use on managed enterprise migrations — the same code, now something you can drive yourself.
03Pricing
Try 10 pages free, then $1 a page
Credit-based, pay-as-you-go. No scoping call, no quote — sample it on your own docs before you spend anything.
04Sources
NotionSlabConfluenceSoonGoogle DocsSoon

Migrate from Zendesk to Plain with precision & ease

A seamless, customizable migration solution for moving your Zendesk data with perfect fidelity and minimal disruption.

Book free consultation

Last updated July 2026

Zendesk
Plain
MIGRATION OVERVIEW

Why teams migrate from Zendesk to Plain

The core problem
Migrating from Zendesk to Plain moves support data from a broad, enterprise-grade REST-based helpdesk to an API-first, GraphQL-native platform purpose-built for B2B engineering teams. Plain does ship a native Zendesk importer that handles end users, tickets, messages, and tags automatically, providing a fast path for standard migrations. However, fundamental data model mismatches — most critically the absence of a direct import path for Zendesk Organizations into Plain's Company and Tenant model, and the lack of custom ticket field mapping in the native importer — require additional API scripting or a managed service for anything beyond a basic migration. Attachments, organization-level custom fields, granular status mapping, and historical timestamp preservation all require custom engineering work against Plain's GraphQL API using mutations such as upsertCustomer, importThread, and importThreadMessages.
Why this matters for your migration
KEY CHALLENGES

What makes this migration complex

These are the architectural mismatches and technical hurdles specific to a Zendesk to Plain migration.

Most Critical

Organization to Tenant Mapping

Zendesk Organizations have no direct 1:1 equivalent in Plain; they must be decomposed into Plain's two-layer model of Companies (auto-assigned by email domain) and Tenants (representing product workspace or billing boundaries), requiring manual mapping logic before any migration code can run.

Blocks all downstream imports if mapped wrong

Custom Field Schema Translation

Zendesk custom ticket, user, and organization fields do not carry over through Plain's native importer and must be manually re-created as Thread Field schemas in Plain before API-based load scripts can populate them.

Status and Priority Model Mismatch

Zendesk's six-state ticket lifecycle (New, Open, Pending, On-hold, Solved, Closed) must be collapsed into Plain's three-state model (Todo, Done, Snoozed), requiring a deliberate mapping strategy that will inevitably lose granularity for pending and on-hold states.

Attachment Re-upload Complexity

Zendesk's CSV bulk export omits ticket comments and attachments entirely, meaning attachments must be fetched individually via the Zendesk REST API and re-uploaded through Plain's separate attachment upload flow, adding significant engineering complexity and latency to the migration.

API Rate Limit Constraints

Zendesk enforces strict rate limits as low as 200 requests per minute on Team-tier plans, and these limits apply simultaneously with Plain's own API constraints, requiring careful batching, cursor-based pagination, and retry logic to avoid data loss or migration stalls on large accounts.

Delta Sync During Cutover

The native Zendesk importer only syncs new records created after the initial import and does not propagate subsequent changes to existing tickets (status updates, reassignments, priority changes), meaning teams must plan a coordinated cutover window or build a custom delta sync mechanism to avoid data divergence.

COMPLETE COVERAGE

Intelligent Human-Verified Data Mapping

Our migration engineer precisely maps every data point from Zendesk to Plain, ensuring perfect continuity for your customer support operations.

Zendesk
Plain
Users
Customer
Tickets
Thread
Ticket Comments
EmailMessage
Ticket Attachments
Attachment
Organizations
Tenant
Organization Memberships
CustomerTenantMembership
Groups
CustomerGroup
Group Memberships
CustomerGroupMembership
Tags
Label
Satisfaction Ratings
CustomerEvent
Ticket Metrics
Timeline Entry
Macros
Not Available
SLA Policies
Not Available

Looking for more entity mappings?

Contact our team
MIGRATION RISK ASSESSMENT

Every migration risk, already solved

Migration between platforms is full of edge cases. Our engineers have identified every risk from Zendesk to Plain and built proven solutions for each one.

High complexity
  • Organizations / Companies & Tenants
    Zendesk Organizations have no direct import path in Plain's native importer and must be manually decomposed into the Company and Tenant model, with organization-level custom fields requiring a completely separate migration strategy.
    Solved
  • Custom Ticket Fields / Thread Fields
    Custom field schemas must be manually re-created in Plain before migration, and the native importer does not carry over any custom field data, requiring full API-based scripting to populate Thread Fields from Zendesk source data.
    Solved
  • Attachments
    Attachments are excluded from Zendesk's bulk CSV export and must be individually fetched via the Zendesk REST API and re-uploaded through Plain's separate attachment upload flow, making this the most engineering-intensive entity to migrate correctly.
    Solved
  • Macros / Automations / Triggers
    Zendesk Macros, Triggers, and Automations have no automated migration path and must be manually reconstructed as Plain Workflows, Rules, and Auto-responders, requiring a full audit of existing automation logic before cutover.
    Solved
Custom engineering
  • Ticket Comments / Thread Messages
    Public and internal comments (notes) are imported by the native importer, but historical timestamp preservation and author attribution require API-based migration using importThreadMessages, and the CSV export path omits comments entirely.
    Handled
  • Internal Notes
    Internal notes on Zendesk tickets are imported by the native importer, but ensuring correct attribution and timestamp fidelity for historical internal notes requires API-based migration rather than relying solely on the built-in tool.
    Handled
  • Knowledge Base / Help Center
    Zendesk Guide content must be migrated separately to Plain's Help Center with no native import tool available, requiring manual export and reformatting of article content, though the absence of relational dependencies keeps risk lower than organization or custom field migration.
    Handled
Clean transfer
  • Tickets / Threads
    Core ticket-to-thread migration is well-supported by Plain's native Zendesk importer and the importThread GraphQL mutation, though very large accounts (500K+ tickets) may face extended migration windows of several hours.
    Clean
  • End Users / Customers
    Zendesk end-user records map cleanly to Plain Customers via the upsertCustomer mutation and are handled automatically by the native importer, making this one of the lowest-risk entities in the migration.
    Clean
  • Tags / Labels
    Zendesk ticket tags are automatically imported as Plain Labels by the native importer, representing one of the most straightforward entity translations in the migration.
    Clean
What Our Customers Say

Real migration stories

See all customer stories →
CUSTOM MIGRATION

Fully customizable engineer-led migration

Tailor your migration from Zendesk to Plain exactly to your needs with our flexible customization options. Our experts will configure the perfect migration plan for your business.

Migration Filters

Conversation Type

Filter by chat, email, or social media conversations

Tag-Based Selection

Migrate tickets with specific tags only

User Selection

Migrate tickets for specific users or agents

Time Range

Migrate tickets from a specific time period

Data Types

Tickets & Conversations

Full conversation history with all metadata

Automations & Macros

Workflows, templates, and automation rules

Knowledge Base

Articles, categories, and help center content

Customer Profiles

Customer information and interaction history

ZERO DOWNTIME

Your timeline. Our engineers.

A dedicated engineer runs your migration, planned around your schedule and your data.

No babysitting a wizard. Avoid debugging errors yourself.

Looking for a more detailed migration timeline?

Contact our team

Speed

The migration timeline depends on both our turnaround time and yours.

We can complete a migration in under a day when the accounts are connected and the sample migration is approved promptly.

Background Sync

We also support migrating the newest records first, so you can go live faster while the rest of the data is synced in the background.

Data Volume Impact

Larger data volumes may require longer migration windows.

Continuous Operation

Weekend migrations minimize disruption to your customer service operations.

MIGRATION TIMELINE

Your Zendesk to Plain migration, step by step

See how long your migration will take from start to finish. Drag the slider to estimate based on your data volume.

How many records are you migrating?

<10K 50K 100K 250K 500K 1M 2M 5M 10M+
Checklist ~3 days
Sample 1 day
Review ~2 days
Full 2 days
Delta 1 day
Your team ClonePartner

Estimated total

~9 business days

1

Migration Checklist

1 day · ClonePartner ~2 days · Your team

We prepare the optimal data mapping as a shareable spreadsheet. Your team reviews, approves, and adds any customizations.

2

Sample Migration

1 day · ClonePartner

We run a test migration with a representative sample of your data to verify mapping accuracy and identify any potential issues before the full run.

3

Review & Approve

~2 days · Your team

Your team reviews the sample migration results, confirms data accuracy and mapping, and gives the go-ahead for the full migration.

4

Full Migration

2 days · ClonePartner

We execute the complete migration of all your data to your new Plain, with real-time progress tracking and comprehensive logging.

5

Delta Migration

1 day · ClonePartner

We capture and transfer any new data that was added or updated during the main migration to ensure no data is lost. This final sync keeps everything current.

Related Guides

Pros and cons of different migration options

Choosing the right approach is key because migrating from Zendesk to Plain isn't just about moving data – it's about protecting customer relationships.

Feature / Criteria ClonePartner Automated Tools CSV Import In-house migration
Custom Scripting for complex data ✓ Engineers build & maintain ✗ No ⚠ Manual ✓ Yes – but costly
Sandbox & Pilot Migrations ✓ Full sandbox + pilot plans ⚠ Limited ✗ No ⚠ Often Informal
Manual validation & reconciliation ✓ Automated + manual QA ✗ No ✓ Yes (Manual) ✓ Heavy manual effort
Backup & rollback plan ✓ Robust procedures ✗ No ✗ No ⚠ Often incomplete
Handles automation and integrations ✓ Full support ⚠ Partial ✗ No ⚠ Possible but fragmented
Post-migration engineer support ✓ Dedicated engineers ✗ No ✗ No ⚠ Limited SLA
Adaptable to API changes ✓ Proactive adaptation ✗ No ⚠ Manual fixes ⚠ Slower response
Turnaround / SLA predictability ✓ Predictable SLAs ⚠ Fast but brittle ⚠ Slow and manual ⚠ Often slower
Data Security & Compliance ✓ High – enterprise grade ⚠ Medium (depends) ⚠ Low (manual) ⚠ Hidden gaps common
Pricing predictability ✓ Transparent & fixed ⚠ Low (per-job) ⚠ Low (manual hours) ⚠ High/variable OPEX
End-to-end project management ✓ Full E2E delivery & PM ✗ No ✗ No ⚠ Often partial
Business impact & opportunity cost ✓ No diversion of staff ✗ No ✗ No ⚠ Diverts engineering

What does an Engineer-led migration mean anyway?

Speed & Accuracy: Our Blended Method

We blend automation (smart scripts, bulk APIs) with human expertise for speed without risk. Our engineers manually check every mapping, validation, and exception.

You get:

  1. Speed of automation for bulk record migration
  2. Precision of engineers verifying integrity and business logic
  3. Pilot migrations and sandbox testing to catch issues early
  4. Real-time validation reports and rollback readiness
Result: 50x faster migrations than manual imports — with near-zero error rates.

Handling the Tricky Tech and API Details

The Zendesk and Plain APIs each behave differently, which is where our engineers shine. We build custom logic to handle the data quirks where generic tools typically break.

We handcraft API logic for:

  1. Field mapping and transformation
  2. Pagination, rate-limit handling, and throttling
  3. Preserving conversation threads, attachments, and internal notes
  4. Syncing custom fields, SLAs, and macros without breaking structure
Our scripts: Natively retry failed calls, re-queue large attachments, and ensure data parity.

No Guesswork

We don't just promise smooth migrations—we measure and prove them. Every client receives a Migration Validation Report with all metrics.

Typical results across projects:

  1. 100% record-count parity between your Zendesk data and Plain
  2. Zero downtime during staged cutovers
  3. 99.9% attachment integrity (verified via checksum)
  4. Full automation and preservation of all business rules
Our standard: Includes full SLA preservation and 30 days of engineer-assigned support post go-live.

We Adapt to Your Setup (Not the Other Way Around)

No two teams configure Zendesk or Plain exactly the same way—with unique automations and data. We customize every migration script to fit your exact workflow, tags, and triggers.

Our engineers adapt for:

  1. Custom fields, ticket forms, and workflows
  2. Multi-brand or multi-language setups
  3. Historical imports and partial (date-based) migrations
  4. Integration re-mapping for CRMs, chat, or feedback tools
The promise: If your data doesn't fit a standard template, we build one just for you.

Enterprise-Grade Security & Compliance

Your customer data is precious. Our migration process maintains the highest standards of security and regulatory compliance.

SOC 2 Type II

Independently audited compliance with rigorous security standards

ISO 27001

Certified information security management system

GDPR

Full compliance with EU data protection regulations

HIPAA

Certified for handling protected health information

AES-256 Encryption

Bank-grade encryption for all stored credentials

Latest TLS

Secure transfer protocol for all data in transit

Role-Based Access

We follow role-based access control for every migration project

Scheduled Deletion

Automatic data purging after migration completion

FAQ

Frequently Asked Questions

Everything you need to know about migrating from Zendesk to Plain. Can't find what you're looking for? Talk to our team.

Still have questions?

Book a free 30-minute consultation with our team.

Contact our team

Before you start

8 questions
Do I need professional help for this migration?
Yes. Professional help ensures proper field mapping and preservation of relationships between records. Our engineer-led approach catches edge cases that automated tools miss.
Does ClonePartner provide guidance before committing?
Yes. We provide a free consultation and assessment. We'll review your data structure, discuss your requirements, and provide a detailed migration plan and fixed-price quote before you commit to anything.
Do you use an off-the-shelf tool to migrate from Zendesk to Plain, or is this built for our data?
It is built for your data. Each migration is a set of custom scripts written for your data model, not a generic import tool. That is also why we start with a sample migration: you see your own records in Plain before the full migration is committed.
Can we see a sample of our Zendesk data migrated to Plain before the full migration runs?
Yes. We run a sample migration on your own data first, so you can review how your records look in Plain before the full migration goes ahead. We run validation scripts to confirm the record counts match your source, and you check the sample against your source records; if a field is missing or mapped wrong, or anything else needs adjusting, we fix it in the migration scripts and re-run the sample as many times as you need. The full migration only runs after you've approved the sample. On projects delivered in phases, each phase gets its own sample migration for you to approve.
How many sample migrations do we get, and can we choose which Zendesk tickets go into them?
You can run the sample as many times as you need, until you are satisfied with how the data looks in Plain. By default it uses your most recent tickets, and you can name specific tickets to include instead, such as ones with long or complex threads you want to check.
Do we need to keep our Zendesk account active during the migration?
Usually, yes. Keep it active until we confirm the migration is complete, including the final delta migration, because we read your data directly from your Zendesk account throughout the project. If your subscription is due to end mid-project, extending it to cover the migration window keeps everything on track, and we tell you when it is safe to cancel. If it has to close sooner, we can pull your data out before it closes and migrate from that copy.
Will the sample tickets be removed from Plain before the full migration runs?
Yes, if you want them removed. Before the full run, we delete the tickets the sample migration created in Plain, so the full migration does not duplicate them.
Do we need to connect our support email to Plain before the migration from Zendesk starts?
No. Your support email doesn't need to be connected for the historical tickets to migrate. It matters for go-live, and so does its timing: once Plain is receiving email directly, a sync run after that point can pull in the same tickets a second time, so we line the final delta sync up with your email switchover. Some items, such as rules that depend on your email channel, may need it connected before they can be migrated.

Data & mapping

52 questions
Will the original assignees, message authors and created dates be preserved?
Yes. Created-time metadata is carried across, and so are assignees and message authors who have a user account in Plain. Where Plain cannot store one of them natively, it is kept as embedded metadata on the migrated record.
If the new system can't natively support an old record type, what are my options?
We handle it case by case. While mapping your data, we identify every record type without a direct counterpart in Plain, review sample records from it and propose how it can be represented, based on what Plain supports: map it to the closest native object, create a custom field or object, fold it into the parent record as text or a note, attach it as a file, or keep it in a read-only archive. You choose the approach, we write the migration scripts to place the data there, so it comes across in the form you choose instead of being left behind, and you see how it looks in a sample migration before we run the full set.
Do you migrate our Zendesk workflows, triggers and automations to Plain, or just the tickets?
They can be part of the migration. We recreate your existing Zendesk triggers and automations in Plain using its own conditions and actions, and agree the exact list of rules with you during scoping. Designing new workflows beyond the ones you have today is separate, and is best done by your team or your implementation partner.
Are the times of each Zendesk comment, reply and update preserved in Plain, not just ticket creation dates?
Yes. Each ticket's creation time is preserved exactly, and so is the time of each comment and reply, so the history shows when every update happened. The one possible exception is the ticket-level 'last updated' field, which some platforms set themselves when a ticket is written, so it may show the migration date; the original update history stays in the comment timestamps.
How are merged Zendesk tickets handled in Plain?
We look for the merge relationship in your Zendesk data and re-create the merge in Plain through its API. Where a merge can't be re-created, each ticket gets a tag with the related ticket's original ID, so the link between them is kept and can be searched.
What happens to Zendesk tickets assigned to agents who have left the team or don't have an account in Plain?
They still come across. Before the migration runs, you decide where they go: to a fallback owner you choose, or left unassigned where Plain allows it. Either way, each ticket can get a tag with the original agent's name, for example Assigned_to_Jane, so your team can still see and filter who handled it and reassign them later.
Can we merge several Zendesk accounts into one Plain account and still tell which account each ticket came from?
Yes. Tickets from several Zendesk accounts can be consolidated into one Plain account, and each ticket is tagged with the account it came from so your team can filter by origin. A shared migration tag can also go on every imported ticket, which keeps historical records separate from new work.
Do our Zendesk ticket attachments come across to Plain?
Yes. Attachments are migrated along with the ticket conversations they belong to, not just the text. We can also carry over reference fields such as the original ticket number and a link back to Zendesk, so your team can cross-check any record. You can review attachments and dates in the sample migration before the full run.
Our Zendesk setup has custom ticket statuses that Plain doesn't have. How do they get mapped?
We map every Zendesk status to a status in Plain and send you a proposed mapping for the ones that need a decision. You confirm or correct it before the full migration, and the sample migration shows exactly how your tickets' statuses land.
Which of our Zendesk ticket tags carry over to Plain, and can migrated tickets be marked so we can tell them apart?
The tags on the tickets being migrated. Tags come across as part of each migrated ticket, so a tag that isn't on any migrated ticket isn't created in Plain, and you can also limit the migration to a list of tags you choose in the migration checklist. Each migration is a custom script, so we can also stamp every imported ticket with a tag such as "migrated", or, where Plain has custom ticket fields, a field value you choose, so they are easy to filter, and if you ask for a change after reviewing migrated tickets, we re-sync those tickets with the update. The sample migration shows exactly how your tags appear before the full run.
Will the migration set off automations or send emails or notifications to customers, our team or anyone else?
No. Before the sample or full migration starts, we confirm with you that nothing in Plain will send messages about the migrated data: we import with notifications switched off wherever Plain allows it, and either pause any automation that could send them for the migration window or give it a condition, such as a suppression tag, that skips migrated records, which lets your live automations keep running for new records. We only proceed once you have confirmed it. If you want anyone told about the move, that message is sent separately, once the migrated data has been checked.
Will you migrate our Zendesk knowledge base articles as well as tickets?
Yes. Knowledge base articles can be part of the same migration as your tickets, and move into your Plain knowledge base.
Can we migrate only our Zendesk contacts who have tickets, not our whole contact list?
Yes. We pull your tickets first, collect the distinct requesters from them, and migrate only those contact records. Contacts with no ticket history are not added to Plain.
Can you migrate data that Plain can't take in through an API?
In many cases, yes. Where something can't be written through an API, we recreate it through Plain's user interface where the interface allows it, and where that work is repetitive we script and automate it. We tell you up front which items are handled this way, because recreating them through the interface can add time to the schedule.
If we don't recreate all our Zendesk custom fields in Plain, will that data still be kept on our old tickets?
Yes. We can write custom field values onto each migrated ticket as an internal note, laid out as readable field-and-value pairs. Your team can still see that information on every historical ticket, and only the fields you plan to keep using need to be recreated.
Will full Zendesk ticket conversations come across, or only notes on each ticket?
We migrate the full conversation on each ticket, not a summary saved as notes. Where Zendesk's API doesn't expose part of the history, our engineers retrieve it from Zendesk directly and work out a route to load it into Plain. You check the result in a sample migration before the full run begins.
What happens if Plain requires fields our Zendesk data doesn't have?
We check the destination for required fields your source data cannot fill and bring each one to you before those records are migrated. Together we agree how each one is handled, such as a mapping from an existing field, a default value, or, where Plain lets that field be made optional, setting it to not required for the migration so you can make it required again once the migration is complete. The migration then runs with that rule applied, so no records are rejected or left behind.
What happens if some Zendesk tickets fail to migrate?
Every ticket that errors is logged. We review it, fix the cause and re-sync it, then validate the result before cutover. When the migration is complete you receive a list of every migrated ticket, so you can check it against Zendesk.
What happens to Zendesk comments written by agents who have since left the company?
Their comments migrate with the rest of the ticket history. If the original author does not have an account in Plain, we can add a line at the start of the comment naming who wrote it, so it stays attributable.
Do internal notes and system-generated notes from Zendesk migrate to Plain, or only customer-facing replies?
Internal notes can come across, and so can system-generated notes where Zendesk's API makes them available. During scoping you choose which notes to include, so Plain holds the history your team will actually use.
Can you map our Zendesk ticket categories or field values to different ones in Plain?
Yes. You give us the mapping, including what blank values should become, and we apply it in the migration script so every ticket arrives in Plain with the new values. You check the mapping on the sample migration before the full run.
Can we keep spam and sales emails out of Plain?
Yes. We agree filtering rules with you up front so spam and sales emails are excluded rather than imported. Afterwards you receive a list of every ticket we pulled from Zendesk, with excluded tickets marked as skipped.
Will emojis and special characters in our Zendesk tickets come through correctly in Plain?
Yes, as long as Plain can store them. Our scripts carry emojis and special characters across intact, and we can clean out stray encoding characters left behind in older tickets before anything is written to Plain. You can check the result in the sample migration before the full run.
Can you migrate hundreds of thousands of Zendesk tickets and contacts to Plain?
Yes. Every migration is a custom script built for your project, so volume is something we plan for, not a limit on what can move. At large volumes, run time is set mainly by how fast Zendesk's and Plain's APIs accept requests, and we plan the full run around that. Before the full run, we test the mapping and throughput with a sample migration.
We use a lot of custom fields in Zendesk. Can you map them to Plain?
Where Plain has a place for them, yes. Each migration is a custom script written for your project, so your custom fields and structure are mapped to Plain's model rather than forced through an import template. Where field types differ, such as a value stored as text in Zendesk that Plain needs as a number, the script converts it. We agree the mapping with you and prove it on a sample migration before the full run.
Our Zendesk account is closing soon. Can you migrate to Plain from a Zendesk JSON export instead of the live account?
Yes. We can migrate from Zendesk's admin JSON export, so the live account doesn't need to stay open for the whole move. We download the attachments on ticket comments before your account closes and upload them to Plain with the tickets they belong to.
Can you migrate our Zendesk Talk call recordings to Plain?
Yes. Call recordings attached to your Zendesk tickets are exported through the Zendesk API and moved with the tickets they belong to. We agree with you in the data mapping where they will appear in Plain, and you check them in the sample migration before the full run.
Can you combine data from Zendesk and other support tools into one Plain account?
Yes. Each tool's data is extracted separately and written into the same Plain account. How records from the different tools fit together is settled in the data mapping before the build. The sample migration includes data from every source, so you can check the combined result before the full run.
Can you fix Zendesk tickets that are linked to the wrong company during the migration?
Yes, where Plain lets a company be set on each ticket. Each migration runs as custom scripts against the source and destination APIs, so we can set the correct company on each ticket as it is written to Plain. We agree the assignment rules with you first. The corrected links show up in the sample migration, so you can check them before the full run.
Will our Zendesk ticket formatting, including HTML content, carry over to Plain?
Yes. The migration script converts ticket content, including HTML, into the format Plain expects, and our verification checks compare migrated tickets with the originals, including how the HTML renders. The sample migration lets you compare migrated tickets side by side with the originals before the full run, and if anything renders differently, such as HTML appearing as raw text, we adjust the script and re-run the samples until you sign off.
Our Zendesk account already holds tickets imported from an earlier migration. Will that cause problems when we migrate to Plain?
It can make the number of tickets we pull differ from the count Zendesk shows, so tell us about the earlier import during scoping. We compare those two numbers before the full run, so if earlier-imported history makes them differ, we find out why first. When the migration is complete, the reconciliation report accounts for every ticket.
Are deleted Zendesk tickets included in the migration?
Only if you want them. You decide during scoping whether deleted and spam tickets are included, and we apply that choice to every run, including the final delta sync. Some platforms keep deleted tickets as scrubbed records with no remaining content; we flag any we find and migrate them only if you ask.
Do you migrate Zendesk live chat, SMS and messaging conversations, such as WhatsApp, to Plain, and do they keep their original channel?
Yes. Chat conversations and messages from channels such as WhatsApp or Instagram are migrated as tickets alongside your email history, where Zendesk makes them available through its API or an export. Plain may not let imported tickets keep every original channel: some platforms take most imported tickets in through a general API channel instead. So we keep the original channel wherever Plain allows it, and can tag each ticket with its original one, such as chat, SMS or WhatsApp, so your team can still find and filter them. If an export leaves out the message content for some channels, we tell you and agree another way to retrieve it.
Will our migrated tickets end up with duplicate comments?
Not normally, and we check for it. Our verification checks compare each migrated ticket with its original, including the message content, and each delta round is checked against what earlier rounds already migrated. If a ticket is found with duplicated comments, we can delete and reimport it, and it keeps its original creation time and conversation timestamps.
Will Zendesk tickets that have no customer email address, or whose contact can't be found, still be migrated to Plain?
Yes, if you want them. We look the contact up again before leaving any ticket behind: when a ticket can't be linked to its contact on the first pass, we run a second lookup, also checking elsewhere in the ticket's data, and attach the requester before the ticket is migrated. Some help desks need an email address or telephone number to create the customer a ticket belongs to, so we flag every ticket whose requester still has neither, including where Zendesk's privacy settings hide the email from its API, and send you the list. You can then give us the right email for each requester, or have the tickets migrated with placeholder email addresses, and we migrate them that way.
If our Zendesk spam tickets are migrated to Plain, will they still be marked as spam?
Yes, they can be. If you choose to include spam tickets, we mark them, for example with a spam tag, alongside a migration tag if you use one, so they stay easy to find and filter in Plain, and we include some in the sample so you can check them. If you'd rather leave spam behind, we agree a filter during scoping and it isn't imported.
If we collect customer satisfaction (CSAT) ratings in Zendesk, can you migrate them to Plain?
Yes, where Plain can store them. Where it accepts satisfaction ratings, we migrate them with their tickets, which can need an extra permission on the new account's connection. Where it has no native place for historical ratings, we bring the scores across another way, such as a custom field or a tag on each ticket, agreed with you during scoping.
Can the activity history on each Zendesk ticket, such as status changes and assignments, be migrated to Plain?
Usually not as a native timeline. Event history such as status changes and assignment timestamps stays with your Zendesk account and generally isn't something a help desk accepts on import, so it is left out of the migration. Each ticket still arrives with its full conversation, status and assignee, and with its original timestamps where Plain accepts them, and parts of the history that matter to you can be kept another way, such as a tag with the ticket's original status or an internal note.
Can you migrate Zendesk tickets that belong to private or restricted categories?
Yes, once the migration's connection can reach them. If a category or group is private or restricted in Zendesk or Plain, the account we connect with may not be able to read or create tickets in it, so we flag every ticket this affects. You can then lift the restriction or give the connection the access it needs, such as an admin-level account, and we migrate the remaining tickets, or tell us to leave them out.
If we have Facebook and Instagram comments in Zendesk, will they keep the right author and show where they came from in Plain?
Yes, as far as Zendesk records it. Each message is attributed to the author Zendesk's API reports, and messages from your team show under the right agent as long as that agent's account exists in Plain before the tickets are migrated; otherwise they fall back to the default agent. We also carry over the message source in as much detail as the API provides, for example telling comments on Instagram posts apart from comments on Instagram ads.
Can you also migrate email threads from our email account, such as Gmail, that never became tickets in Zendesk?
Yes. Once your email account, such as Gmail, is connected, we can pull selected email threads directly from it, for example for a date range you choose, and migrate them into Plain as tickets. We share the list of threads with you to confirm before anything moves. Because they were never tickets, some details can look different from tickets migrated from Zendesk.
Will Zendesk tickets that have no messages or comments still be migrated to Plain?
Yes, if you want them. Some help desks can't create a ticket without at least one message, so we flag every ticket that has none and send you the list rather than skipping them silently. We first check whether the content is stored elsewhere in Zendesk, such as a ticket description we can use as the first message. Otherwise we can migrate the ticket with a placeholder message, or leave it out if you prefer.
Do you download attachments for every Zendesk ticket, or only for the tickets being migrated?
It depends on the source platform. For some sources, our scripts fetch attachments at the time each ticket is migrated rather than during the initial data pull, so files are downloaded only for the tickets in scope. For others, attachments are pulled along with the initial data. Either way, only the tickets you choose are migrated.
Can you migrate our Zendesk phone and voice call tickets to Plain, including call recordings kept in a separate phone system?
Yes. Tickets from your phone or voice channel are migrated with the rest of your history, and call logs from a separate phone tool can be brought in alongside them. Call recordings stored outside the help desk, for example in a cloud storage bucket your phone system writes to, can be matched to their tickets wherever a match exists. We agree with you in the mapping where calls and recordings will appear in Plain, and you check them in the sample migration.
What happens to a conversation in Zendesk that mixes email and chat messages if Plain keeps those channels separate?
We agree the approach with you during scoping. One option is to split the conversation into a ticket for each channel, each carrying the same subject, tags and other details, so the two are easy to find together on the same customer. If you'd rather have a single thread, we confirm during scoping whether Plain can hold it that way, and you check the result in the sample migration.
Will a customer in Zendesk with several email addresses or telephone numbers end up as duplicate contacts in Plain?
Not if we agree the merges with you first. We identify records that share an email address or telephone number and propose merges in the migration checklist, where you confirm each one and choose which address stays primary. Each merged set becomes one contact holding all of that customer's tickets and, where Plain allows it, all of their email addresses. We don't merge on a guess, so records you don't confirm stay as they are.
If we use a chatbot in Zendesk, do you migrate it and its conversation flows to Plain, or only the conversations it handled?
We migrate the conversations it handled, not the chatbot itself. Every chat conversation the bot took part in comes across with your ticket history, while the chatbot's own setup isn't migrated as data and is set up again in Plain where it offers one. Workflows and automation rules are a separate item, and the ones you have today can be recreated in Plain as agreed during scoping.
Can you migrate each brand or region in Zendesk into its own separate Plain account?
Yes. Each brand or region can go into its own account in Plain: we connect each destination account separately and agree with you which tickets belong to each one, for example by brand or by channel, so every ticket lands only in its own account. Each account is migrated and reported on separately, and the delta sync brings each one up to date at go-live.
Will our customers be able to see their migrated conversations in Plain, for example in a customer portal?
It depends on Plain. Migrated tickets are attached to each customer's contact record like any other ticket, so where Plain has a portal that shows customers their own tickets, the migrated ones can appear there, while internal notes stay private to your agents. Some portals only show tickets or replies set up in a particular way, so we confirm during scoping how imported tickets show to customers in Plain and check it in the sample migration.
Can our agents reply to customers from migrated Zendesk tickets in Plain?
Yes, where Plain treats migrated tickets as regular tickets and your support email is connected to it. An agent's reply from a migrated ticket then goes out to the customer, and the customer's next reply continues on that same ticket. Some help desks keep imported tickets read-only, so we confirm this for Plain and test it on your account before your team relies on it.
Will the information that integrations show in our Zendesk tickets be migrated to Plain?
Not if that information lives in the integration rather than in Zendesk. Widgets and similar panels are often drawn live by the integration, and where Zendesk doesn't store that data or return it through its API, it can't be migrated with the tickets. The tickets and their conversations migrate as normal, and your team reconnects each integration to Plain after cutover.
Will Zendesk side conversations migrate to Plain as side conversations, or be turned into internal notes?
It depends on Plain. If it supports side conversations and has them enabled, as another Zendesk account can, they migrate as side conversations. Otherwise they come across as internal notes on the parent ticket, so the exchange stays with the ticket it belongs to. We confirm which applies during scoping, and you see the result in the sample migration.

Timeline & downtime

12 questions
How long does the Zendesk to Plain migration take?
Most migrations complete within 1–5 business days, depending on data volume and complexity; very large migrations, such as several hundred thousand records, take longer. We provide a detailed timeline after the initial assessment and can often complete small migrations in under 24 hours.
Will there be downtime when migrating from Zendesk to Plain?
No. Our migration process is designed for zero downtime. Zendesk stays fully operational throughout: the bulk migration runs in the background and the cutover is fast, so there is no disruption to your live business operations.
Can we choose which Zendesk tickets move to Plain first, such as active tickets before the backlog?
Yes, either way round. With a hard go-live date, we can migrate open and active tickets first, so your team can work in Plain from go-live day; a delta migration on that date brings across every ticket created or updated since the first pass, and the historical backlog then keeps migrating in the background. Or closed tickets can move first while your team keeps working open tickets in Zendesk, with open tickets moving in a separate delta run close to switchover, so active conversations are the last data to transfer.
If we go live on Plain before the migration finishes, can you bring over tickets that come in afterwards?
Yes. A follow-up delta migration brings over tickets that reached Zendesk after your team switched. Because your team is already working in Plain by then, we agree with you how rules in Plain that would otherwise fire on imported tickets are kept from firing, for example by pausing them for the run, and let you know when the run is complete so you can turn any paused rules back on. Some duplicates are possible because your team is already live, and we tell you about that before the run.
Our team has already started working in Plain. Can we still migrate our Zendesk history?
Yes. We take the exact date, time and time zone your team went live as the cutoff, and migrate the history up to that point, so the work already done in Plain is left as it is. That go-live moment separates the two systems' records, so we confirm it with you before anything runs.
Can we leave Zendesk attachments out of the migration to finish it faster?
Yes. Attachments are transferred file by file, so excluding them from historical tickets, or from tickets older than a cutoff date you choose, shortens the run considerably. Before you decide, we give you a revised completion estimate for each option so you can weigh the time saved against what you keep.
What is a delta sync, and when does it run before we switch to Plain?
Moving tickets through the platforms' APIs takes time, so we migrate the bulk of your history, mainly closed tickets, well before your switchover date. A delta sync then brings across everything created or updated in Zendesk since the previous pass of the migration. The final delta sync runs at your switchover time, so Plain is current on the day your team starts using it: you share your switchover date, time and time zone, giving us about a week's notice, and we schedule it around that. Timing it to the cutover matters, because a sync run after your team is already working in Plain can create duplicate records.
How long does it take to export a very large ticket history from Zendesk?
Extraction time depends on volume: a history of more than half a million tickets can take several days to pull. Your Zendesk account needs to stay active until extraction is finished, so we confirm its end date with you at the start and plan the schedule around it.
Can we run more than one delta migration to Plain, moving only tickets that changed since the last round?
Yes, when your cutover plan needs more than one. Each round picks up only the tickets created or changed since the previous round and is checked against what earlier rounds already migrated, so no ticket is created twice. Your agents keep working in Zendesk until you switch over.
How do you avoid duplicate tickets when we switch our support email and other channels from Zendesk to Plain?
We agree one cutoff time with you and line up the switchover of your email and of each other channel with it. Everything received in Zendesk up to that moment is migrated, and everything after it arrives directly in Plain. While a channel is connected to both, new messages land in both, so Plain creates its own copy of a conversation that the migration also brings across. Zendesk and Plain can stay live side by side after go-live, as long as each one is connected to its own support email addresses so incoming mail lands in only one place. Once your support email is connected to Plain and tickets are arriving there directly, a delta sync run after that point can pull in the same tickets a second time, so we time the final sync around your email cutover and flag it if a sync you ask for falls after your switchover point. If a conversation was captured both ways, the two tickets sit on the same customer and, where Plain supports merging tickets, can be merged. The final list of migrated tickets with their new Plain IDs lets you check the boundary and spot any ticket that came in around the switch.
Can we change fields or settings in Zendesk or Plain while the migration is running, and is there anything we should switch off?
Mostly yes, and your team can keep working as normal, but leave the fields being migrated as they are, in Zendesk and Plain, until the migration, including the final delta, is complete. The field mappings are set before the run starts, so hold off on renaming or removing those fields, and changing a migrated field's options, archiving it, or marking it as required or conditional can stop records from migrating. Where needed, and as agreed with you, we set the matching fields in Plain to active, not required and not conditional for the duration of the migration. Other fields can be added or removed in the meantime. Also pause any AI agents, automations or rules in Plain that could act on migrated records, so they don't fire on historical records as they arrive; if some must keep running for live work, we can instead agree a condition that makes them skip migrated records. Once the migration is complete, you can switch them back on, restore those field settings and rename fields freely.
If a customer replies to an old Zendesk ticket after we switch to Plain, will the reply join the migrated ticket or start a new one?
It depends on who replies first. If the customer replies to an email sent from Zendesk, many help desks open a new ticket on the same customer rather than adding the reply to the migrated one, for example where replies are threaded by the original email's message ID, which migrated messages don't keep. Where Plain supports merging tickets, your team can then merge the two. If an agent replies from the migrated ticket first and Plain allows replies from migrated tickets, the customer's next reply continues on that ticket.

Security & access

1 question
Can we whitelist a single IP instead of opening our network to your migration tool?
Yes. All migration traffic runs through a centralized system using one fixed IP, which your IT team can whitelist instead of opening broader network access.

Pricing

1 question
Is migration pricing a flat fee, or does it scale with data volume?
It's a flat fee with no hidden costs. The price we agree with you for your scope is the price you pay, and small variances in the final volume, a bit more or less, are included.

After go-live

18 questions
How do I validate that everything migrated correctly?
Every client receives a Migration Validation Report with comprehensive metrics including record-count comparison, attachment integrity verification via checksum, and full audit logs of the migration run, showing every record created, skipped or failed. If any item didn't come across, the report names each one, the specific reason, and how to bring it across if you want it there. We also offer unlimited sample migrations, so you can check your data before the full migration runs.
What support do you provide after the migration goes live?
At ClonePartner, we consider ourselves your partners in this journey. We take full accountability for your migration's success. Once your migration goes live, we provide 30 days of comprehensive post-migration support as standard, and longer support, such as 60 or 90 days, can be agreed for your project. During this period, we help with anything related to your migrated data, so your migration is a complete success.
Will we get a migration report and a mapping sheet linking old record IDs to new ones?
Yes. We provide a comprehensive migration report along with an ID-mapping sheet that links each old Zendesk record ID to its new ID in Plain. This ensures full traceability, simplifies post-migration verification, and helps your team validate that records have been migrated accurately.
After migration, do I contact ClonePartner or the platform's own support if something looks wrong?
ClonePartner is the contact for anything about the migrated data itself. Questions about the platform itself, such as how its features and settings work, go to the platform's own support or to whoever administers it for you.
Will inline images and signatures in migrated tickets break once I shut down my Zendesk account?
File attachments that we migrate are rehosted in Plain. Inline images embedded directly in email bodies, including signatures, are migrated as they are, so they can keep being served from your Zendesk account and appear broken once that account is deactivated. If this matters to you, we can identify the affected tickets and, before you shut Zendesk down, reimport the ones your team has not changed since the migration with their images rehosted in Plain.
If a migrated ticket has to be deleted and reimported to fix an issue, does it lose its original dates or history?
No. A ticket reimported to fix an issue, such as broken inline images, keeps its original creation time and its conversation history with the original timestamps. Tickets that have been changed in Plain since the original migration are left out of any reimport, because overwriting them would lose those updates.
Can our customers be told that their open Zendesk tickets have moved to Plain?
Yes, if you want them to be. Once the migrated tickets have been checked, we can send each requester of an open ticket a notification through Plain's API where it supports this, with wording you approve. If you'd rather not tell customers, no message is sent.
Can we keep an offline archive of our old Zendesk data?
Yes. The archive is delivered to you as a set of local files: folders holding the ticket data and attachments, plus an HTML file that reads from those folders so you can browse tickets in a web browser. Nothing is hosted on our servers and there is no software to install, so you can store it wherever suits you, such as Google Drive or Box.
Can we migrate more Zendesk saved replies or canned responses after go-live?
Yes. You choose which saved replies to migrate during scoping, and if you later want any that you left out, tell us and we migrate them into Plain. Keeping the scope adjustable after go-live means you don't have to get every choice right on the first pass.
Can you keep our CRM updated with support activity after we move from Zendesk to Plain?
Yes, where Plain's API makes that activity available. We build an ongoing sync on Plain's and your CRM's APIs that writes support activity to the right contacts and companies, and you decide what gets logged. It is a separate piece of work from the migration, scoped and priced on its own.
What if we later want Zendesk tickets we chose to leave out of the migration?
Tell us which tickets you want added, for example by status, and we migrate them in a follow-up run. We can also share a list of every excluded ticket so you can review exactly what was left out. After the follow-up, you get a list matching each original ticket to its new ticket ID and URL, so your team can find it straight away.
If we use an AI agent in Plain, can our migrated Zendesk tickets be used to train it?
It depends on how Plain's AI agent learns. Some AI agents draw on your knowledge base and guidance content rather than on historical tickets, so check with Plain how its AI uses past conversations before deciding how much history to migrate for that reason. Migrated tickets arrive as regular tickets, and we can tag them, for example so the AI agent doesn't respond to them, or so you can include or exclude them.
If we use an AI agent, will it work straight away after the migration to Plain, and can its knowledge and guidance come across?
Partly. Knowledge base articles that the AI agent draws on can be migrated, so it has the same content to work from on day one. Some AI-specific settings, such as guidance written for the AI agent, can't be transferred between accounts and have to be set up again in Plain, and some AI agents also learn from your team's feedback in a way that stays with the old account, so they refine again in the new one. We confirm during scoping which of your AI agent's content can move, so nothing is assumed. Keep the AI agent paused while historical tickets load, or give it a condition that skips migrated tickets so it keeps serving live customers, and switch it back on once the migration is complete.
Why don't our ticket counts or open ticket numbers match between Zendesk and Plain after the migration?
Usually because the two numbers aren't counting the same tickets. A count in Plain can include tickets created there directly as well as migrated ones, and rules in Plain can close migrated tickets automatically. Open tickets also keep changing until the final delta sync, which brings their latest status across. We check the counts against the migrated tickets and the list of every ticket we migrated, and if a gap remains, we investigate specific examples with you.
Will migrated historical tickets skew our help desk reports, such as resolution time?
Yes, they can, so it's worth planning for. Some timing data, such as when a ticket was assigned, closed or changed status, stays with your old account because the platform's API doesn't provide it, so reports that measure resolution or closed tickets can count old tickets as resolved on the day they were migrated. How fully each platform's reports and analytics count imported historical tickets also varies, so confirm it with Plain before you rely on those reports for past periods. If you want, every migrated ticket can carry a migration tag, so you can keep it apart from new work in views and, where your reports can filter by tag, in reports. We also recommend exporting your historical reports from the old platform before you close it.
Will all of our historical Zendesk tickets stay searchable in Plain after the migration?
Yes. Historical tickets are migrated as regular tickets with their messages, customers and statuses, so your team can search them in Plain like any other ticket. If you want, each one can also carry a migration tag, so history can be filtered apart from new work, and the original ticket ID is kept in a field and in the ID-mapping file, so any old ticket number can be looked up.
Can you tag tickets that changed in Zendesk after the first migration run, so our team can review them in Plain?
Yes. When a follow-up sync adds new comments to tickets that were already migrated, we can put a tag of your choice on those tickets, for example only the ones that are still open, so your team can filter for them and review them. Because each sync runs as a custom script, we can also leave each ticket's current status, assignee and other details unchanged while the new comments are added. We confirm the rule with you first, such as whether "open" means the status in Zendesk or in Plain.
Can a ticket migrated from Zendesk be reopened later in Plain if a customer or agent needs it?
It depends on Plain and on the status the ticket arrives with. You choose the status migrated tickets come in with, such as closed for old history, and if you later want tickets set differently we can update them in bulk. Whether an agent can reopen a ticket that arrived closed, or move it from an archive area back into a live one, depends on how Plain handles closed tickets, so we check that with you during scoping and can test it on a sample ticket before go-live.

Ready to start your
Plain Migration?

Join hundreds of businesses who have successfully migrated with ClonePartner. Let's discuss your migration needs and build a plan that works for you.

Book free consultation

Attention to Detail

We meticulously handle every aspect of your migration, ensuring no data is lost during transfer and mapping every field correctly between platforms.

Custom Solutions

Every business is unique. We tailor your migration strategy to match your specific requirements, workflows, and data structures.

Security & Compliance

Your customer data is handled with enterprise-grade security protocols, ensuring compliance with GDPR, HIPAA, and industry standards.