Importing your data into FyneDesk

Bring your existing help desk into FyneDesk in one guided run. Connect Freshdesk, Zendesk, or Zoho Desk directly, or upload CSV files from another system. FyneDesk guides the scope and mapping, shows live progress, and gives you a clear report at the end.

Included on every plan, including Free. Import your data yourself or contact us for migration help before you begin. If your current help desk can export usable data, we will help you plan and test the move into FyneDesk.

What you can bring across

Data From Freshdesk, Zendesk, or Zoho Desk From CSV
CompaniesYesYes
Contacts (your customers)YesYes
TicketsYesYes (one row per ticket)
Ticket conversations & repliesYes— (a flat file can't hold a full thread)
Ticket attachmentsYes
Custom ticket fieldsYesYes (map your columns)
TagsYesYes
AgentsYes
Knowledge base articlesYesYes

A few things worth knowing up front:

  • Your original dates are kept. An imported ticket keeps its real created and resolved dates — it won't look like it was created today.
  • Tickets from a direct connection keep a source reference in the title, so your team can cross-reference the old record.
  • Nothing is emailed to your customers during an import, and no automations fire. Importing is silent.
  • You can leave the page. The import keeps running in the background — come back any time to check progress.

Where to find it

In the left sidebar, open Admin, then Settings. Under Developer & Data, choose Import data, then click Choose a source to begin.

Choose the connection that matches your source Freshdesk uses a domain and API key. Zendesk uses a subdomain, admin email, and API token. Zoho Desk uses OAuth. CSV accepts exported files for companies, contacts, tickets, and knowledge articles. Help Scout and Intercom direct connections are still listed as coming soon.

Option A — Import from Freshdesk

Step 1 — Get your Freshdesk API key

  1. Log in to Freshdesk.
  2. Click your profile picture (top right) → Profile settings.
  3. Your API key is shown on the right-hand side. Copy it.

Step 2 — Connect

On the Import data screen, choose Freshdesk, then enter:

  • Your Freshdesk domain (the web address, e.g. yourcompany.freshdesk.com — not your email)
  • The API key you copied

Click Test connection. FyneDesk checks the key and shows you roughly how much data it found (agents, contacts, tickets, articles) so you know what to expect. FyneDesk only ever reads from Freshdesk — nothing is changed on their side — and your key is stored encrypted and deleted when the import finishes.

The Connect your Freshdesk account step, with a Freshdesk domain field showing https://yourcompany.freshdesk.com, a masked API key field, and a Test connection button. Helper text notes that FyneDesk only reads from Freshdesk and stores the key encrypted.

Step 3 — Choose what to import

Tick the things you want to bring across — Agents, Contacts & companies, Tickets & conversations, and Knowledge base. Everything is optional, so import as much or as little as you like, and you can run more imports later.

The Choose what to import step, with checkboxes for Agents, Contacts and companies, Tickets and conversations, and Knowledge base, each with a short description. A Start import button sits at the bottom.

Step 4 — Review your agents

FyneDesk lists the agents it found in Freshdesk and matches anyone who already has a FyneDesk login by email address — matched agents are linked automatically. For agents who don't have an account yet, choose what happens from the dropdown:

  • Name only — keeps their name on their old tickets so the history reads correctly, without creating a login.
  • Invite as user — sends them a FyneDesk invitation (uses a seat on your plan).
  • Leave unassigned — brings their tickets in without an assignee.

You'll see how many agent seats are free before you commit. Invited agents keep their name on their old tickets until they accept, then re-link to their new account automatically.

The agent review step asking how agents should come across. A banner shows how many agent seats are free, and a dropdown for agents without an account offers Name only, Invite as user, and Leave unassigned. A matched agent is shown with a green Linked badge.

Step 5 — Check the status mapping

Freshdesk and FyneDesk use slightly different status names. On the mapping step, FyneDesk pre-fills sensible matches — for example Open → New and Pending → On Hold — and lets you change any of them. Priorities are mapped the same way.

The Map Freshdesk statuses step. Each Freshdesk status on the left maps to a FyneDesk status on the right via a dropdown: Open to New, Pending to On Hold, Resolved to Resolved, Closed to Closed, and the waiting statuses to New.

Step 6 — Run it

Click Start import and watch the live progress. You can leave the page — it keeps running. When it's done you'll get a results report (see After the import below).

Option B: Import from Zendesk

Choose Zendesk, then enter your Zendesk subdomain, an Admin email address, and an API token. FyneDesk tests the read only connection and shows the available agents, contacts, companies, tickets, and knowledge articles before anything is imported.

Create the API token in Zendesk Admin Center under Apps and integrations → APIs → API tokens. Keep the token private and paste it only into the secure FyneDesk connection field.

Zendesk is changing API token access Zendesk has announced a phased retirement of API token authentication beginning July 28, 2026. Existing eligible accounts can use the current FyneDesk connection while token access remains available. If your Zendesk account cannot create a token, contact FyneDesk before sharing any credentials so we can help you choose a safe migration path. Read the Zendesk announcement.

Option C: Import from Zoho Desk

Choose Zoho Desk and click Connect with Zoho. Sign in to the correct Zoho account and approve the requested read access. After the secure OAuth connection returns you to FyneDesk, review the inventory, choose what to import, and confirm the field and status mapping.

Option D: Import from a CSV file

Use this if your data lives in a spreadsheet, or if you're coming from a different helpdesk.

Step 1 — Add your files

On the Import data screen, choose CSV. You'll see a slot for each type: Companies, Contacts, Tickets, Knowledge base. Add a file for each thing you want to import — every file is optional.

Not sure how to format your file? Click Download template on any row to get a CSV with the right column headings to fill in.

The Upload your CSV files step, with a Choose file button and a Download template link for each of Companies, Contacts, Tickets, and Knowledge base. A notice reminds you that re-importing the same tickets creates duplicates and to resume an interrupted import instead of starting over.

Step 2 — Map your columns

Your spreadsheet's column names won't always match FyneDesk's fields — that's fine. After you upload, FyneDesk shows a mapping screen where it makes its best guess for each field and lets you confirm or change it. For example, you might point your Subject column at FyneDesk's Title field.

Required fields are marked, and you can't start until they're set. Anything you don't need, leave as Skip.

The column mapping screen for a CSV import. For Companies and Contacts, each FyneDesk field has a dropdown matched to a column from the uploaded spreadsheet, with unneeded fields set to Skip. Helper text notes duplicates are matched on Name and on Email.

Step 3 — Map your values

For fields like Status, Priority and Type, FyneDesk shows the distinct values it found in your file and lets you match each one to a FyneDesk value — for example Open → New, or Question → Service request. This makes sure your tickets land in the right state.

The value mapping step for Tickets. Above, ticket columns are mapped to FyneDesk fields; below, Map Status values and Map Priority values let each value found in the file be matched to a FyneDesk value or left as-is.

Step 4 — Run it

Click Start import, then watch the progress and review the report, just like the Freshdesk flow.

After the import: your results report

When the import finishes you'll see a per-type summary:

  • Created — brand-new records added.
  • Linked — records matched to something that already existed (so they weren't duplicated).
  • Skipped — already imported, so left alone.
  • Failed — rows that couldn't be imported.

If anything failed, you don't have to guess why. FyneDesk tells you exactly what went wrong, row by row, in plain language — for example "Row 2: invalid timestamp" or "Row 5: title is required and was empty." So fixing it is straightforward: click Download error report (CSV) for the full list, correct just those rows in your source file, and run the import again. FyneDesk won't duplicate the records that already came in, so only the fixed rows are added.

The import results report. Each type shows Created, Linked, and Skipped counts, with Tickets also showing a red Failed count. A green banner reads Import complete. Below, a Failed panel lists each failed row with a plain-language reason and a Download error report (CSV) link.
Failed rows are easy to fix A failed row never blocks the rest of your import — everything valid still comes in. Fix the handful of rows the report flags, re-run, and FyneDesk adds only those, leaving what's already in untouched.

Inviting imported agents

If you chose Name only for some agents, they appear as names on their tickets but don't have logins yet. To give them access:

  1. In the left sidebar, open Admin → Team Members (Admins and Owners with Manage users permission only).
  2. Click Invite Team Member, enter their email, choose Agent or Admin, optionally set ticket access, then click Send Invitation.
Use their original email Invite each agent using the same email address they used in your old helpdesk. As soon as they accept, the tickets currently showing their name automatically reconnect to their new account — so their history lines up with no extra work.

Pausing, resuming and cancelling

  • A big import runs in the background — you can close the page and come back.
  • You can pause and resume an import, or cancel it. Cancelling keeps whatever was already imported.
  • If you step away mid-setup and come back, FyneDesk picks up where you left off rather than starting over.

Running an import more than once

Imports are safe to repeat. If a run is interrupted, resume the same import and it continues from where it stopped without re-importing what's already in. Contacts and companies are matched on email and company name, so they're never duplicated.

Adding one type later If you want to add just one type later — say your knowledge base — start a new import and tick only that type. It'll bring those records in without touching everything else.

Troubleshooting

Imports — common questions and fixes

My knowledge base articles didn't import. Re-run the importer and make sure Knowledge base is ticked. From Freshdesk this comes across automatically — you don't need to export JSON or XML files.

It says "an import is already in progress." You have an import still open. Go back to Import data to view, resume, or cancel it, then start fresh.

Some tickets failed with a status or priority error. The value in your file doesn't match a FyneDesk status or priority. Use the value-mapping step (CSV) or the status mapping step (Freshdesk) to match them, then re-run.

A few attachments didn't come over. Files larger than 25 MB are skipped and listed in the report; the ticket itself still imports.

I can't find my live chat widget code. That's separate from importing — you'll find it under Settings → Website Widget.

Need a hand? If anything looks off, reach out via the contact page or email support@fynedesk.io and we'll help you get your data in cleanly.