Skip to main content

ServiceTitan Data Source

The ServiceTitan connector enables you to ingest operational field service data — including jobs, appointments, customers, locations, technicians, estimates, pricebook items, and dispatch information — directly into Nexla. Follow the instructions below to create a new data flow that ingests data from a ServiceTitan source in Nexla.
servicetitan_api.png

ServiceTitan

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 ServiceTitan connector tile from the list of available connectors. Then, select the credential that will be used to connect to the ServiceTitan instance, and click Next; or, create a new ServiceTitan credential for use in this flow.

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

    ServiceTitan sources can also be configured manually, allowing you to ingest data from ServiceTitan 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 ServiceTitan API endpoints. Each template is designed specifically for the corresponding ServiceTitan 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.

List Jobs

Retrieves all jobs from your ServiceTitan account with filtering and pagination support. Use this endpoint to ingest bulk job records for reporting, analytics, or synchronization with external systems. Jobs in ServiceTitan represent the core unit of work — each job tracks the customer, location, assigned technicians, job type, status, and associated appointments.

  • This endpoint automatically paginates through all available jobs, fetching up to 50 records per page. No additional pagination configuration is required.
  • Optionally, filter the jobs returned using the following date-based parameters to limit the data to a specific time range:

    • Modified On or After: Enter a date and time in ISO 8601 format (e.g., 2024-01-01T00:00:00Z) to retrieve only jobs that were modified on or after this datetime. This filter is particularly useful for incremental data loads, where you want to capture only new or updated jobs since the last run.
    • Modified Before: Enter a date and time in ISO 8601 format to retrieve only jobs modified before this datetime. Use this in combination with the Modified On or After parameter to define a precise modification date range.
    • Completed On or After: Enter a date and time in ISO 8601 format to retrieve only jobs that were completed on or after this datetime. Use this filter when your analysis focuses on completed work within a specific timeframe.

All three filter parameters are optional. When no filters are specified, all accessible jobs are returned. For large ServiceTitan tenants with many jobs, applying date filters is recommended to reduce data volume and improve performance. Refer to the ServiceTitan Job Planning API documentation for additional details on available query parameters.

Get Job Details

Retrieves full details for a single, specific job by its ServiceTitan Job ID. Use this endpoint when you need comprehensive information about one particular job, such as when building a job detail view, verifying job data, or triggering downstream actions based on a specific job's state.

  • Enter the ServiceTitan Job ID in the required Job ID field:

    • Job ID (required): The unique numeric identifier of the job to retrieve. Job IDs can be obtained from the results of the List Jobs endpoint or from the ServiceTitan application's job detail URL.

This endpoint returns a single job record rather than a paginated list. It is best suited for targeted lookups. To retrieve records for multiple jobs, use the List Jobs endpoint instead.

List Appointments

Retrieves all appointments from your ServiceTitan account with filtering support. In ServiceTitan, an appointment represents the scheduled instance of a job — it specifies who is going out (the technician) and when. Every job has at least one appointment, created automatically at the time of booking. Use this endpoint to ingest appointment schedules for capacity planning, dispatch analysis, or integration with calendar systems.

  • This endpoint automatically paginates through all available appointments, fetching up to 50 records per page.
  • Optionally, filter the appointments returned using the following date-based parameters:

    • Starts On or After: Enter a date and time in ISO 8601 format to retrieve only appointments scheduled to start on or after this datetime.
    • Starts Before: Enter a date and time in ISO 8601 format to retrieve only appointments scheduled to start before this datetime. Use this in combination with Starts On or After to define a date range for appointment retrieval.

Both filter parameters are optional. Refer to the ServiceTitan Job Planning API documentation for full details on the appointment data model.

Get Appointment

Retrieves full details for a single appointment by its ServiceTitan Appointment ID. Use this endpoint when you need to look up all details for one specific appointment, such as the assigned technician, scheduled time, and associated job.

  • Enter the appointment identifier in the required Appointment ID field:

    • Appointment ID (required): The unique numeric identifier of the appointment to retrieve. Appointment IDs can be obtained from the results of the List Appointments endpoint.

List Appointment Assignments

Retrieves technician-to-appointment assignment records from ServiceTitan. Use this endpoint to analyze technician workload distribution, track dispatch decisions, or audit assignment history across your field operations.

  • This endpoint automatically paginates through all available assignment records, fetching up to 50 records per page.
  • Optionally, filter assignments by the associated job using the following parameter:

    • Job ID: Enter a ServiceTitan Job ID to retrieve only the technician assignments related to that specific job.

The Job ID filter parameter is optional. When not specified, all accessible assignment records are returned. Refer to the ServiceTitan Dispatch API documentation for more information.

List Technicians

Retrieves all technician records in your ServiceTitan organization. Use this endpoint to synchronize your technician roster with external systems, build workforce analytics reports, or enrich job and appointment data with technician profile information.

  • This endpoint automatically paginates through all technician records, fetching up to 50 records per page. No additional configuration parameters are required.

Technician data is managed in the ServiceTitan Settings module. Refer to the ServiceTitan Settings API documentation for details on the technician data model.

Get Technician

Retrieves full profile details for a single technician by their ServiceTitan Technician ID. Use this endpoint to look up a specific technician's information, including their skills, certifications, and contact details.

  • Enter the technician identifier in the required Technician ID field:

    • Technician ID (required): The unique numeric identifier of the technician to retrieve. Technician IDs can be obtained from the results of the List Technicians endpoint.

List Business Units

Retrieves all business units (divisions) configured in your ServiceTitan organization. Business units in ServiceTitan are used to segment operations by trade, geography, or business line. Use this endpoint to ingest business unit reference data for enriching job and financial reporting.

  • This endpoint automatically paginates through all business unit records, fetching up to 50 records per page. No additional configuration parameters are required.

List Job Types

Retrieves all job types configured in your ServiceTitan account. Job types categorize work orders by the nature of the service (for example, Installation, Maintenance, Repair). Use this endpoint to ingest job type reference data for use in analytics, filtering, or integration with external work order systems.

  • This endpoint automatically paginates through all job type records, fetching up to 50 records per page. No additional configuration parameters are required.

List Customers

Retrieves all customer records from your ServiceTitan CRM with filtering support. In ServiceTitan, every job has a customer responsible for payment. Customer records contain contact information, service history, membership status, and more. Use this endpoint to synchronize your customer database with external CRM or marketing platforms, or to build customer analytics reports.

  • This endpoint automatically paginates through all customer records, fetching up to 50 records per page.
  • Optionally, filter the customers returned using the following date-based parameter:

    • Modified On or After: Enter a date and time in ISO 8601 format (e.g., 2024-01-01T00:00:00Z) to retrieve only customer records that were modified on or after this datetime. This is useful for incremental synchronization of customer data.

Refer to the ServiceTitan CRM API documentation for full details on the customer data model and available filter parameters.

Get Customer

Retrieves full details for a single customer by their ServiceTitan Customer ID. Use this endpoint for targeted customer lookups, such as when enriching a specific record or verifying customer data before processing.

  • Enter the customer identifier in the required Customer ID field:

    • Customer ID (required): The unique numeric identifier of the customer to retrieve. Customer IDs can be obtained from the results of the List Customers endpoint.

List Locations

Retrieves all service location records from your ServiceTitan CRM. In ServiceTitan, a location is the physical address where a job is performed — each customer can have multiple service locations. Use this endpoint to ingest location data for geographic analysis, service territory management, or synchronization with external systems.

  • This endpoint automatically paginates through all location records, fetching up to 50 records per page.
  • Optionally, filter locations by their associated customer using the following parameter:

    • Customer ID: Enter a ServiceTitan Customer ID to retrieve only the service locations associated with that specific customer.

Get Location

Retrieves full details for a single service location by its ServiceTitan Location ID. Use this endpoint when you need complete address and metadata for one specific service location.

  • Enter the location identifier in the required Location ID field:

    • Location ID (required): The unique numeric identifier of the service location to retrieve. Location IDs can be obtained from the results of the List Locations endpoint.

List Estimates

Retrieves all estimates (quotes) from your ServiceTitan account. Estimates in ServiceTitan are proposals presented to customers that outline the proposed services, materials, and pricing. Use this endpoint to analyze sales conversion rates, track outstanding proposals, or synchronize estimate data with quoting or ERP systems.

  • This endpoint automatically paginates through all estimate records, fetching up to 50 records per page.
  • Optionally, filter estimates by the associated job using the following parameter:

    • Job ID: Enter a ServiceTitan Job ID to retrieve only the estimates associated with that specific job.

Refer to the ServiceTitan Sales API documentation for details on the estimate data model.

Get Estimate

Retrieves full details for a single estimate by its ServiceTitan Estimate ID. Use this endpoint to retrieve all line items, pricing, and status information for a specific estimate.

  • Enter the estimate identifier in the required Estimate ID field:

    • Estimate ID (required): The unique numeric identifier of the estimate to retrieve. Estimate IDs can be obtained from the results of the List Estimates endpoint.

List Installed Equipment

Retrieves all installed equipment records at customer locations. In ServiceTitan, installed equipment tracks the HVAC units, appliances, and other equipment installed at each customer location — including make, model, serial number, and installation date. Use this endpoint to build equipment maintenance schedules, warranty tracking systems, or asset management integrations.

  • This endpoint automatically paginates through all installed equipment records, fetching up to 50 records per page.
  • Optionally, filter installed equipment by the associated service location using the following parameter:

    • Location ID: Enter a ServiceTitan Location ID to retrieve only the equipment installed at that specific service location.

Refer to the ServiceTitan Equipment Systems API documentation for details on the installed equipment data model.

List Pricebook Services

Retrieves all service items from your ServiceTitan pricebook. The pricebook in ServiceTitan defines the standardized services, materials, and equipment that technicians can add to invoices and estimates. Use this endpoint to synchronize pricebook service definitions with external pricing or ERP systems.

  • This endpoint automatically paginates through all pricebook service records, fetching up to 50 records per page. No additional configuration parameters are required.

Refer to the ServiceTitan Pricebook API documentation for details on the pricebook data model.

List Pricebook Materials

Retrieves all material items from your ServiceTitan pricebook. Materials represent the physical parts, components, and supplies that technicians use and bill for on service calls. Use this endpoint to synchronize pricebook material data with inventory management or procurement systems.

  • This endpoint automatically paginates through all pricebook material records, fetching up to 50 records per page. No additional configuration parameters are required.

List Pricebook Equipment

Retrieves all equipment items from your ServiceTitan pricebook. Pricebook equipment items represent the systems and units (such as HVAC systems or water heaters) that can be sold and installed. Use this endpoint to synchronize pricebook equipment catalog data with external sales or inventory systems.

  • This endpoint automatically paginates through all pricebook equipment records, fetching up to 50 records per page. No additional configuration parameters are required.

List Non-Job Events

Retrieves non-job events from the ServiceTitan dispatch board, such as time off, training sessions, meetings, and other technician schedule blocks that do not correspond to a customer job. Use this endpoint to analyze technician availability, build capacity planning reports, or integrate with HR systems for time and attendance tracking.

  • This endpoint automatically paginates through all non-job event records, fetching up to 50 records per page.
  • Optionally, filter non-job events by the assigned technician using the following parameter:

    • Technician ID: Enter a ServiceTitan Technician ID to retrieve only the non-job events associated with that specific technician.

Refer to the ServiceTitan Dispatch API documentation for more information on non-job event types and the data model.

List Technician Shifts

Retrieves technician shift schedules and availability windows from ServiceTitan. Shifts define the working hours and availability of each technician for scheduling purposes. Use this endpoint to analyze workforce scheduling patterns, build staffing reports, or integrate technician availability data with external workforce management systems.

  • This endpoint automatically paginates through all technician shift records, fetching up to 50 records per page.
  • Optionally, filter shifts by start date using the following parameter:

    • Starts On or After: Enter a date and time in ISO 8601 format to retrieve only shifts that start on or after this datetime.

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

ServiceTitan data sources can be manually configured to ingest data from any valid ServiceTitan 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 ServiceTitan sources, such as sources that use chained API calls to fetch data from multiple endpoints or sources that require custom request parameters.

All ServiceTitan V2 API endpoints follow the pattern https://api.servicetitan.io/{namespace}/v2/tenant/{'{tenantId}'}/{resource}. Your Tenant ID is automatically provided by your saved ServiceTitan credential — you do not need to include it manually in the URL when using template-based sources, but you will need to substitute it in the URL when configuring a source manually.

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 ServiceTitan API from the Method pulldown menu. The most common method for reading data from ServiceTitan is:

    • GET: For retrieving data from any ServiceTitan API endpoint

API Endpoint URL

  1. Enter the URL of the ServiceTitan API endpoint from which this source will fetch data in the Set API URL field. This should be the complete URL including the protocol (https://) and your Tenant ID as a path parameter.

ServiceTitan API endpoint URLs include your Tenant ID as a path component. For example, to list jobs the URL is https://api.servicetitan.io/jpm/v2/tenant/{'{tenantId}'}/jobs. Replace {'{tenantId}'} with your numeric ServiceTitan Tenant ID. ServiceTitan also requires the ST-App-Key header on every request — see the Request Headers section below.

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. This is especially useful with ServiceTitan endpoints that support date-range filter query parameters.

Macros are particularly useful for ServiceTitan APIs that accept date range parameters such as modifiedOnOrAfter, modifiedBefore, or startsOnOrAfter. For example, you can append ?modifiedOnOrAfter={'{now-1}'} to a List Jobs URL to ingest only jobs modified since the last run.

  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}. ServiceTitan APIs expect dates in ISO 8601 format (e.g., 2024-01-01T00:00:00Z).

  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 useful when you need to create ServiceTitan API endpoints that reference specific IDs, such as a Job ID or Customer ID, sourced from another Nexla data source in your environment.

  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 returned by the API endpoint is needed, you can designate the part 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.

Most ServiceTitan list endpoints return responses in the format {"data": [...], "page": {...}}. The relevant records are contained in the data array, so the path to the data would typically be $.data[*].

Path to Data is important for ServiceTitan list responses. Without specifying $.data[*], Nexla will treat the entire response object (including pagination metadata) as a single record rather than processing each item in the data array as an individual record.

  • 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. For most ServiceTitan list endpoints, this value is $.data[*].
    Path to Data Example:

    For a ServiceTitan List Jobs response, the relevant job records are in the data array. Enter $.data[*] as the path to data to configure Nexla to treat each element of the data array as a separate record.

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.

For ServiceTitan responses, pagination metadata such as page.totalCount and page.hasMore are returned alongside the data array. If preserving this pagination context with each record is useful for your use case, you can specify the path to this metadata.

Metadata paths are particularly useful for preserving ServiceTitan response context like total record counts or pagination state that applies to all records in a response.

  • 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. For ServiceTitan responses, the pagination metadata is typically accessible at $.page.

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).

    ServiceTitan requires the ST-App-Key header on every API request. This header is automatically added by Nexla using the Application Key stored in your ServiceTitan credential — you do not need to add it manually here. You do not need to include any headers already present in the credentials.

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 ServiceTitan 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.