Planhat
HockeyStack's Planhat integration pulls your customer success data from Planhat and connects it with the rest of your customer data. This includes Companies, Contacts (Endusers), Licenses, Opportunities, Projects, Tasks, Tickets, NPS Responses, Conversations, Assets, Churn records, Issues, and more.
Connecting to Planhat
The Planhat connection is established by providing a Planhat API Access Token from Atlas > Ingest in your HockeyStack dashboard. To generate an API Access Token in Planhat:
Go to Settings in your Planhat account.
Navigate to Private Apps and create a new Private App.
Copy the generated API Access Token; it will only be shown once, so store it securely.
Paste the token into HockeyStack when prompted during connection setup.
The token is a static Bearer token that authenticates all requests HockeyStack makes to the Planhat API. You can revoke access at any time by disabling or deleting the Private App in Planhat.
How It Works
When you integrate Planhat, HockeyStack pulls certain actions and properties from it. Each action comes with action properties that give more information about it. HockeyStack pulls the following objects from Planhat:
Company
Company Updated
Your customer accounts in Planhat
Enduser (Contact)
Contact Updated
Individual contacts at customer companies
License
License Updated
Subscription and licensing records
Opportunity
Deal Updated
Expansion and renewal pipeline items
Project
Project Updated
Customer success projects and milestones
Task
Task Updated
CS team tasks associated with accounts
Ticket
Ticket Updated
Support tickets linked to companies or contacts
NPS
NPS Response
Net Promoter Score survey responses
Conversation
Conversation Updated
Logged conversations with customers
Asset
Asset Updated
Custom assets associated with companies
Churn
Churn Updated
Churn records for lost customers
Issue
Issue Updated
Issues tracked against customer accounts
User
Owner Updated
Planhat team members (CSMs, account owners)
For objects like Company and Enduser, HockeyStack also pulls all of their properties, which are added to that object's profile in HockeyStack and can be used for segmentation. Custom fields defined in Planhat are also pulled and prefixed with planhat__ followed by the field name.
Technical Details
Each request fetches up to 100 records at a time using offset/limit pagination and processes results sequentially. During the initial historical data load, HockeyStack pulls up to 4 years of data per object. After that, only recently modified records are pulled on each subsequent run.
Because the Planhat API does not support server-side date filtering, HockeyStack performs client-side incremental sync: all records are fetched in pages, and records older than the last pulled date are skipped. For Companies and Endusers, HockeyStack requests records sorted by lastTouch in descending order so pagination can stop early once records are old enough, reducing unnecessary API calls.
All Planhat properties are stored in HockeyStack with the planhat__ prefix (e.g., planhat__mrr, planhat__health, planhat__phase). Custom fields are additionally suffixed with __custom (e.g., planhat__my_custom_field__custom).
Caveats
HockeyStack pulls data from Planhat on a daily basis after the initial historical load.
The Planhat API does not support native date-range filtering, so HockeyStack must fetch all records and filter client-side. This means sync time scales with your overall data volume in Planhat.
If a Planhat object type is not accessible due to insufficient API permissions on the connected Private App, that object type is skipped with a warning and the rest of the sync continues normally.
Planhat Integration FAQs
What credentials are needed to connect Planhat to HockeyStack? An API Access Token generated from a Private App in Planhat's Settings is required. This token authenticates all API calls HockeyStack makes to read your Planhat data.
Does HockeyStack push data back to Planhat? No. HockeyStack only reads data from Planhat. No data is written back to your Planhat account.
What permissions does the Planhat Private App need? The Private App should have read access to all the object types you want HockeyStack to pull: Companies, Endusers, Licenses, Opportunities, Projects, Tasks, Tickets, NPS, Conversations, Assets, Churn, Issues, and Users. Object types that the token cannot access are automatically skipped.
How much historical data does HockeyStack load from Planhat? The initial historical load covers up to 4 years of data.
Last updated