Helpdesk migration checklist

Migration Checklist: Moving to Zendesk

An exhaustive 8-phase punch list for migrating tickets, users, organizations, knowledge base content, and business rules into Zendesk Support.

143 tasks 6–16 weeks typical Updated May 27, 2026
Zendesk
Tickets
Conversations
Customers
Attachments
Knowledge Base
Tags
0 of 143 tasks complete

Phase 0

Decide & Plan

Decisions that lock scope before any work begins.

  • Risk if skipped: Scope ambiguity around Talk recordings or Sunshine custom objects surfaces mid-migration and stalls cutover.

  • Risk if skipped: Plan-tier limits discovered after contract signing force last-minute upgrades or cut features from scope.

  • Risk if skipped: Pulling all-time history balloons storage usage and migration runtime; pulling too little erodes agent context.

  • Risk if skipped: Provisioning in the wrong region requires Zendesk Customer Support to spin up a fresh account and reload everything.

  • Risk if skipped: PHI loaded into an account without an active BAA creates a notifiable breach.

  • Risk if skipped: Unwritten exclusions become user complaints after cutover.

  • Risk if skipped: Without numeric criteria the migration is never formally finished and the team keeps firefighting.

Phase 1

Pre-Migration Prep

Everything that must be true before the first byte leaves the source.

1a. Source-system audit and cleansing

  • Risk if skipped: Without a baseline you cannot prove the migration was complete during Phase 6 reconciliation.

  • Risk if skipped: Duplicate users in source cause one agent's tickets to land under the wrong end-user profile.

  • Risk if skipped: Mixed phone formats break Talk number lookup and prevent the customer-card phone match from firing.

  • Risk if skipped: Required-field failures abort batches of up to 100 records and force re-batching mid-cutover.

  • Risk if skipped: Tag fragmentation post-migration breaks the views, triggers, and reports built on those tags.

1b. Destination Zendesk setup

  • Risk if skipped: A throwaway subdomain locked in by procurement haunts the URL forever.

  • Risk if skipped: Skipping sandbox work means every problem in Phase 4 is a production-data problem.

  • Risk if skipped: Discovering imports are disabled on cutover day adds a multi-hour support delay.

  • Risk if skipped: A wrong timezone means every migrated timestamp is off by hours in agent views.

  • Risk if skipped: Wrong field type forces deletion and re-creation, which orphans every reference in existing tickets, triggers, and macros.

  • Risk if skipped: Hundreds of options added one-by-one through the UI burns a week and produces typos.

  • Risk if skipped: Hitting the Custom Objects ceiling mid-load forces a schema redesign.

  • Risk if skipped: Required-field conditions block ticket creation during the import with cryptic validation errors.

  • Risk if skipped: Loading collaborators as full agents inflates the seat count and the bill.

  • Risk if skipped: Tickets imported before SLA policies exist arrive with no SLA target attached, breaking downstream reports.

  • Risk if skipped: Default allowlist may reject .key, .pages, or other source file types and skip those attachments.

  • Risk if skipped: A single 'thank you for contacting us' trigger sends 100k+ emails to customers during import.

1c. People and access prep

Phase 2

Source Export

Pull every byte you might need; you cannot re-export after cutover.

  • Risk if skipped: Loading users before their organizations strands the org_id and forces a second pass to backfill.

  • Risk if skipped: Search-based exports silently drop archived tickets and produce a count mismatch in Phase 6.

  • Risk if skipped: Collapsing public and internal comments into a single field on import leaks private notes to end users.

  • Risk if skipped: Without the audit log, SLA breach evidence and original channel attribution are lost.

  • Risk if skipped: Attachment URLs expire and re-fetch becomes impossible after source cancellation.

  • Risk if skipped: Side Conversation context evaporates because the destination has no parallel data structure.

  • Risk if skipped: Custom Objects vanish from the native export and resurface only after months of post-cutover work.

  • Risk if skipped: CSAT trend data evaporates and the team loses the baseline that informs hiring and quality calibration.

  • Risk if skipped: Without the cursor, the delta export at cutover either over-pulls and creates duplicates or under-pulls and loses recent tickets.

Phase 3

Transform & Map

The data-engineering core: shape source exports into Zendesk-loadable files.

3a. Mapping spreadsheet

  • Risk if skipped: Without a single source of truth for the mapping, every transformation tweak risks a regression nobody catches.

  • Risk if skipped: Loading without an external_id key makes re-runs duplicate every record.

  • Risk if skipped: Unmapped dropdown values arrive as null and reports break silently.

  • Risk if skipped: Tag collisions block future edits to the field configuration and surface as 'tag already in use' errors.

  • Risk if skipped: Crossing the limit silently degrades agent UI load times and ticket-form submission reliability.

3b. Data transformation

  • Risk if skipped: Timestamps imported without offset land in the wrong day in agent views.

  • Risk if skipped: Encoding errors abort whole files and surface only after the upload completes.

  • Risk if skipped: January 4 imports as April 1 with no error.

  • Risk if skipped: A single failing value rejects the entire row.

  • Risk if skipped: A single ragged comment shifts every column to the right for the rest of the file.

  • Risk if skipped: Oversize attachments are silently dropped and the linked binary becomes inaccessible.

3c. Relationship and audit-trail strategy

  • Risk if skipped: Using the wrong load path re-stamps every ticket to migration day, destroying SLA history and tenure context.

  • Risk if skipped: Loading old closed tickets as open inflates the active-ticket dashboard for months.

  • Risk if skipped: Lookup fields loaded before the referenced object exists arrive as null and require a second pass.

  • Risk if skipped: Building on legacy objects in 2026 means a second migration within months.

3d. Helpdesk-specific transforms

  • Risk if skipped: Out-of-order or mis-flagged comments leak internal commentary to end users on first view.

  • Risk if skipped: Loading translations after switching the default locale strands them under the wrong language.

  • Risk if skipped: Automations referencing the wrong schedule fire at the wrong time and close tickets prematurely.

  • Risk if skipped: Naive load resets every SLA breach counter to zero and erases compliance evidence.

  • Risk if skipped: MX change before Zendesk addresses are verified bounces every customer email.

  • Risk if skipped: Porting timeline ignored means cutover day has no working phone channel.

  • Risk if skipped: Without the collapse, Side Conversation context is dropped silently and agents lose follow-up trails.

  • Risk if skipped: Loading every contributor as a full agent triples the seat invoice.

Phase 4

Sandbox Test Migration

Catch every problem in sandbox before it costs in production.

  • Risk if skipped: Exceeding the cap aborts whole batches and forces re-chunking under pressure.

  • Risk if skipped: Crossing the limit returns TooManyJobs and silently leaves work unfinished.

  • Risk if skipped: Edge cases that pass the sample test still fail at production scale; document and fix each one.

  • Risk if skipped: Inline-image src URLs from source remain pointing at the dead source domain and silently break.

  • Risk if skipped: Production runtime two times the sandbox estimate blows the cutover window and forces a partial rollback.

  • Risk if skipped: An active trigger in sandbox is a live trigger in production until the same admin pauses both.

  • Risk if skipped: Verbal sign-off evaporates and Phase 5 fails because a known issue was 'going to be fixed later'.

Phase 5

Production Cutover

A tightly sequenced execution window. Idempotency everywhere.

  • Risk if skipped: Partial freeze means the delta export misses tickets created during the freeze ramp.

  • Risk if skipped: An active 'send response' trigger spams thousands of customers within minutes of the first ticket load.

  • Risk if skipped: Loading users without external_id makes re-runs duplicate every user.

  • Risk if skipped: Using the standard ticket creation path re-stamps created_at to today.

  • Risk if skipped: Loading translations before articles errors out the entire translation batch.

  • Risk if skipped: Without per-step logs, Phase 6 reconciliation is guesswork.

  • Risk if skipped: Re-enabling every trigger at once detonates queued background jobs and floods customers.

Phase 6

Validate

Prove the migration was correct. No user access until this phase passes.

  • Risk if skipped: Count mismatches discovered after user access exposes the gap to customers first.

  • Risk if skipped: A single mis-flagged internal note leaks private commentary to a customer.

  • Risk if skipped: Re-stamped timestamps invalidate every tenure-of-issue and SLA-breach metric.

  • Risk if skipped: Broken inline-image src URLs persist post-launch and erode help-center trust.

  • Risk if skipped: Without written sign-off, accountability for go-live decisions becomes finger-pointing later.

Phase 7

Post-Migration Cleanup

Close out so the team can move on.

  • Risk if skipped: Leaving source writable means agents accidentally update tickets in source post-cutover and lose those updates.

  • Risk if skipped: Forgotten integrations leak ticket activity to the wrong system or to nowhere.

  • Risk if skipped: Hitting storage limits silently rejects new attachments.

  • Risk if skipped: Without an archive, any audit, dispute, or 'what did the customer originally say' inquiry post-cutover has no source-of-truth.

Watch list

Risks to track throughout

These risks live across multiple phases — keep an eye on them from kickoff through cutover.

  • Throughput and concurrency ceilings under heavy load

    Bulk operations cap at 100 records per request and 30 concurrent background jobs per account. Test runs, mapping fixes, and re-loads compound; a load that fits the cap on paper hits TooManyJobs in practice. Monitor the remaining job count from Phase 4 onward and throttle accordingly.

  • Audit-trail loss from using the wrong import path

    Standard ticket creation re-stamps created_at and updated_at to the request time. Only the Ticket Import path preserves source timestamps. Pre-1970 dates round up to 1970. A single load step on the wrong path destroys SLA history, tenure context, and breach-of-policy evidence for every ticket in the batch.

  • Sunshine custom-object data loss in native exports

    Zendesk's native CSV export flattens or omits Sunshine Custom Object records. Legacy custom objects retire entirely in June 2026 and new creation stops January 15, 2026. Source extraction must explicitly pull Sunshine object types, schemas, records, and relationship records, then load into the new Custom Objects framework. Skipping this step silently abandons the dataset.

  • Triggers and automations firing during import

    Triggers fire on every ticket update including imports done via the standard path. A single un-paused 'thank you for contacting us' trigger can send 100k+ emails to customers within minutes. Confirm in Phase 1 that every trigger and automation is inactive; re-confirm at the start of Phase 5; re-enable in a staged sequence in Phase 5's final step, smoke-testing each batch.

Pair this with the long-form guide

The complete Zendesk migration guide

Same research, written as prose: data model, import mechanisms, mapping strategy, pitfalls, and partner landscape.