Models and Fields

You can think of Planhat as having 3 types of model, with some subtypes:

  1. Business Models

    • Opinionated Models

    • Flexible Models

  2. Content Models

  3. Other

Opinionated models

Created with a particular purpose in mind, and have tailored system fields and processes to support this. An example of this is the License model, which tracks subscription data, and has custom functionality for auto-renewals and forecasting.

Flexible models

Often regarded as “extra” models to support the customer’s internal data structure. Some support Time Series data, and are often used to track product usage and similar important event-based information. Others do not, and are therefore often used simply to expand the data structure, sometimes to facilitate integrations. All Business Models can be renamed.

Content models

Come in many forms. Workflow templates are templatised workflows, which in turn serve to group tasks and email sequences. Global Filters are rules-based collections of records, often used to trigger automations or notifications (e.g. “when a Company enters churn risk filter, send a notification to the Company owner”).

“Other”

comprises various system models, or otherwise “behind the scenes” models that need not be described in detail here. Also in this category, you could include the “User” model, representing the individual person using the app.

You can think of Planhat as having 3 types of model, with some subtypes:

  1. Business Models

    • Opinionated Models

    • Flexible Models

  2. Content Models

  3. Other

Opinionated models

Created with a particular purpose in mind, and have tailored system fields and processes to support this. An example of this is the License model, which tracks subscription data, and has custom functionality for auto-renewals and forecasting.

Flexible models

Often regarded as “extra” models to support the customer’s internal data structure. Some support Time Series data, and are often used to track product usage and similar important event-based information. Others do not, and are therefore often used simply to expand the data structure, sometimes to facilitate integrations. All Business Models can be renamed.

Content models

Come in many forms. Workflow templates are templatised workflows, which in turn serve to group tasks and email sequences. Global Filters are rules-based collections of records, often used to trigger automations or notifications (e.g. “when a Company enters churn risk filter, send a notification to the Company owner”).

“Other”

comprises various system models, or otherwise “behind the scenes” models that need not be described in detail here. Also in this category, you could include the “User” model, representing the individual person using the app.

You can think of Planhat as having 3 types of model, with some subtypes:

  1. Business Models

    • Opinionated Models

    • Flexible Models

  2. Content Models

  3. Other

Opinionated models

Created with a particular purpose in mind, and have tailored system fields and processes to support this. An example of this is the License model, which tracks subscription data, and has custom functionality for auto-renewals and forecasting.

Flexible models

Often regarded as “extra” models to support the customer’s internal data structure. Some support Time Series data, and are often used to track product usage and similar important event-based information. Others do not, and are therefore often used simply to expand the data structure, sometimes to facilitate integrations. All Business Models can be renamed.

Content models

Come in many forms. Workflow templates are templatised workflows, which in turn serve to group tasks and email sequences. Global Filters are rules-based collections of records, often used to trigger automations or notifications (e.g. “when a Company enters churn risk filter, send a notification to the Company owner”).

“Other”

comprises various system models, or otherwise “behind the scenes” models that need not be described in detail here. Also in this category, you could include the “User” model, representing the individual person using the app.

A Deeper look at the Business Models

Opinionated Models

These are models created for a distinct purpose, with special features or system fields available to them. Below you will first find a general list of the Opinionated Models, followed by a deeper dive into a selection of models and their particular logic.

To provide some examples of how these models are unique, and “opinionated”:

Licenses represent subscriptions purchased by the customer, and can be open-ended or fixed term, and can also be set to auto-renew within a specified notice period. Licenses are also crucial inputs to a lot of system revenue reports.

Endusers, of course, represent contacts, and are linked to conversations and tasks along with the Company. They can be linked to User Activities (Time Series data) to track things like product usage.

Tasks and Workflows: Tasks have a status, and a done date. Workflows can be sequences of Tasks, but also of Emails, and can be set up to be manually completed (or sent, in the case of emails), or automated.

Conversations: Notes and custom conversations can be logged manually in the app, or automatically as a result of tasks being completed.

Emails, Tickets, and Chats are all internal collections generated by integrations, which are displayed as threads on the Conversation model. For example, if you exchange multiple emails with an enduser, each individual email is stored as a thread on a single conversation record of type email (with the exception of Marketing emails). Email syncing logic has some peculiarities and can be studied in more detail here.

Tickets and Chats work in a similar way, with Tickets being created by certain support tool integrations, and Chats being created by the Intercom integration.

Companies are at the centre of the data structure. In short, almost all data ultimately relates to the Company model. Be it emails shared between multiple endusers and team members, but displayed in the Company Profile, or Assets which represent products sold to the Company, with usage data stored as time series data on the Asset. All of this data has a relationship to the Company.

Below are listed some concepts or features available (uniquely, for the most part) on the Company model:

  • Health Profiles. This is a central concept, allowing you to calculate a score from 0-10 based on custom criteria, evaluating the strength of a Company’s status as your customer. The Score’s development over time is tracked as Time Series, mentioned in more detail further down. Read more about Health Scores here.

  • Group structures. The Company model has an orgPath allowing companies to relate to each other in a hierarchy. This is to reflect real-world relationships, where different countries, or products, or other segments, are technically separate legal entities from the parent organisation. Read more about group structures here.

  • Owners and Portfolio Permissions. Fields on the Company level can denote the relationship between the Company and the User, which in turn can control data permissions - mentioned in more detail here.

  • Revenue Calculations. The Company model aggregates revenue data from the License model, calculating the current amount of active ARR for the Company, as well as the accumulated amount, and other data. Furthermore, Company and License data is aggregated in system revenue reports, to calculate Net Revenue Retention and other metrics. Read more about revenue reports here.

  • Portals. The Planhat environment can be share with customers who don’t have a Planhat license. they are created as external users, and have roles and permissions of their own. Following from this, they can access data relating to their Company in Planhat. Read more about portals here.

  • Calculated Metrics, User Activities and Custom Metrics. The Company model supports all of these concepts, along with a handful of other models (Enduser, Asset, Project).

There are many other things that are particular to the Company model. Read more here.

Flexible Models

A number of models are available (depending on the package you have purchased) with a less intentional data structure:

Assets and Projects

These are two models which support user activities, custom metrics, calculated metrics, as well as custom fields. They relate to the Company model, and there can be multiple records per Company. The intention is to provide flexible models, which are often renamed, to represent data structures particular to the customer. The default names represent two frequent use cases. The “Asset” name, for example, was chosen because these models often represent individual products sold to a customer, with associated user activities and custom metrics tracking product usage and aggregated time series data, respectively. You can read more about this here.

Campaigns, Objectives, and Workspaces

These models are the same as the above, with the exception that they do not support time series data. While the above, therefore, might be used to analyse the development over time of product usage, or perhaps marketing projects, these models are more “flat”, and are often renamed and used to store additional data models particular to the customer. Sometimes customers with a complex data structure in Salesforce, Hubspot, or in a Data Warehouse, utilise these models. Read more here.

A Deeper look at the Business Models

Opinionated Models

These are models created for a distinct purpose, with special features or system fields available to them. Below you will first find a general list of the Opinionated Models, followed by a deeper dive into a selection of models and their particular logic.

To provide some examples of how these models are unique, and “opinionated”:

Licenses represent subscriptions purchased by the customer, and can be open-ended or fixed term, and can also be set to auto-renew within a specified notice period. Licenses are also crucial inputs to a lot of system revenue reports.

Endusers, of course, represent contacts, and are linked to conversations and tasks along with the Company. They can be linked to User Activities (Time Series data) to track things like product usage.

Tasks and Workflows: Tasks have a status, and a done date. Workflows can be sequences of Tasks, but also of Emails, and can be set up to be manually completed (or sent, in the case of emails), or automated.

Conversations: Notes and custom conversations can be logged manually in the app, or automatically as a result of tasks being completed.

Emails, Tickets, and Chats are all internal collections generated by integrations, which are displayed as threads on the Conversation model. For example, if you exchange multiple emails with an enduser, each individual email is stored as a thread on a single conversation record of type email (with the exception of Marketing emails). Email syncing logic has some peculiarities and can be studied in more detail here.

Tickets and Chats work in a similar way, with Tickets being created by certain support tool integrations, and Chats being created by the Intercom integration.

Companies are at the centre of the data structure. In short, almost all data ultimately relates to the Company model. Be it emails shared between multiple endusers and team members, but displayed in the Company Profile, or Assets which represent products sold to the Company, with usage data stored as time series data on the Asset. All of this data has a relationship to the Company.

Below are listed some concepts or features available (uniquely, for the most part) on the Company model:

  • Health Profiles. This is a central concept, allowing you to calculate a score from 0-10 based on custom criteria, evaluating the strength of a Company’s status as your customer. The Score’s development over time is tracked as Time Series, mentioned in more detail further down. Read more about Health Scores here.

  • Group structures. The Company model has an orgPath allowing companies to relate to each other in a hierarchy. This is to reflect real-world relationships, where different countries, or products, or other segments, are technically separate legal entities from the parent organisation. Read more about group structures here.

  • Owners and Portfolio Permissions. Fields on the Company level can denote the relationship between the Company and the User, which in turn can control data permissions - mentioned in more detail here.

  • Revenue Calculations. The Company model aggregates revenue data from the License model, calculating the current amount of active ARR for the Company, as well as the accumulated amount, and other data. Furthermore, Company and License data is aggregated in system revenue reports, to calculate Net Revenue Retention and other metrics. Read more about revenue reports here.

  • Portals. The Planhat environment can be share with customers who don’t have a Planhat license. they are created as external users, and have roles and permissions of their own. Following from this, they can access data relating to their Company in Planhat. Read more about portals here.

  • Calculated Metrics, User Activities and Custom Metrics. The Company model supports all of these concepts, along with a handful of other models (Enduser, Asset, Project).

There are many other things that are particular to the Company model. Read more here.

Flexible Models

A number of models are available (depending on the package you have purchased) with a less intentional data structure:

Assets and Projects

These are two models which support user activities, custom metrics, calculated metrics, as well as custom fields. They relate to the Company model, and there can be multiple records per Company. The intention is to provide flexible models, which are often renamed, to represent data structures particular to the customer. The default names represent two frequent use cases. The “Asset” name, for example, was chosen because these models often represent individual products sold to a customer, with associated user activities and custom metrics tracking product usage and aggregated time series data, respectively. You can read more about this here.

Campaigns, Objectives, and Workspaces

These models are the same as the above, with the exception that they do not support time series data. While the above, therefore, might be used to analyse the development over time of product usage, or perhaps marketing projects, these models are more “flat”, and are often renamed and used to store additional data models particular to the customer. Sometimes customers with a complex data structure in Salesforce, Hubspot, or in a Data Warehouse, utilise these models. Read more here.

A Deeper look at the Business Models

Opinionated Models

These are models created for a distinct purpose, with special features or system fields available to them. Below you will first find a general list of the Opinionated Models, followed by a deeper dive into a selection of models and their particular logic.

To provide some examples of how these models are unique, and “opinionated”:

Licenses represent subscriptions purchased by the customer, and can be open-ended or fixed term, and can also be set to auto-renew within a specified notice period. Licenses are also crucial inputs to a lot of system revenue reports.

Endusers, of course, represent contacts, and are linked to conversations and tasks along with the Company. They can be linked to User Activities (Time Series data) to track things like product usage.

Tasks and Workflows: Tasks have a status, and a done date. Workflows can be sequences of Tasks, but also of Emails, and can be set up to be manually completed (or sent, in the case of emails), or automated.

Conversations: Notes and custom conversations can be logged manually in the app, or automatically as a result of tasks being completed.

Emails, Tickets, and Chats are all internal collections generated by integrations, which are displayed as threads on the Conversation model. For example, if you exchange multiple emails with an enduser, each individual email is stored as a thread on a single conversation record of type email (with the exception of Marketing emails). Email syncing logic has some peculiarities and can be studied in more detail here.

Tickets and Chats work in a similar way, with Tickets being created by certain support tool integrations, and Chats being created by the Intercom integration.

Companies are at the centre of the data structure. In short, almost all data ultimately relates to the Company model. Be it emails shared between multiple endusers and team members, but displayed in the Company Profile, or Assets which represent products sold to the Company, with usage data stored as time series data on the Asset. All of this data has a relationship to the Company.

Below are listed some concepts or features available (uniquely, for the most part) on the Company model:

  • Health Profiles. This is a central concept, allowing you to calculate a score from 0-10 based on custom criteria, evaluating the strength of a Company’s status as your customer. The Score’s development over time is tracked as Time Series, mentioned in more detail further down. Read more about Health Scores here.

  • Group structures. The Company model has an orgPath allowing companies to relate to each other in a hierarchy. This is to reflect real-world relationships, where different countries, or products, or other segments, are technically separate legal entities from the parent organisation. Read more about group structures here.

  • Owners and Portfolio Permissions. Fields on the Company level can denote the relationship between the Company and the User, which in turn can control data permissions - mentioned in more detail here.

  • Revenue Calculations. The Company model aggregates revenue data from the License model, calculating the current amount of active ARR for the Company, as well as the accumulated amount, and other data. Furthermore, Company and License data is aggregated in system revenue reports, to calculate Net Revenue Retention and other metrics. Read more about revenue reports here.

  • Portals. The Planhat environment can be share with customers who don’t have a Planhat license. they are created as external users, and have roles and permissions of their own. Following from this, they can access data relating to their Company in Planhat. Read more about portals here.

  • Calculated Metrics, User Activities and Custom Metrics. The Company model supports all of these concepts, along with a handful of other models (Enduser, Asset, Project).

There are many other things that are particular to the Company model. Read more here.

Flexible Models

A number of models are available (depending on the package you have purchased) with a less intentional data structure:

Assets and Projects

These are two models which support user activities, custom metrics, calculated metrics, as well as custom fields. They relate to the Company model, and there can be multiple records per Company. The intention is to provide flexible models, which are often renamed, to represent data structures particular to the customer. The default names represent two frequent use cases. The “Asset” name, for example, was chosen because these models often represent individual products sold to a customer, with associated user activities and custom metrics tracking product usage and aggregated time series data, respectively. You can read more about this here.

Campaigns, Objectives, and Workspaces

These models are the same as the above, with the exception that they do not support time series data. While the above, therefore, might be used to analyse the development over time of product usage, or perhaps marketing projects, these models are more “flat”, and are often renamed and used to store additional data models particular to the customer. Sometimes customers with a complex data structure in Salesforce, Hubspot, or in a Data Warehouse, utilise these models. Read more here.

Fields

Each Business Model has some system fields as well as supporting custom fields. As mentioned, the “opinionated” models have a number of system fields intended for a particular use case, e.g. the ARR field on the License model, or the email field on the Enduser model. The more “flexible” models generally have fewer system fields, as they are intended to be populated with the fields and data particular to the customer’s business.

Planhat supports the following field types:

  • Text

  • Rich text

  • Rating

  • Number

  • Toggle

  • List

  • Multi-pick list

  • Team member

  • Team members

  • Enduser

  • Endusers

  • URL

  • Phone

  • Email

  • Day

  • Date

  • Date Time

Fields

Each Business Model has some system fields as well as supporting custom fields. As mentioned, the “opinionated” models have a number of system fields intended for a particular use case, e.g. the ARR field on the License model, or the email field on the Enduser model. The more “flexible” models generally have fewer system fields, as they are intended to be populated with the fields and data particular to the customer’s business.

Planhat supports the following field types:

  • Text

  • Rich text

  • Rating

  • Number

  • Toggle

  • List

  • Multi-pick list

  • Team member

  • Team members

  • Enduser

  • Endusers

  • URL

  • Phone

  • Email

  • Day

  • Date

  • Date Time

Fields

Each Business Model has some system fields as well as supporting custom fields. As mentioned, the “opinionated” models have a number of system fields intended for a particular use case, e.g. the ARR field on the License model, or the email field on the Enduser model. The more “flexible” models generally have fewer system fields, as they are intended to be populated with the fields and data particular to the customer’s business.

Planhat supports the following field types:

  • Text

  • Rich text

  • Rating

  • Number

  • Toggle

  • List

  • Multi-pick list

  • Team member

  • Team members

  • Enduser

  • Endusers

  • URL

  • Phone

  • Email

  • Day

  • Date

  • Date Time

Data Standards

In order to maintain consistency and make data the most reliable as possible, the API relies on a set of standards and rules to normalize data it takes in.

Some data a client sends can either be invalid or transformed to be accommodated and stored in a better shape.

All time-related data will be stored in UTC (offset 0) and API can tolerate non UTC values when handling Date Time fields but they'll be represented in UTC time.

We provide three data types to work with dates:

  1. Day

  2. Date

  3. Date Time

Day

When a field has day type API expect it to be a number also known as UNIX Epoch, the value of it should be: the amount of days that have passed since Jan 1, 1970. For example, 19508 would represent the date May 31, 2023. This type of data can't tolerate time.

API can receive and handle ISO 8601 strings with or without time and timezone for day fields, although the end result will always be the number of days as explained above.

The following date strings are valid and will be converted correctly to the epoch representation.

Input

Result

2023-05-01T00:00:00.000Z

19478

2023-05-02

19479

2023-05-03T05:00:00.000+02:00

19480

custom



Date

Date type fields are stored as ISO 8601 date strings with zeroed time (T00:00.000Z). For example: 2023-05-01T00:00:00.000Z. When a time part is provided for this type of field it will be ignored.

The following date strings are valid and will have time zeroed when it's the case:

Input

Result

2023-05-31T15:21:19.144Z

2023-05-31T00:00:00.000Z

2023-05-31T15:21:19.000+02:00

2023-05-31T00:00:00.000Z

2023-05-31

2023-05-31T00:00:00.000Z


Date Time

Date Time fields are stored as ISO 8601 date strings with time in UTC. For example: 2023-05-01T21:53:22.634Z will be saved exactly like that. When timezone is provided we save the UTC representation of it

The following date strings are valid and will have time zeroed when it's the case:

Header 1

Header 2

2023-05-31T15:21:19.144Z

2023-05-31T15:21:19.144Z

2023-05-31T15:21:19.000+02:00

2023-05-31T13:21:19.000Z

2023-05-31

2023-05-31T00:00:00.000Z

Data Standards

In order to maintain consistency and make data the most reliable as possible, the API relies on a set of standards and rules to normalize data it takes in.

Some data a client sends can either be invalid or transformed to be accommodated and stored in a better shape.

All time-related data will be stored in UTC (offset 0) and API can tolerate non UTC values when handling Date Time fields but they'll be represented in UTC time.

We provide three data types to work with dates:

  1. Day

  2. Date

  3. Date Time

Day

When a field has day type API expect it to be a number also known as UNIX Epoch, the value of it should be: the amount of days that have passed since Jan 1, 1970. For example, 19508 would represent the date May 31, 2023. This type of data can't tolerate time.

API can receive and handle ISO 8601 strings with or without time and timezone for day fields, although the end result will always be the number of days as explained above.

The following date strings are valid and will be converted correctly to the epoch representation.

Input

Result

2023-05-01T00:00:00.000Z

19478

2023-05-02

19479

2023-05-03T05:00:00.000+02:00

19480

custom



Date

Date type fields are stored as ISO 8601 date strings with zeroed time (T00:00.000Z). For example: 2023-05-01T00:00:00.000Z. When a time part is provided for this type of field it will be ignored.

The following date strings are valid and will have time zeroed when it's the case:

Input

Result

2023-05-31T15:21:19.144Z

2023-05-31T00:00:00.000Z

2023-05-31T15:21:19.000+02:00

2023-05-31T00:00:00.000Z

2023-05-31

2023-05-31T00:00:00.000Z


Date Time

Date Time fields are stored as ISO 8601 date strings with time in UTC. For example: 2023-05-01T21:53:22.634Z will be saved exactly like that. When timezone is provided we save the UTC representation of it

The following date strings are valid and will have time zeroed when it's the case:

Header 1

Header 2

2023-05-31T15:21:19.144Z

2023-05-31T15:21:19.144Z

2023-05-31T15:21:19.000+02:00

2023-05-31T13:21:19.000Z

2023-05-31

2023-05-31T00:00:00.000Z

Data Standards

In order to maintain consistency and make data the most reliable as possible, the API relies on a set of standards and rules to normalize data it takes in.

Some data a client sends can either be invalid or transformed to be accommodated and stored in a better shape.

All time-related data will be stored in UTC (offset 0) and API can tolerate non UTC values when handling Date Time fields but they'll be represented in UTC time.

We provide three data types to work with dates:

  1. Day

  2. Date

  3. Date Time

Day

When a field has day type API expect it to be a number also known as UNIX Epoch, the value of it should be: the amount of days that have passed since Jan 1, 1970. For example, 19508 would represent the date May 31, 2023. This type of data can't tolerate time.

API can receive and handle ISO 8601 strings with or without time and timezone for day fields, although the end result will always be the number of days as explained above.

The following date strings are valid and will be converted correctly to the epoch representation.

Input

Result

2023-05-01T00:00:00.000Z

19478

2023-05-02

19479

2023-05-03T05:00:00.000+02:00

19480

custom



Date

Date type fields are stored as ISO 8601 date strings with zeroed time (T00:00.000Z). For example: 2023-05-01T00:00:00.000Z. When a time part is provided for this type of field it will be ignored.

The following date strings are valid and will have time zeroed when it's the case:

Input

Result

2023-05-31T15:21:19.144Z

2023-05-31T00:00:00.000Z

2023-05-31T15:21:19.000+02:00

2023-05-31T00:00:00.000Z

2023-05-31

2023-05-31T00:00:00.000Z


Date Time

Date Time fields are stored as ISO 8601 date strings with time in UTC. For example: 2023-05-01T21:53:22.634Z will be saved exactly like that. When timezone is provided we save the UTC representation of it

The following date strings are valid and will have time zeroed when it's the case:

Header 1

Header 2

2023-05-31T15:21:19.144Z

2023-05-31T15:21:19.144Z

2023-05-31T15:21:19.000+02:00

2023-05-31T13:21:19.000Z

2023-05-31

2023-05-31T00:00:00.000Z