Skip to main content

Planhat Data Source

The Planhat connector enables you to ingest customer success data from Planhat into Nexla—including companies, end users, licenses, NPS responses, conversations, tickets, tasks, issues, invoices, opportunities, objectives, churn records, and internal users. Follow the instructions below to create a new data flow that ingests data from a Planhat source in Nexla.
planhat_api.png

Planhat

Create a New Data Flow

  1. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Then, select the desired flow type from the list, and click the Create button.

  2. Select the Planhat connector tile from the list of available connectors. Then, select the credential that will be used to connect to the Planhat instance, and click Next; or, create a new Planhat credential for use in this flow.

  3. In Nexla, Planhat data sources can be created using pre-built endpoint templates, which expedite source setup for common Planhat endpoints. Each template is designed specifically for the corresponding Planhat endpoint, making source configuration easy and efficient.
    • To configure this source using a template, follow the instructions in Configure Using a Template.

    Planhat sources can also be configured manually, allowing you to ingest data from Planhat endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this source manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Planhat endpoints. Each template is designed specifically for the corresponding Planhat endpoint, making data source setup easy and efficient.

Endpoint Settings

  • Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

Get Companies

Retrieves a paginated list of all company records from Planhat, including health scores, MRR/ARR, lifecycle phase, owner assignment, renewal dates, tags, and any custom fields configured in your Planhat workspace. This endpoint is the primary way to sync your full customer account data out of Planhat into a data warehouse, CRM, or analytics platform.

  • Optionally, configure the following parameters to control the data retrieved:

    • Page Size: Enter the number of company records to retrieve per page. The default is 100 and the maximum is 5000. Increasing the page size can reduce the number of API calls for large datasets.
    • Start Offset: Enter the integer index from which Nexla should begin retrieving records. The default is 0, which starts from the first record. Adjust this value if you need to start the sync from a specific position in the list.

The Get Companies endpoint returns all company records accessible to the Service Account used for authentication. Planhat company records include standard fields (name, owner, MRR, ARR, lifecycle phase, renewal date) as well as any custom fields defined in your workspace. For complete details on the company data model, see the Planhat Company API documentation.

Get Lean Companies

Retrieves a lightweight list of company records containing only the Planhat ID (_id), External ID, Source ID, and company name. Use this endpoint for ID mapping, building lookup tables, or resolving company references in downstream systems—where the full company record is not required.

  • Optionally, filter the returned companies by lifecycle status using the Status Filter parameter. Select one of the following values from the pulldown menu:

    • All (default): Returns all companies regardless of status.
    • Prospect: Returns only companies in the Prospect lifecycle phase.
    • Coming: Returns only companies in the Coming phase (onboarding).
    • Customer: Returns only active customers.
    • Canceled: Returns only canceled accounts.
    • Lost: Returns only lost deals/churned accounts.

The Get Lean Companies endpoint is significantly faster than Get Companies because it returns only identifying fields. It is ideal for use cases where you need to join Planhat company IDs with records from another system without loading the full company payload.

Get Endusers

Retrieves a paginated list of end user (contact) records across companies. Each end user record includes email address, role, NPS score, last touch date, engagement activity metrics, and custom fields. Use this endpoint to sync contact-level data from Planhat into a CRM, data warehouse, or marketing platform.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of end user records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.
    • Company ID Filter: Enter the Planhat _id of a specific company to retrieve end users for that company only. Leave blank to retrieve end users across all companies.

End users in Planhat represent the individual contacts (people) within a customer account, as distinct from the company record itself. The Planhat API documentation refers to these as "Endusers." For complete field definitions, see the Planhat Enduser API documentation.

Get Licenses

Retrieves a paginated list of subscription and license records. Each record includes MRR, ARR, renewal dates, product name, currency, and renewal status. Use this endpoint for revenue reporting, renewal pipeline analysis, and subscription lifecycle tracking in a data warehouse or BI tool.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of license records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.
    • Company ID Filter: Enter the Planhat _id of a specific company to retrieve licenses for that company only. Leave blank to retrieve licenses across all companies.

Licenses in Planhat represent individual subscription line items tied to a company. A single company can have multiple license records (for example, one per product tier or contract term). For complete field definitions, see the Planhat License API documentation.

Get NPS Responses

Retrieves a paginated list of NPS survey responses. Each record includes the numeric score (0–10), any open-ended comment text, the date the survey was sent, the date it was answered, the associated company ID, and the end user's email address. Use this endpoint to analyze customer sentiment trends or enrich contact-level data in a data warehouse.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of NPS records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.
    • Company ID Filter: Enter the Planhat _id of a specific company to retrieve NPS responses for that company only. Leave blank to retrieve responses across all companies.

NPS scores in Planhat are classified as Detractors (0–6), Passives (7–8), and Promoters (9–10). For complete field definitions and details on Planhat's NPS data model, see the Planhat NPS API documentation.

Get Conversations

Retrieves a paginated list of logged conversation records, which represent emails, calls, and meetings logged against companies and contacts in Planhat. These records are used for last-touch analytics, activity tracking, and engagement reporting.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of conversation records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.
    • Company ID Filter: Enter the Planhat _id of a specific company to retrieve conversations for that company only. Leave blank to retrieve conversations across all companies.

Conversations in Planhat are distinct from Tickets. Conversations represent proactive customer interactions (calls, emails, meetings) while Tickets represent inbound support requests. For more detail, see the Planhat Conversation API documentation.

Get Tickets

Retrieves a paginated list of support ticket records (a specialized type of Conversation in Planhat). Each ticket record includes status, severity, source system reference, and company linkage. Use this endpoint to sync support ticket data from Planhat into a data warehouse or analytics pipeline for support health analysis.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of ticket records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.
    • Company ID Filter: Enter the Planhat _id of a specific company to retrieve tickets for that company only. Leave blank to retrieve tickets across all companies.

Planhat Tickets are typically synced from external support tools such as Zendesk or Intercom via the Planhat API. This endpoint retrieves the ticket data that has been stored in Planhat, regardless of its origin. For more information, see the Planhat Ticket API documentation.

Get Tasks

Retrieves a paginated list of planned task records, including to-dos, calendar events, and playbook steps. Each task record includes the main type, action description, owner, due dates, and completion status. Use this endpoint to report on team activity, CSM workload, and playbook execution.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of task records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.
    • Company ID Filter: Enter the Planhat _id of a specific company to retrieve tasks for that company only. Leave blank to retrieve tasks across all companies.

Tasks in Planhat are generated both manually by CSMs and automatically by Playbooks. Syncing task data into a data warehouse enables analysis of playbook adoption rates and team activity patterns. For more information, see the Planhat Task API documentation.

Get Issues

Retrieves a paginated list of Issue records—bugs and feature requests—linked to companies and end users in Planhat. Use this endpoint to analyze product feedback trends, open defect volumes by account, or correlate product issues with customer health scores.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of issue records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.

Issues in Planhat are typically linked to a product backlog or external issue tracker. This endpoint does not support filtering by company ID—all issues accessible to the Service Account will be returned. For more information, see the Planhat Issue API documentation.

Get Opportunities

Retrieves a paginated list of expansion and renewal opportunity records per company, including pipeline value, deal stage, and expected close date. Use this endpoint to sync your CS-led pipeline into a CRM or revenue reporting system.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of opportunity records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.
    • Company ID Filter: Enter the Planhat _id of a specific company to retrieve opportunities for that company only. Leave blank to retrieve all opportunities.

Opportunities in Planhat track expansion revenue, upsell deals, and renewal deals managed by the CS team. For complete field definitions, see the Planhat Opportunity API documentation.

Get Invoices

Retrieves a paginated list of invoice records per company. Use this endpoint to power billing pipeline reporting, revenue recognition workflows, and overdue invoice analytics in a data warehouse or finance system.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of invoice records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.
    • Company ID Filter: Enter the Planhat _id of a specific company to retrieve invoices for that company only. Leave blank to retrieve all invoices.

For complete field definitions on Planhat invoice records, see the Planhat Invoice API documentation.

Get Users

Retrieves a paginated list of internal Planhat users—the CSMs, account managers, and admins within your organization. Use this endpoint to build team mapping tables, resolve owner IDs on company or task records, or enrich downstream datasets with user display names and roles.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of user records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.

Planhat Users are the internal team members of your organization, not your customers. Customer contacts are represented as End Users. For more information, see the Planhat User API documentation.

Get Churn Records

Retrieves a paginated list of churn event records, each capturing when and why a customer churned. Use this endpoint for retention analysis, cohort churn modeling, and identifying patterns in churn reasons across your customer base.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of churn records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.

Churn records in Planhat are logged when a company transitions out of the Customer lifecycle state. Each record captures the churn reason, date, and associated revenue impact. For more information, see the Planhat Churn API documentation.

Get Objectives

Retrieves a paginated list of customer success plan objectives and milestones tracked against companies in Planhat. Use this endpoint to report on success plan completion rates, milestone achievement, and QBR (Quarterly Business Review) outcomes.

  • Optionally, configure the following parameters:

    • Page Size: Enter the number of objective records to retrieve per page. The default is 100 and the maximum is 5000.
    • Start Offset: Enter the integer offset from which to start the list. The default is 0.
    • Company ID Filter: Enter the Planhat _id of a specific company to retrieve objectives for that company only. Leave blank to retrieve objectives across all companies.

Objectives in Planhat are part of the Customer Success Plan feature. For more information, see the Planhat Objective API documentation.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can retrieve a sample of the data that will be fetched according to the current settings. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

Planhat data sources can be manually configured to ingest data from any valid Planhat API endpoint. Manual configuration provides maximum flexibility for accessing endpoints not covered by pre-built templates or when you need custom API configurations.

With manual configuration, you can also create more complex Planhat sources, such as sources that use chained API calls to fetch data from multiple endpoints or sources that require custom request parameters beyond what the templates expose.

API Method

  1. To manually configure this source, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Planhat API from the Method pulldown menu. The most common methods are:

    • GET: For retrieving data from the Planhat API (used by all source endpoint templates)
    • POST: For sending data to the API or triggering actions

API Endpoint URL

  1. Enter the URL of the Planhat API endpoint from which this source will fetch data in the Set API URL field. Planhat API endpoints follow the base URL pattern https://api.planhat.com/ followed by the resource path (for example, https://api.planhat.com/companies or https://api.planhat.com/endusers).

For a complete list of available Planhat API endpoints and their URL patterns, see the Planhat API Introduction. Ensure the API endpoint URL is correct and that your credential's Service Account has read access to the corresponding data model.

Date/Time Macros (API URL)

Optional

Optionally, the API URL can be customized using macros—all macros added to the API URL will be converted into values when Nexla executes the API call. Macros are dynamic placeholders that allow you to create flexible API endpoints that can adapt to different time periods or data requirements.

Macros are particularly useful when querying Planhat endpoints that accept date range parameters, enabling you to create incremental data extracts that only pull records updated since the last sync.

  1. To add a macro, type { at the appropriate position in the API URL (within the Set API URL field), and select the desired macro from the dropdown list.

    • {now} – The current datetime
    • {now-1} – The datetime one time unit before the current datetime
    • {now+1} – The datetime one time unit after the current datetime
    • custom – Datetime macros can reference any number of time units before or after the current datetime—for example, enter (now-4) to indicate the datetime four time units before the current datetime
  2. Select the format that will be applied to datetime macros from the Date Format for Date/Time Macro pulldown menu. This format will be applied to the base datetime value of the macro—i.e., the value of {now} in {now-1}.

  3. Select the datetime unit that will be used to perform mathematical operations in the included macro(s) from the Time Unit for Operations pulldown menu—for example, for the macro {now-1}, when Day is selected, {now-1} will be converted to the datetime one day before the current datetime.

Lookup-Based Macros (API URL)

Optional

Column values from existing lookups can also be included as macros in the API URL. Lookup-based macros allow you to reference data from previously configured data sources or lookups, enabling dynamic API endpoints that can adapt based on existing data.

Lookup-based macros are particularly useful for Planhat endpoints that accept a company ID parameter—you can reference a list of company IDs from a Nexla lookup to iterate over multiple companies dynamically.

  1. To include a lookup column value macro, select the relevant lookup from the Add Lookups to Supported Macros pulldown menu.

  2. Type { at the appropriate position in the API URL, and select the lookup column-based macro from the dropdown list. Lookup-based macros are automatically populated into the macro list when a lookup is selected in the Add Lookups to Supported Macros pulldown menu.

Path to Data

Optional

If only a subset of the data that will be returned by the API endpoint is needed, you can designate the part(s) of the response that should be included in the Nexset(s) produced from this source by specifying the path to the relevant data within the response.

Planhat REST API endpoints that return lists of records typically return a top-level JSON array (e.g., $[*]). For endpoints that wrap results in an object, you may need to specify a nested path.

Path to Data is essential when API responses have nested structures. Without specifying the correct path, Nexla might not be able to properly parse and organize your data into usable records. The pre-built Planhat endpoint templates use $[*] as the default path, which handles the top-level array response format used by most Planhat list endpoints.

  • To specify which data should be treated as relevant in responses from this source, enter the path to the relevant data in the Set Path to Data in Response field.

    • For responses in JSON format enter the JSON path that points to the object or array that should be treated as relevant data. JSON paths use dot notation (e.g., $.data.items[*] to access an array of items within a data object).

    • For responses in XML format, enter the XPath that points to the object/array containing relevant data. XPath uses slash notation (e.g., /response/data/item to access item elements within a data element).

    Path to Data Example:

    For most Planhat list endpoints, the response is a top-level JSON array. In this case, the path to the data should be entered as $[*].

Autogenerate Path Suggestions

Nexla can also autogenerate data path suggestions based on the response from the API endpoint. These suggested paths can be used as-is or modified to exactly suit your needs.

  • To use this feature, click the Test button next to the Set API URL field to fetch a sample response from the API endpoint. Suggested data paths generated based on the content & format of the response will be displayed in the Suggestions box below the Set Path to Data in Response field.

  • Click on a suggestion to automatically populate the Set Path to Data in Response field with the corresponding path. The populated path can be modified directly within the field if further customization is needed.

    PathSuggestions.png

Metadata

If metadata is included in the response but is located outside of the defined path to relevant data, you can configure Nexla to include this data as common metadata in each record.

  • To specify the location of metadata that should be included with each record, enter the path to the relevant metadata in the Path to Metadata in Response field.

    • For responses in JSON format, enter the JSON path to the object or array that contains the metadata, and for responses in XML format, enter the XPath.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this source, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2). Additional headers are often required for API versioning, content type specifications, or custom authentication requirements.

    You do not need to include the Authorization header in this field—it is automatically applied by Nexla from the configured credential. The Planhat API uses Bearer token authentication, which Nexla handles automatically.

Endpoint Testing

After configuring all settings for the selected endpoint, Nexla can retrieve a sample of the data that will be fetched according to the current configuration. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Save & Activate the Source

  1. Once all of the relevant steps in the above sections have been completed, click the Create button in the upper right corner of the screen to save and create the new Planhat data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.