Skip to main content
GainTrace reads Planhat through its API with a private app token, so you don’t need to export files. This page covers what you need from Planhat, what comes over and what stays behind. For how the whole switch works, see Switch from another tool.

Before you start

  • A Planhat user with the ServiceAccount permission. Private apps are created in Planhat’s App Center, and only users with this permission see the option.
  • Read access for the data you want to move. A private app’s permissions limit what its token can read. Users, companies, end users and custom fields are required: without them, Check access or the scan stops. Grant conversations and tasks together, because the timeline reads both. Read access to objectives, NPS, licenses, opportunities, invoices and churn is optional: anything else the token can’t read is left out, and the scan tells you which.
  • Owner or admin in GainTrace. See Before you start for the rest.

Create the token

1

Create a private app in Planhat

In Planhat, open App Center, choose + New app, then + Private app. Name it for GainTrace, set its permissions to read the data you want to move, and save.
2

Generate the API access token

On the app’s Info tab, set the token’s expiry date far enough out to last until you switch over. The default is 30 days and the maximum is 365. Then choose Generate new token and copy it. Planhat shows the token only once.
3

Connect in GainTrace

Go to Setup > Switch from another tool, choose Planhat, paste the token into API token and choose Check access.
Planhat tokens expire on the date you set. You can replace the token on the Connect step until the import starts, but not after. A token that expires mid-import, or before you switch over, stops the import and Import changes from reading Planhat. Set the expiry to cover your whole switch.
GainTrace stores the token encrypted, uses it only to read, and deletes it when you switch over or stop the import. To cut off access sooner, disable the private app in Planhat or delete its token. If your Planhat account is hosted in the EU, paste the same token. GainTrace also tries Planhat’s EU API address.

What comes over

Planhat tasks carry no risk or escalation flag, so nothing from Planhat goes to Triage.

Objectives and plans

Planhat’s API gives an objective a name, a health and a Company, but no plan, status or due date. Both choices in Review put each Company’s objectives into one plan:
  • With Merge into one live plan, they go into the Company’s merged plan. It lands archived if the Company already has a live plan made in GainTrace.
  • With Keep as separate plans, they go into a plan named “Objectives from Planhat”, which lands live beside any existing plan.

Revenue

A Company’s ARR is its ARR in Planhat. If it has none, ARR is the total of its licenses still in force. MRR works the same way, or is ARR divided by 12. Planhat doesn’t name a currency on a Company, so GainTrace takes it from the Company’s licenses. GainTrace keeps one currency per Company. If a Company’s licenses use more than one currency, or none has a currency (including a Company with no licenses), its ARR, MRR and revenue history aren’t set. Its licenses, deals and invoices still land. Results lists it under Skipped with the reason. Fix the currency on its licenses in Planhat, then import changes.

What stays in Planhat

These appear in Review under What stays in Planhat, and on the rebuild checklist once the scan finishes:

If something goes wrong

For every other message, see If something goes wrong.

Good to know

  • Only reads. GainTrace never writes to Planhat. Its reads show in Planhat as actions by your private app.
  • Rate limits. GainTrace paces its reads to stay under Planhat’s API quota. Other integrations using Planhat’s API at the same time can slow the import.
  • Old NPS answers. By default, Planhat’s API returns only NPS responses from the last 360 days. GainTrace asks for older ones, but Planhat doesn’t document how far back it goes, so compare the NPS count in Review with Planhat.
  • Quiet import. Nothing imported from Planhat triggers flows, webhooks or signal detection. See Imports are quiet.
Last modified on October 21, 2026