Building your own ticket importer
If your support history lives somewhere Plain doesn't have a one-click importer for, you can bring it across yourself with a short script built on the Plain API.
When to Use This
Plain has one-click importers for Zendesk, Freshdesk, Intercom, and Help Scout. If you're coming from one of those, use the importer and skip this page.
A custom import is the route for everything else: a less common support tool, a shared inbox, an internal ticketing system, or a spreadsheet of past conversations you still want your team to be able to search.
What Comes Across
A custom import gives you the same foundations as the one-click importers:
Your conversation history, as threads with their messages, replies, and internal notes
Original timestamps, on every thread and every message, so your archive reflects when things actually happened
The right authors, with inbound messages attributed to the customer and replies attributed to the teammate who sent them
Attachments, uploaded to Plain and attached to the messages they belong to
Thread details you decide to map across, including title, status, priority, labels, assignee, and a link back to the original ticket
Imported threads don't trigger SLAs, auto-responses, or workflows. Bringing in years of history is quiet, and nothing goes out to your customers.
What's Involved
You'll write a script that reads conversations out of your current tool and creates them in Plain. In outline:
Create an API key with permission to import threads
Make sure the customers you're importing for exist in Plain
For each ticket, create the thread with its original date and details
Add that thread's messages, in batches, with attachments where you have them
Check the result for each item so you can retry anything that didn't land
Two things make this safer than it sounds. Each thread is imported against the reference it had in your old tool, so running the script twice skips anything already in Plain instead of creating duplicates. And you can start with a handful of tickets, check how they look in Plain, then run the rest.
Before You Start
Read Importing threads in the developer docs. It has the full technical detail: the API reference, the permissions you'll need, how messages and attachments are structured, and examples of each call.
It's worth planning the import as part of your wider move. Migrating from another tool covers the order most teams work in and what you'll rebuild in Plain rather than import.
If you'd like a hand scoping the script or a review before you run it at full volume, email help@plain.com.