Summary
Planhat's revenue data models (as of early 2026) are Deal, Line Item and Product
These models can be mapped to suitable objects in Salesforce and HubSpot, with the relevant records synced to and/or from Planhat using our native integrations
You can configure the mapping on both the model/object level and the field level, including specifying your chosen sync directions
Who is this article for?
Anyone interested in how Planhat can sync revenue data with external CRM systems (specifically Salesforce and HubSpot)
Tech/Ops Users configuring these integrations, whether from scratch or converting from using Planhat's previous revenue data models
This article refers to new revenue features in Planhat, launching in early 2026, so you may not have access to them yet. Please speak with your Planhat CSM if you would like to discuss the rollout.
Introduction
Planhat is designed for running a wide range of functions for a wide range of businesses. When it comes to revenue, Planhat can be used for both new-business sales (as a CRM), and post-sales (including renewals and upsells etc., as a CSP). Planhat is fully compatible with both recurring revenue (subscriptions/licenses) and one-off revenue (fees).
It's easy to sync data into (and out of) Planhat, connecting it with other tools you may have been using, whether that's a simple sync to transfer data into Planhat before you deprecate the other software, or you plan to be using Planhat and the other software concurrently. There are a variety of methods available for transferring data to/from Planhat, and one of these is native integrations, which are built-in (yet customizable) features within Planhat for connection and data sync.
In early 2026, we are introducing a new set of data models for revenue - Deal, Line Item and Product - which you can read a summary of in the "Definitions" box below.
In this article, we will take a look specifically at the native Planhat integrations for Salesforce and HubSpot, and in particular how you can sync these three new revenue data models. This gives a useful overview whether you are new to Planhat, or you are an existing Planhat customer who has previously set up the Salesforce or HubSpot integrations with the older, legacy data models and would like to learn how to sync with the new data models.
To summarize, you can have a bidirectional sync for Deals, Line Items and Products if desired, or choose to sync one-way (or not at all, e.g. if you don't want to sync Products). You can also configure syncing on an individual field level.
π Definitions
"Data models" - also called simply "models" - are the Planhat equivalent of the "objects" you may be familiar with from other tools. Data is organized into these models - we go through some key examples below. Within these models, individual examples of data are called "records"
"Company" is the model for organizations that are your prospects and customers - e.g. Company records could be "Apple" and "Zoom". Company is at the top of the Planhat data model structure
"Deal" is the "parent" revenue model for both potential sales (opportunities), confirmed sales and lost opportunities. Deals can have one or more (or no) Line Items associated with them. Each Deal is associated with a specific Company - e.g. a Deal record could be "Renewal Deal for Gong"
"Line Item" is a "child" model to the Deal model. Each Line Item corresponds to a specific unit of revenue - a "Subscription" (recurring revenue) or a "Fee" (non-recurring revenue). Each Line Item corresponds to a specific Deal, so that means it's (forecasted/actual/lost) revenue for a specific Company. An example Line Item record could be "Advanced Data on Deal with Scribe"
"Product" records act as (optional) templates for Line Items, e.g. "Advanced Data". They are housed in the "Product Catalog" within the "Settings" Global Tool
π Further reading
If you would like to learn about the Salesforce and HubSpot integrations more generally (such as the main principles, and information about mapping non-revenue models/objects), you can read the main articles on these integrations here:
Salesforce
Data mapping summary
Planhat model | Sync direction | Salesforce object |
Deal | Bidirectional (or one-way) | Opportunity (or custom object) |
Line Item | Bidirectional (or one-way) | OpportunityLineItem (or alternative object) |
Product | Bidirectional (or one-way) | Product2 (or custom object) |
Planhat Deal - Salesforce Opportunity
The Planhat Deal model is mapped to the Salesforce Opportunity object, or a custom object. When we list Salesforce fields below, we will be referring to the typical mapping with Opportunity.
Required fields for mapping
Planhat "Name" to Salesforce "Name"
Example optional fields for mapping
Planhat "Currency" to Salesforce "Opportunity Currency"
This is not mandatory since Planhat defaults to the tenant base currency (set in the "Revenue" > "Currency & FX" part of the "Settings" Global Tool for admins) if not mapped/synced, but if you have Multi-Currency enabled in Salesforce, it's recommended that you map this field
Planhat "Stage" to Salesforce "Stage"
Make sure the available list value options are the same in the two systems
π Tip: The Planhat Deal model has a system (i.e. standard/default) field "Stage" as we state above, but if you are running multiple pipeline processes in Planhat (e.g. a Sales pipeline for new business, and a CS pipeline for renewals), you can manage this via custom fields on the Deal model (see this separate article for further details), and then you could map these various fields within the Salesforce integration
Planhat "Close date" to Salesforce "Close Date"
Planhat "Owner" to Salesforce "Owner ID"
Example mapping screenshot
Click the image to view it enlarged
Planhat Line Item - Salesforce OpportunityLineItem
You could alternatively map the Line Item Planhat model to the QuoteLineItem (Quote Line Item) or ContractLineItem (Contract Line Item) Salesforce object, but when we list Salesforce fields below, we will be referring to OpportunityLineItem (Opportunity Line Item).
Required fields for mapping
Planhat "Start Date" to a suitable Salesforce custom field
OpportunityLineItems in Salesforce don't have start or end dates out of the box, so this requires a custom field. You could also initially map e.g. the "date" field from Salesforce, and adjust start and end dates on the Planhat side manually or with Automations
Planhat "Value", "MRR" or "ARR" to a suitable field in Salesforce
Example optional fields for mapping
Planhat "End Date" to a suitable field in Salesforce
For fixed-period Subscriptions
If unmapped, this defaults to open-ended
Planhat "Product Type" to a suitable field in Salesforce
This defines whether the Planhat Line Item is a "Subscription" (recurring) or a "Fee" (non-recurring)
If you have mapped Products and categorized them on the Planhat side, Planhat can alternatively deduce the Product Type from this - see the last note below
Notes
Line Items always relate to a Deal in Planhat, mirroring the Salesforce object relationships (e.g. OpportunityLineItem being linked to Opportunity)
Currency is set at the Deal level, rather than for individual Line Items
When importing Line Items into Planhat, if you map Product, Planhat can fill in any field data you didn't map in the integration, taking it from the Product in Planhat
Planhat Product - Salesforce Product2
The Planhat Product model is typically mapped to the Salesforce Product2 object (although you could potentially map to an alternative object in Salesforce).
Required fields for mapping
Planhat "Name" to Salesforce "Product Name"
Planhat "Value", "MRR" or "ARR" to a suitable field in Salesforce - not available as a standard field on the Salesforce Product2 object, so we recommend creating a custom field to store the price
Example optional fields for mapping
Planhat "Currency" to Salesforce "CurrencyIsoCode"
This is not required since Planhat defaults to the tenant base currency (set in the "Revenue" > "Currency & FX" part of the "Settings" Global Tool for admins) if not mapped/synced, but if you have Multi-Currency enabled in Salesforce, it's recommended that you map this field
Planhat "Type" to a suitable Salesforce custom field
To specify Subscription or Fee
Defaults to Subscription if unmapped / not specified
Planhat "Length (months)" to a suitable Salesforce custom field
This Planhat field specifies the Subscription duration in months
Planhat "Fixed Period" to a suitable Salesforce custom field
This Planhat field is a Boolean to indicate whether a Subscription is fixed period or open-ended
If not defined, this defaults to open-ended
Notes
While not mandatory, syncing and using the Product model helps ensure consistent pricing and categorization for Line Items
You can also easily add/upload/edit Products within Planhat if you don't have that data in Salesforce
Example mapping screenshot
Click the image to view it enlarged
HubSpot
Data mapping summary
Planhat model | Sync direction | HubSpot object |
Deal | Bidirectional (or one-way) | Deal |
Line Item | Bidirectional (or one-way) | Line Item |
Product | Bidirectional (or one-way) | Product |
Planhat Deal - HubSpot Deal
The Planhat Deal model is mapped to the HubSpot Deal object.
Required fields for mapping
Planhat "Name" to HubSpot "Deal Name"
Example optional fields for mapping
Planhat "Currency" to HubSpot "Currency"
It's strongly recommended that you map this; if you skip this, Planhat will automatically assign the tenant base currency (set in the "Revenue" > "Currency & FX" part of the "Settings" Global Tool for admins)
Planhat "Stage" to HubSpot "Deal Stage"
Make sure the available list value options are the same in the two systems
π Tip: The Planhat Deal model has a system (i.e. standard/default) field "Stage" as we state above, but if you are running multiple pipeline processes in Planhat (e.g. a Sales pipeline for new business, and a CS pipeline for renewals), you can manage this via custom fields on the Deal model (see this separate article for further details), and then you could map these various fields within the HubSpot integration
Example mapping screenshot
Click the image to view it enlarged
Planhat Line Item - HubSpot Line Item
The Planhat Line Item model is mapped to the HubSpot Line Item object.
Required fields
Planhat "Start Date" to HubSpot "Billing Start Date" or a suitable custom field
Planhat "Value", "MRR" or "ARR" to a suitable field in HubSpot
Example optional fields
Planhat "End Date" to HubSpot "Billing End Date" or a suitable custom field
For fixed-period Subscriptions
Planhat "Product" to HubSpot "Product"
Notes
Line Items always relate to a Deal in Planhat, mirroring the Line Item / Deal relationship in HubSpot
Currency is set at the Deal level, rather than for individual Line Items
When importing Line Items into Planhat, if you map Product, Planhat can fill in any field data you didn't map in the integration, taking it from the Product in Planhat
Example mapping screenshot
Planhat Product - HubSpot Product
The Planhat Product model is mapped to the HubSpot Product object.
Required fields
Planhat "Name" to HubSpot "Name"
Planhat "Value", "MRR" or "ARR" to a suitable field in HubSpot
Add custom fields in HubSpot if needed
Example optional fields
Planhat "Currency" to HubSpot "Currency" (or suitable field)
It's recommended that you map this; if you skip this, Planhat will automatically assign the tenant base currency (set in the "Revenue" > "Currency & FX" part of the "Settings" Global Tool for admins)
Planhat "Length (months)" to HubSpot "Term"
If you map this, make sure the HubSpot "Billing Frequency" is monthly
Example mapping screenshot
Click the image to view it enlarged







