Skip to content
Plain Help Center home
InboxAsk a human

Jira Service Management

Bringing your Jira Service Management request history into Plain takes a short script built on the Plain API. Your team keeps every past request, searchable alongside live threads, from the day you switch. This page covers how JSM's data maps onto Plain's and the decisions to make before you run it.

This page is about moving your support history into Plain. To link Jira issues to live threads and get prompted when they're resolved, see the Jira integration.

What Gets Imported

  • Customers → Customers

  • Requests → Threads

    • You choose which statuses land as Done and which stay Todo

    • Comments are carried over. Comments your team marked as internal appear as internal comments in Plain

  • Labels and components you choose → Labels

  • Original timestamps: every thread and every comment keeps the date it had in Jira, so your history stays in order

  • A link back to the original request, so anyone reading the thread in Plain can still find it in Jira

CSAT ratings and custom fields on requests are not imported. See Migrating from another tool for the full picture of what you'll rebuild in Plain.

Importing history doesn't trigger SLAs, auto-responses, or workflows, so nothing goes out to your customers and no SLA clocks start on old tickets.

Mapping Jira Service Management onto Plain

Workflows and request types are configured per project, so plan this against your own setup:

  • Statuses. Plain has three status groups: Todo, Snoozed, and Done. Every Jira project defines its own workflow, so decide which of your statuses land as Done and which stay Todo. If the original status matters for reporting, add it as a label so you keep it.

  • Public and internal comments. JSM marks each comment as visible to the customer or to your team only. Carry that distinction across so internal discussion arrives as an internal comment in Plain.

  • Request types. Plain routes with labels, Tiers, and workflows rather than a form per request type. Bring the request type across as a label, and rebuild the forms you need with contact forms or the customer inbox.

  • Issue keys. Use the issue key as each thread's external reference. That's what makes the import safe to re-run.

  • Organizations. Plain sets a customer's Company automatically from their email domain. If your JSM organizations don't line up with domains, create a Tenant per organization instead and attach customers to it.

  • Assignees. Decide which Jira assignees map to the teammates you've already invited to Plain, and what to do with anyone who has left.

Running the Import

The script itself works the same way for any tool, so the walkthrough lives in one place: Building your own ticket importer covers the steps, what makes the import safe to re-run, and how to start with a handful of requests before running the rest. Importing threads in the developer docs has the API reference and examples of each call.

If you'd like a hand scoping the script or a review before you run it at full volume, email help@plain.com.