Skip to main content
servicetitan icon

ServiceTitan Connector

SourceAPI DocsAPI ChangelogConnector Changelog

Description​

ServiceTitan is a comprehensive field service management solution that helps businesses manage their operations, workforce, and customer service.

Use the ServiceTitan component to manage Technicians, Jobs, Appointments, and more.

API Documentation​

This component was built using the ServiceTitan API Reference currently utilizing the V2 API.

Connections​

OAuth 2.0 Client Credentials​

key: serviceTitanConnection

Authenticating with ServiceTitan using OAuth 2.0 Client Credentials requires a developer account and an application configured in the ServiceTitan Developer Portal.

Prerequisites​

Setup Steps​

Creating a new app:

  1. Log in to the Developer Portal
  2. Select My Apps at the top of the page
  3. Select + New App
  4. Fill in all required fields and scopes
  5. Under Client Credentials Management, select I, the app developer, will configure the credentials on behalf of each tenant
  6. Click Create App

For existing apps:

  1. Log in to the Developer Portal
  2. Select My Apps at the top of the page
  3. Click Edit on the application
  4. Under Client Credentials Management, select I, the app developer, will configure the credentials on behalf of each tenant
  5. Click Save

Obtaining a Client Secret and Client ID:

Add the client’s Tenant ID to the application. Once the Tenant Admin has allowed access and connected to the application through their API Application Access settings, obtain the tenant’s Client ID and Client Secret from the developer portal:

  1. Log in to the Developer Portal
  2. Select My Apps at the top of the page
  3. Click View Connections for the app
  4. Click Generate under Client Secret to create a new Client Secret
  5. Reference the tenant’s Client ID on this page as well

Configure the Connection​

Create a connection of type OAuth 2.0 Client Credentials and configure the following fields:

  • Token URL: Select the appropriate environment token URL (Production or Integration)
  • Client ID: Enter the Client ID obtained from the developer portal
  • Client Secret: Enter the Client Secret generated in the developer portal
  • Tenant: Enter the Tenant ID used to scope API requests to a specific account
  • Application Key: Enter the application key found in the developer portal
  • Environment: Select Production for live data or Integration for testing
InputNotesExample
Application Key

The application key for the integration, found in the ServiceTitan developer portal under the application's details. Sent with every request as the ST-App-Key header.

ak1.XXXXXXXXXXXXXXXXXXXXXXXXXX
Client ID

The client identifier for the application, found in the ServiceTitan developer portal.

Client Secret

The client secret for the application, found in the ServiceTitan developer portal.

Environment

The ServiceTitan environment to connect to. Production uses api.servicetitan.io; Integration uses the api-integration host for sandbox testing.

Scopes

Space-separated OAuth 2.0 permission scopes for the API.

Tenant

The numeric tenant ID for the ServiceTitan account, found in the ServiceTitan developer portal alongside the application's details.

10978752986
Token URL

The OAuth 2.0 token URL for the API. Select the appropriate environment.

Triggers​

New and Updated Records​

Retrieves existing and ongoing records for a selected ServiceTitan resource type. Load history once, check for changes on a schedule, or both. | key: pollChangesTrigger

InputNotesExample
Connection

The ServiceTitan connection to use.

Look-back Date

The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the initial sync seeds each record created or modified on or after this date once, ignoring the visibility toggles.

2026-01-01
Resource Type

The type of resource to poll for new and updated records.

Show New Records

When true, includes newly created records in the trigger results.

true
Show Updated Records

When true, includes updated records in the trigger results.

true

This trigger polls the ServiceTitan API for new and updated records on a scheduled basis.

How It Works​

  1. The trigger runs on the configured schedule
  2. It fetches records from ServiceTitan using the modifiedOnOrAfter API parameter to retrieve only records modified since the last poll
  3. Each returned record is classified as created when its createdOn is at or later than the last poll time, and otherwise as updated when its modifiedOn is at or later than the last poll time. A record landing exactly on the last poll time is included only if it was not already delivered on an earlier recurrence. A record that satisfies neither test is classified as neither and is dropped from the results
  4. Outside an initial sync, Show New Records and Show Updated Records each gate one of the two result arrays. Turning either off empties that array, and both keys remain present in the payload
  5. The trigger updates its internal state after each poll

Initial Sync

An initial sync seeds a complete starting state rather than a change feed, so inputs that narrow which changes are reported would leave gaps in it: Show New Records and Show Updated Records are ignored while it runs, and are the only inputs it ignores. It begins on the first recurrence, when the trigger has no stored position and a Look-back Date (YYYY-MM-DD) is set, and seeds every record created or modified on or after that date exactly once. Left empty, there is no sync and the trigger starts from its first recurrence.

The window has no fixed upper bound, so a record modified mid-drain is swept into the sync rather than deferred to the schedule. Each recurrence advances the position to the newest record it actually received, never to the wall clock, and the first incremental recurrence resumes from exactly there; nothing in the payload marks the handoff. With batching off the drain is uncapped and finishes in one recurrence; with batching on it is capped, so a larger window spans several recurrences before the toggles apply again. Technicians has no sortable field, so it is never capped.

Resource Type still applies throughout. The trigger has no page-size or field-selection input, so nothing else is suppressed.

Batching

Batching is enabled per flow on this trigger. Once enabled, each changed record is dispatched as its own execution, or grouped by the configured batch size. Batch size and the number of batches dispatched concurrently can both be overridden per instance. Raising concurrency increases the request volume sent to ServiceTitan.

To turn it on, select the flow's trigger, open the Flow control tab, and switch on Enable Batching. Under Batch Size, keep Trigger default to use the size this trigger ships with, or choose Custom batch size to set a specific size. Batch Concurrency is optional; leave it blank for no batch-level limit.

With batching off a downstream step reads body.data.created and body.data.updated. With batching on those fields do not exist: each execution receives one { "changeType": ..., "record": ... } item, or an array of them when the batch size is greater than 1. Any step reading the older shape must be updated before batching is enabled, or it breaks the moment the switch is flipped. Because batching is enabled per flow, that change is scoped to the flow rather than to the component or to other flows using the same trigger.

The trigger advances its polling position before dispatching, so a failed execution loses its records either way: with batching off the whole recurrence's payload, with batching on only that batch. Records lost this way are not re-polled.

Returned Data​

With batching off, the trigger returns an object with two arrays: created for new records and updated for modified records. Fields shown are representative. The full response object includes additional properties.

Example Response
{
"data": {
"created": [
{
"id": 98765432,
"number": "JOB-0001234",
"status": "Scheduled",
"createdOn": "2024-01-16T10:30:00Z",
"modifiedOn": "2024-01-16T10:30:00Z",
"customerId": 11223344
}
],
"updated": [
{
"id": 98765399,
"number": "JOB-0001198",
"status": "Completed",
"createdOn": "2024-01-10T09:00:00Z",
"modifiedOn": "2024-01-16T14:22:00Z",
"customerId": 55667788
}
]
}
}

With batching on, each execution receives one record tagged with how it changed, or an array of such items when the batch size is greater than 1. The created and updated arrays are not part of this shape.

Batched Item
{
"changeType": "created",
"record": {
"id": 98765432,
"number": "JOB-0001234",
"status": "Scheduled",
"createdOn": "2024-01-16T10:30:00Z",
"modifiedOn": "2024-01-16T10:30:00Z",
"customerId": 11223344
}
}

Notes​

  • ServiceTitan uses different API URL namespaces per resource type. Jobs, appointments, and projects use the job project management namespace (jpm); invoices and payments use accounting; customers and locations use CRM; installed equipment uses equipment systems; technicians use settings. The trigger selects the correct endpoint automatically based on the chosen resource type
  • The per-recurrence cap that batching applies relies on sorting by modified date, and ServiceTitan documents no secondary sort or continuation token for these endpoints. If a single modifiedOn instant holds more records than that cap, the trigger delivers the first cap-full and its polling position cannot advance past that instant, so the remaining records at that instant are not delivered. With batching off the drain is uncapped and unaffected
  • Refer to the ServiceTitan developer documentation for rate limit details and available fields per resource type
Example Payload for New and Updated Records⤓
Loading…

Data Sources​

Select Appointment​

Select an appointment from a dropdown menu (up to 9,000 appointments). | key: selectAppointment | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Appointment⤓
Loading…

Select Booking​

Select a booking from a dropdown menu (up to 9,000 bookings). | key: selectBooking | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Booking⤓
Loading…

Select Business Unit​

Select a business unit from a dropdown menu (up to 9,000 business units). | key: selectBusinessUnit | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Business Unit⤓
Loading…

Select Customer​

Select a customer from a dropdown menu (up to 9,000 customers). | key: selectCustomers | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Customer⤓
Loading…

Select Customer Contact​

Select a customer contact from a dropdown menu (up to 9,000 contacts). | key: selectCustomerContact | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Customer ID

The customer ID to fetch contacts for.

10978752986
Example Payload for Select Customer Contact⤓
Loading…

Select Installed Equipment​

Select an installed equipment record from a dropdown menu (up to 9,000 records). | key: selectInstalledEquipment | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Installed Equipment⤓
Loading…

Select Invoice​

Select an invoice from a dropdown menu (up to 9,000 invoices). | key: selectInvoice | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Invoice⤓
Loading…

Select Job​

Select a job from a dropdown menu (up to 9,000 jobs). | key: selectJob | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Job⤓
Loading…

Select Job Cancel Reason​

Select a job cancel reason from a dropdown menu (up to 9,000 reasons). | key: selectJobCancelReason | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Job Cancel Reason⤓
Loading…

Select Location​

Select a location from a dropdown menu (up to 9,000 locations). | key: selectLocation | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Location⤓
Loading…

Select Payment​

Select a payment from a dropdown menu (up to 9,000 payments). | key: selectPayment | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Payment⤓
Loading…

Select Project​

Select a project from a dropdown menu (up to 9,000 projects). | key: selectProject | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Project⤓
Loading…

Select Technician​

Select a technician from a dropdown menu (up to 9,000 technicians). | key: selectTechnician | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select Technician⤓
Loading…

Select User Role​

Select a user role from a dropdown menu (up to 9,000 user roles). | key: selectUserRole | type: picklist

InputNotesExample
Connection

The ServiceTitan connection to use.

Example Payload for Select User Role⤓
Loading…

Actions​

Assign Technicians to Appointment​

Assigns the list of technicians to the appointment. | key: assignTechnicians

InputNotesExample
Connection

The ServiceTitan connection to use.

Job Appointment ID

ID of the job appointment

1234567890
Technician IDs

Assign these technicians to the appointment.

1088
Example Payload for Assign Technicians to Appointment⤓
Loading…

Cancel Job​

Cancels a job. | key: cancelJob

InputNotesExample
Connection

The ServiceTitan connection to use.

Job ID

The job ID.

10978752986
Job Memo

Memo of job cancel reason

Customer rescheduled to a later date
Reason ID

ID of job cancel reason

1088
Example Payload for Cancel Job⤓
Loading…

Create Appointment​

Adds a new appointment to an existing job. | key: createAppointment

InputNotesExample
Arrival Window End

Arrival window end date/time (in UTC)

2021-01-01T00:00:00Z
Arrival Window Start

Arrival window start date/time (in UTC)

2021-01-01T00:00:00Z
Connection

The ServiceTitan connection to use.

End

End date/time (in UTC)

2021-01-01T00:00:00Z
Job ID

The job ID.

10978752986
Special Instructions

Special instructions associated to the appointment

Any special instructions
Start

Start date/time (in UTC)

2021-01-01T00:00:00Z
Technician ID

The ID of the technician.

10978752986
Example Payload for Create Appointment⤓
Loading…

Create Booking by Provider​

Create a booking for a booking provider. | key: createBookingByProvider

InputNotesExample
Address

The street address, including unit, city, state, ZIP code, and country.

{
  "street": "string",
  "unit": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string"
}
Booking Provider ID

The ID of the booking provider that submitted the booking.

10978752986
Business Unit ID

The ID of the business unit.

10978752986
Campaign ID

The ID of the marketing campaign that generated the record.

10978752986
Connection

The ServiceTitan connection to use.

Contacts

The contact methods to attach, each with a type such as Phone or Email, a value, and an optional memo.

[
  {
    "type": "Phone",
    "value": "string",
    "memo": "string"
  }
]
Customer Type

Whether the customer is Residential or Commercial.

External ID

The booking's identifier in the originating external system.

10978752986
Is First Time Client

When true, marks the booking's customer as a first-time client.

Send Confirmation Email

When true, sends a booking confirmation email to the customer.

Job Type ID

The ID of the job type to assign.

10978752986
Name

Booking name

Acme Plumbing
Priority

Booking priority

Source

The lead source that generated this booking.

Test Source
Start

Start date/time (in UTC)

2021-01-01T00:00:00Z
Summary

A short summary describing the booking.

A summary related to the invoice.
Uploaded Images

The images to attach to the booking, one entry per image.

booking-photo.jpg
Example Payload for Create Booking by Provider⤓
Loading…

Create Customer​

Create a new customer. | key: createCustomer

InputNotesExample
Address

Bill-To address of the customer record

{
  "street": "string",
  "unit": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string"
}
Connection

The ServiceTitan connection to use.

Contacts

The contact methods to attach, each with a type such as Phone or Email, a value, and an optional memo.

[
  {
    "type": "Phone",
    "value": "string",
    "memo": "string"
  }
]
Custom Fields

Custom field values to set, as an array of type ID and value pairs.

[
  {
    "typeId": 0,
    "value": "string"
  }
]
Do Not Mail

Customer has been flagged as “do not mail”

Do Not Service

Customer has been flagged as “do not service”

External Data

External data to attach to the request.

{
  "applicationGuid": "string",
  "externalData": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
Location

Locations for the customer

[
  {
    "name": "string",
    "address": {
      "street": "string",
      "unit": "string",
      "city": "string",
      "state": "string",
      "zip": "string",
      "country": "string",
      "latitude": 0,
      "longitude": 0
    },
    "contacts": [
      {
        "type": {},
        "value": "string",
        "memo": "string"
      }
    ],
    "customFields": [
      {
        "typeId": 0,
        "value": "string"
      }
    ],
    "tagTypeIds": [
      0
    ],
    "externalData": {
      "applicationGuid": "string",
      "externalData": [
        {
          "key": "string",
          "value": "string"
        }
      ]
    }
  }
]
Name

The full name of the customer or business.

Acme Plumbing
Tag Type IDs

The IDs of the tag types to apply.

123
Customer Type

Whether the customer is Residential or Commercial.

Example Payload for Create Customer⤓
Loading…

Create Customer Contact​

Create a contact for a customer. | key: createCustomerContact

InputNotesExample
Connection

The ServiceTitan connection to use.

Customer ID

The customer ID.

10978752986
Memo

Short description about this contact, for example, “work #” or “Owner’s daughter - Kelly”

Payment for services rendered.
Customer Contact Type

Type of the customer contact

Customer Contact Type Value

The email, phone number, or fax number for the contact

1234567890
Example Payload for Create Customer Contact⤓
Loading…

Create Installed Equipment​

Create a new installed equipment record. | key: createInstalledEquipment

InputNotesExample
Attachments

List of attachments

[
  {
    "alias": "string",
    "fileName": "string",
    "type": {},
    "url": "string"
  }
]
Connection

The ServiceTitan connection to use.

Cost

Cost of the installed equipment

100.00
Custom Fields

The custom fields of the installed equipment

[
  {
    "typeId": 0,
    "value": "string"
  }
]
Installed On

The date the equipment was installed

2021-01-01T00:00:00Z
Location ID

The ID of the location of the installed equipment

10978752986
Manufacturer

Manufacturer of the installed equipment

Test Manufacturer
Memo

The memo of the installed equipment

Payment for services rendered.
Model

Model of the installed equipment

Test Model
Name

The name of the installed equipment

Acme Plumbing
Serial Number

Serial number of the installed equipment

1234567890
Tag Type IDs

The IDs of the tag types to apply.

123
Warranty Dates

Manufacturer and service provider warranty start and end dates.

Example Payload for Create Installed Equipment⤓
Loading…

Create Installed Equipment Attachment​

Create a new installed equipment attachment. | key: createInstalledEquipmentAttachment

InputNotesExample
Connection

The ServiceTitan connection to use.

Attachment File

Reference a file from another action. Must be a file type.

File Name

Name of the file

Test File
Example Payload for Create Installed Equipment Attachment⤓
Loading…

Create Invoices​

Create an adjustment invoice. | key: createInvoices

InputNotesExample
Adjustment To ID

The ID of the invoice the adjustment is for.

10978752986
Assigned To ID

The ID of the user the invoice is assigned to.

10978752986
Connection

The ServiceTitan connection to use.

Export ID

The identifier assigned to the record when it is exported to an external system.

6B29FC40-CA47-1067-B31D-00DD010662DA
Invoiced On

The date the invoice was invoiced on.

2021-01-01T00:00:00Z
Items

The items of the invoice.

[
  {
    "skuId": 0,
    "skuName": "string",
    "technicianId": 0,
    "description": "string",
    "quantity": 0,
    "unitPrice": 0,
    "cost": 0,
    "isAddOn": true,
    "signature": "string",
    "technicianAcknowledgementSignature": "string",
    "installedOn": "string",
    "inventoryWarehouseName": "string",
    "skipUpdatingMembershipPrices": true,
    "itemGroupName": "string",
    "itemGroupRootId": 0,
    "inventoryLocationId": 0,
    "durationBillingId": 0,
    "id": 0
  }
]
Number

The invoice number.

10978752986
Review Status

The review status of the invoice.

Royalty Details

Royalty status, date, sent on, and memo.

Subtotal

The subtotal of the invoice.

100.00
Summary

The summary of the invoice.

A summary related to the invoice.
Tax

The tax of the invoice.

100.00
Type ID

The ID of the invoice or payment type to assign, as configured in the ServiceTitan tenant.

0
Example Payload for Create Invoices⤓
Loading…

Create Job​

Create a job. | key: createJob

InputNotesExample
Appointments

List of appointment information

[
  {
    "start": "string",
    "end": "string",
    "arrivalWindowStart": "string",
    "arrivalWindowEnd": "string",
    "technicianIds": [
      0
    ]
  }
]
Business Unit ID

ID of the job's business unit

10978752986
Campaign ID

ID of the job's campaign

10978752986
Connection

The ServiceTitan connection to use.

Customer ID

The customer ID.

10978752986
Customer PO

The customer's purchase order number to record on the job.

PO-10025
Custom Fields

Custom fields for the job

[
  {
    "typeId": 0,
    "value": "string"
  }
]
External Data

External data to attach to the request.

{
  "applicationGuid": "string",
  "externalData": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
Invoice Signature Is Required

When true, the invoice for this job requires a signature. When left empty, the location and job type rules apply.

Job Generated Lead Source

The lead source that generated this job. Provide jobId (the job this one was generated from) and employeeId (the office user or technician credited).

{
  "jobId": 0,
  "employeeId": 0
}
Job Type ID

ID of the job's type

10978752986
Location ID

The ID of the location.

10978752986
Priority

Priority of the job

Project ID

ID of the job's project

10978752986
Summary

Job summary

A summary related to the invoice.
Tag Type IDs

Tag type IDs for the job

123
Example Payload for Create Job⤓
Loading…

Create Location​

Creates a new location. | key: createLocation

InputNotesExample
Address

The address of the location

{
  "street": "string",
  "unit": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string"
}
Connection

The ServiceTitan connection to use.

Contacts

The contacts associated with the location

[
  {
    "type": "Phone",
    "value": "string",
    "memo": "string"
  }
]
Customer ID

The customer ID.

10978752986
Custom Fields

Custom field values to set, as an array of type ID and value pairs.

[
  {
    "typeId": 0,
    "value": "string"
  }
]
External Data

External data to attach to the request.

{
  "applicationGuid": "string",
  "externalData": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
Name

The name of the location

Acme Plumbing
Tag Type IDs

The IDs of the tag types to apply.

123
Example Payload for Create Location⤓
Loading…

Create Payment (Deprecated)​

Deprecated: ServiceTitan removed the POST /payments endpoint from the V2 API. Payment creation is no longer supported via the API. | key: createPayment

InputNotesExample
Auth Code

The authorization code for the payment.

A1B2C3
Check Number

The check number for the payment.

1042
Connection

The ServiceTitan connection to use.

Export ID

The identifier assigned to the record when it is exported to an external system.

6B29FC40-CA47-1067-B31D-00DD010662DA
Memo

A free-text note recorded against the payment.

Payment for services rendered.
Paid On

The date the payment was paid on.

2021-01-01T00:00:00Z
Splits

The splits of the payment.

[
  {
    "invoiceId": 0,
    "amount": 0
  }
]
Status

The status of the payment.

Type ID

The ID of the invoice or payment type to assign, as configured in the ServiceTitan tenant.

0
Example Payload for Create Payment (Deprecated)⤓
Loading…

Create Project​

Create a new project. | key: createProject

InputNotesExample
Actual Completion Date

Actual completion date of the project

2021-01-01T00:00:00Z
Connection

The ServiceTitan connection to use.

Customer ID

ID of the project's customer

10978752986
Custom Fields

Custom fields for the project

[
  {
    "typeId": 0,
    "value": "string"
  }
]
External Data

External data items to attach to the project, grouped under an application GUID.

{
  "applicationGuid": "string",
  "externalData": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
Location ID

The ID of the location.

10978752986
Name

Name of the project

Acme Plumbing
Project Manager IDs

IDs of the project's managers

1088
Start

Start date of the project

2021-01-01T00:00:00Z
Status ID

The ID of the project status to set.

1088
Sub Status ID

The ID of the project sub-status to set.

1088
Summary

Summary of the project

A summary related to the invoice.
Target Completion Date

Target completion date of the project

2021-01-01T00:00:00Z
Example Payload for Create Project⤓
Loading…

Create Technician​

Create a new technician. | key: createTechnician

InputNotesExample
Azure Active Directory User ID

The GUID of the technician's user account in Azure Active Directory.

6B29FC40-CA47-1067-B31D-00DD010662DA
Account Creation Method

Determines how the technician's login is created: defer it, send an invite, or assign a username and password now.

Additional Fields

Additional optional fields: includes Team, Daily Goal, Burden Rate, Biography, Job Filter, and Job History Date Filter.

Business Unit ID

The ID of the business unit to which the technician will be assigned

10978752986
Connection

The ServiceTitan connection to use.

Custom Fields

Custom fields for the technician

[
  {
    "typeId": 0,
    "value": "string"
  }
]
Email

Technician's email address

test@technician.us
Address

The home address of the technician

{
  "street": "string",
  "unit": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string"
}
License Type

The type of ServiceTitan license to assign to the technician.

Login Username

Technician's username

technician_us
Memo

Memo for the technician

Payment for services rendered.
Name

The name of the technician

Acme Plumbing
Password

The password to assign when the technician's login is created now rather than deferred or invited.

XXXXXXXXXXXX
Phone Number

Technician's phone number

1234567890
Positions

List of company positions

Role ID

The ID of the user role to assign to the technician.

7
Example Payload for Create Technician⤓
Loading…

Delete Appointment​

Delete an appointment by ID. | key: deleteAppointment

InputNotesExample
Appointment ID

The ID of the appointment.

10978752986
Connection

The ServiceTitan connection to use.

Example Payload for Delete Appointment⤓
Loading…

Delete Customer Contact​

Removes a contact from a customer. | key: deletCustomersContact

InputNotesExample
Connection

The ServiceTitan connection to use.

Customer Contact ID

The customer contact ID.

10978752986
Customer ID

The customer ID.

10978752986
Example Payload for Delete Customer Contact⤓
Loading…

Delete Invoice Item​

Delete an invoice item. | key: deleteInvoiceItem

InputNotesExample
Connection

The ServiceTitan connection to use.

Invoice ID

The ID of the invoice.

10978752986
Item ID

The ID of the item.

10978752986
Example Payload for Delete Invoice Item⤓
Loading…

Get Appointment​

Retrieve an appointment by ID. | key: getAppointment

InputNotesExample
Appointment ID

The ID of the appointment.

10978752986
Connection

The ServiceTitan connection to use.

Example Payload for Get Appointment⤓
Loading…

Get Booking by Provider​

Retrieve a booking by ID for a booking provider. | key: getBookingByProvider

InputNotesExample
Booking ID

The ID of the booking to act on.

10978752986
Booking Provider ID

The ID of the booking provider that submitted the booking.

10978752986
Connection

The ServiceTitan connection to use.

Example Payload for Get Booking by Provider⤓
Loading…

Get Booking by Tenant​

Retrieve a booking by ID for the tenant. | key: getBookingByTenant

InputNotesExample
Booking ID

The ID of the booking to act on.

10978752986
Connection

The ServiceTitan connection to use.

Example Payload for Get Booking by Tenant⤓
Loading…

Get Customer​

Retrieve a customer by ID. | key: getCustomer

InputNotesExample
Connection

The ServiceTitan connection to use.

Customer ID

The customer ID.

10978752986
Example Payload for Get Customer⤓
Loading…

Get Installed Equipment​

Retrieve an installed equipment record by ID. | key: getInstalledEquipment

InputNotesExample
Connection

The ServiceTitan connection to use.

Installed Equipment ID

ID of the installed equipment

1234567890
Example Payload for Get Installed Equipment⤓
Loading…

Get Job​

Retrieve a job by ID. | key: getJob

InputNotesExample
Connection

The ServiceTitan connection to use.

External Data Application GUID

Format - guid. If this guid is provided, external data corresponding to this application guid will be returned.

6B29FC40-CA47-1067-B31D-00DD010662DA
Job ID

The job ID.

10978752986
Example Payload for Get Job⤓
Loading…

Get Location​

Retrieve a location by ID. | key: getLocation

InputNotesExample
Connection

The ServiceTitan connection to use.

Location ID

The ID of the location to retrieve

10978752986
Example Payload for Get Location⤓
Loading…

Get Project​

Retrieve a project by ID. | key: getProject

InputNotesExample
Connection

The ServiceTitan connection to use.

Project ID

The ID of the project to retrieve

10978752986
Example Payload for Get Project⤓
Loading…

Get Technician​

Retrieve a technician by ID. | key: getTechnician

InputNotesExample
Connection

The ServiceTitan connection to use.

Technician ID

The ID of the Technician to retrieve

10978752986
Example Payload for Get Technician⤓
Loading…

List Appointment Assignments​

Retrieve a list of appointment assignments. | key: listAppointmentsAssignment

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Appointment Assignments⤓
Loading…

List Appointments​

Retrieve a list of appointments. | key: listAppointments

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Appointments⤓
Loading…

List Bookings by Provider​

Retrieves a list of bookings for a booking provider. | key: listBookingByProvider

InputNotesExample
Booking Provider ID

The ID of the booking provider that submitted the booking.

10978752986
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Bookings by Provider⤓
Loading…

List Bookings by Tenant​

Retrieves a list of bookings for the tenant. | key: listBookingByTenant

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Bookings by Tenant⤓
Loading…

List Business Units​

Gets a list of business units. | key: listBusinessUnits

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Business Units⤓
Loading…

List Customer Contacts​

Gets a list of contacts for the specified customer. | key: listCustomersContact

InputNotesExample
Connection

The ServiceTitan connection to use.

Customer ID

The customer ID.

10978752986
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Modified Before

Return items modified before certain date/time (in UTC)

2021-01-01T00:00:00Z
Modified On Or After

Return items modified on or after certain date/time (in UTC)

2021-01-01T00:00:00Z
Pagination

Page number and page size.

Example Payload for List Customer Contacts⤓
Loading…

List Customers​

Retrieve a list of customers. | key: listCustomers

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Customers⤓
Loading…

List Installed Equipment​

Retrieve a list of installed equipment. | key: listInstalledEquipment

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Installed Equipment⤓
Loading…

List Installed Equipment Attachments​

Retrieve installed equipment attachments. | key: listInstalledEquipmentAttachments

InputNotesExample
Connection

The ServiceTitan connection to use.

Path

Installed equipment attachment path

department
Example Payload for List Installed Equipment Attachments⤓
Loading…

List Invoices​

Retrieves a list of invoices. | key: listInvoices

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Invoices⤓
Loading…

List Job Cancel Reasons​

Retrieve a list of job cancel reasons. | key: listJobCancelReasons

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Job Cancel Reasons⤓
Loading…

List Jobs​

Retrieve a list of jobs. | key: listJobs

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Jobs⤓
Loading…

List Locations​

Retrieve a list of locations. | key: listLocations

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Locations⤓
Loading…

List Payments​

Retrieve a list of payments. | key: listPayments

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Payments⤓
Loading…

List Projects​

Retrieve a list of projects. | key: listProjects

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Projects⤓
Loading…

List Technicians​

Retrieve a list of technicians. | key: listTechnicians

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Page

The page of results to return. Paging is 1-based, so the first page is 1.

1
Page Size

The maximum number of records to return per page. A page never contains more than this many records. Defaults to 50 when omitted.

50
Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List Technicians⤓
Loading…

List User Roles​

Gets a list of user roles. | key: listUserRoles

InputNotesExample
Connection

The ServiceTitan connection to use.

Custom Query Params

Additional query-string parameters to append to the request, supplied as name and value pairs.

key1=value1
Fetch All

When true, automatically fetches all pages of results and ignores the page and page size values.

false
Include Total

When true, includes the total count of matching records in the response. Ignored when Fetch All is true.

false
Pagination

Page number and page size.

Sort

Applies sorting by the specified field:'?sort=+FieldName' for ascending order,'?sort=-FieldName' for descending order.

+FieldName
Example Payload for List User Roles⤓
Loading…

Raw Request​

Send raw HTTP request to ServiceTitan. | key: rawRequest

InputNotesExample
Connection

The ServiceTitan connection to use.

Data

The HTTP body payload to send to the URL.

{"exampleKey": "Example Data"}
File Data

File Data to be sent as a multipart form upload.

[{key: "example.txt", value: "My File Contents"}]
File Data File Names

File names to apply to the file data inputs. Keys must match the file data keys above.

Form Data

The Form Data to be sent as a multipart form upload.

[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header

A list of headers to send with the request.

User-Agent: curl/7.64.1
Max Retry Count

The maximum number of retries to attempt. Specify 0 for no retries.

0
Method

The HTTP method to use.

Query Parameter

A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.

Response Type

The type of data you expect in the response. You can request json, text, or binary data.

json
Retry On All Errors

If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.

false
Retry Delay (ms)

The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.

0
Timeout

The maximum time that a client will await a response to its request

2000
URL

Input the path only. The base URL is built from the connection environment and the URL Type above, in the form https://api.servicetitan.io/{URL Type}/v2/tenant/{tenant}. For example, with a URL Type of jpm, entering /jobs reaches https://api.servicetitan.io/jpm/v2/tenant/{tenant}/jobs.

/jobs
URL Type

The URL type to connect to. For example, jpm, crm, accounting, etc.

jpm
Use Exponential Backoff

Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.

false

Unassign Technicians from Appointment​

Un-assigns the list of technicians from the appointment. | key: unassignTechnicians

InputNotesExample
Connection

The ServiceTitan connection to use.

Job Appointment ID

ID of the job appointment

1234567890
Technician IDs

Unassign these technicians from the appointment.

1088
Example Payload for Unassign Technicians from Appointment⤓
Loading…

Update Booking​

Update a booking. | key: updateBooking

InputNotesExample
Address

The street address, including unit, city, state, ZIP code, and country.

{
  "street": "string",
  "unit": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string"
}
Booking ID

The ID of the booking to act on.

10978752986
Booking Provider ID

The ID of the booking provider that submitted the booking.

10978752986
Business Unit ID

The ID of the business unit.

10978752986
Campaign ID

The ID of the marketing campaign that generated the record.

10978752986
Connection

The ServiceTitan connection to use.

Customer Type

Whether the customer is Residential or Commercial.

External ID

The booking's identifier in the originating external system.

10978752986
Is First Time Client

When true, marks the booking's customer as a first-time client.

Job Type ID

The ID of the job type to assign.

10978752986
Name

The full name of the customer or business.

Acme Plumbing
Priority

Booking priority

Source

The lead source that generated this booking.

Test Source
Start

Start date/time (in UTC)

2021-01-01T00:00:00Z
Summary

Summary of the booking

A summary related to the invoice.
Uploaded Images

The images to attach to the booking, one entry per image.

booking-photo.jpg
Example Payload for Update Booking⤓
Loading…

Update Customer​

Update a customer. | key: updateCustomer

InputNotesExample
Active

Whether the customer is active

Address

The street address, including unit, city, state, ZIP code, and country.

{
  "street": "string",
  "unit": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string"
}
Connection

The ServiceTitan connection to use.

Customer ID

The customer ID.

10978752986
Custom Fields

Custom field values to set, as an array of type ID and value pairs.

[
  {
    "typeId": 0,
    "value": "string"
  }
]
Do Not Mail

Customer has been flagged as “do not mail”

Do Not Service

Customer has been flagged as “do not service”

External Data

External data to attach to the request.

{
  "applicationGuid": "string",
  "externalData": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
Name

The full name of the customer or business.

Acme Plumbing
Tag Type IDs

The IDs of the tag types to apply.

123
Customer Type

Whether the customer is Residential or Commercial.

Example Payload for Update Customer⤓
Loading…

Update Customer Contact​

Updates a contact on a customer. | key: updateCustomerContact

InputNotesExample
Connection

The ServiceTitan connection to use.

Customer Contact ID

The customer contact ID.

10978752986
Customer ID

The customer ID.

10978752986
Memo

Short description about this contact, for example, “work #” or “Owner’s daughter - Kelly”

Payment for services rendered.
Customer Contact Type

Type of the customer contact

Customer Contact Type Value

The email, phone number, or fax number for the contact

1234567890
Example Payload for Update Customer Contact⤓
Loading…

Update Installed Equipment​

Update installed equipment by ID. | key: updateInstalledEquipment

InputNotesExample
Attachments

List of attachments

[
  {
    "alias": "string",
    "fileName": "string",
    "type": {},
    "url": "string"
  }
]
Connection

The ServiceTitan connection to use.

Cost

Cost of the installed equipment

100.00
Custom Fields

The custom fields of the installed equipment

[
  {
    "typeId": 0,
    "value": "string"
  }
]
Installed Equipment ID

ID of the installed equipment

1234567890
Installed On

The date the equipment was installed

2021-01-01T00:00:00Z
Manufacturer

Manufacturer of the installed equipment

Test Manufacturer
Memo

The memo of the installed equipment

Payment for services rendered.
Model

Model of the installed equipment

Test Model
Name

The name of the installed equipment

Acme Plumbing
Serial Number

Serial number of the installed equipment

1234567890
Tag Type IDs

The IDs of the tag types to apply.

123
Warranty Dates

Manufacturer and service provider warranty start and end dates.

Example Payload for Update Installed Equipment⤓
Loading…

Update Invoice​

Update an invoice. | key: updateInvoice

InputNotesExample
Assigned To ID

The ID of the user the invoice is assigned to.

10978752986
Connection

The ServiceTitan connection to use.

Export ID

The identifier assigned to the record when it is exported to an external system.

6B29FC40-CA47-1067-B31D-00DD010662DA
Invoiced On

The date the invoice was invoiced on.

2021-01-01T00:00:00Z
Invoice ID

The ID of the invoice.

10978752986
Items

The items of the invoice.

[
  {
    "skuId": 0,
    "skuName": "string",
    "technicianId": 0,
    "description": "string",
    "quantity": 0,
    "unitPrice": 0,
    "cost": 0,
    "isAddOn": true,
    "signature": "string",
    "technicianAcknowledgementSignature": "string",
    "installedOn": "string",
    "inventoryWarehouseName": "string",
    "skipUpdatingMembershipPrices": true,
    "itemGroupName": "string",
    "itemGroupRootId": 0,
    "inventoryLocationId": 0,
    "durationBillingId": 0,
    "id": 0
  }
]
Number

The invoice number.

10978752986
Payments

The payments of the invoice.

[
  {
    "id": 0,
    "settlementStatus": {},
    "settlementDate": "string"
  }
]
Review Status

The review status of the invoice.

Royalty Details

Royalty status, date, sent on, and memo.

Subtotal

The subtotal of the invoice.

100.00
Summary

The summary of the invoice.

A summary related to the invoice.
Tax

The tax of the invoice.

100.00
Type ID

The ID of the invoice or payment type to assign, as configured in the ServiceTitan tenant.

0
Example Payload for Update Invoice⤓
Loading…

Update Invoice Custom Fields​

Update custom fields for specified invoices. | key: updateInvoiceCustomFields

InputNotesExample
Connection

The ServiceTitan connection to use.

Operations

The operations to perform on the invoice.

[
  {
    "objectId": 0,
    "customFields": [
      {
        "name": "string",
        "value": "string"
      }
    ]
  }
]
Example Payload for Update Invoice Custom Fields⤓
Loading…

Update Invoice Items​

Update invoice items. | key: updateInvoiceItems

InputNotesExample
Additional Fields

Additional optional fields: includes Unit Price, Cost, Is Add On, Signature, Technician Acknowledgement Signature, Installed On, Inventory Warehouse Name, Skip Updating Membership Prices, and Item Group Name.

Connection

The ServiceTitan connection to use.

Description

The description of the SKU.

A test SKU
Duration Billing ID

The duration billing ID of the SKU.

10978752986
Invoice Item ID

The unique identifier of the invoice item.

10978752986
Inventory Location ID

The inventory location ID of the SKU.

10978752986
Invoice ID

The ID of the invoice.

10978752986
Item Group Root ID

The item group root ID of the SKU.

10978752986
Quantity

The quantity of the SKU.

2
SKU ID

The ID of the SKU.

10978752986
SKU Name

The name of the SKU.

Test SKU
Technician ID

The ID of the technician.

10978752986
Example Payload for Update Invoice Items⤓
Loading…

Update Job​

Update a job. | key: updateJob

InputNotesExample
Business Unit ID

ID of the job's business unit

10978752986
Campaign ID

ID of the job's campaign

10978752986
Connection

The ServiceTitan connection to use.

Customer ID

The customer ID.

10978752986
Customer PO

The customer's purchase order number to record on the job.

PO-10025
Custom Fields

Custom fields for the job

[
  {
    "typeId": 0,
    "value": "string"
  }
]
External Data

External data to attach to the request.

{
  "applicationGuid": "string",
  "externalData": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
Job Generated Lead Source

The lead source that generated this job. Provide jobId (the job this one was generated from) and employeeId (the office user or technician credited).

{
  "jobId": 0,
  "employeeId": 0
}
Job ID

The job ID.

10978752986
Job Type ID

ID of the job's type

10978752986
Location ID

The ID of the location.

10978752986
Priority

Priority of the job

Should Update Invoice Items

If set to true, update the business unit of invoice items on job's invoice

Summary

Job summary

A summary related to the invoice.
Tag Type IDs

Tag type IDs for the job

123
Example Payload for Update Job⤓
Loading…

Update Location​

Update a location. | key: updateLocation

InputNotesExample
Active

If false, the location will be marked as inactive

Address

The address of the location

{
  "street": "string",
  "unit": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string"
}
Connection

The ServiceTitan connection to use.

Customer ID

The customer ID associated with the location

10978752986
Custom Fields

Custom field values to set, as an array of type ID and value pairs.

[
  {
    "typeId": 0,
    "value": "string"
  }
]
External Data

External data to attach to the request.

{
  "applicationGuid": "string",
  "externalData": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
Location ID

The ID of the location.

10978752986
Name

The name of the location

Acme Plumbing
Tag Type IDs

The IDs of the tag types to apply.

123
Tax Zone ID

ID of the location tax zone

1088
Example Payload for Update Location⤓
Loading…

Update Payment​

Update a specified payment. | key: updatePayment

InputNotesExample
Auth Code

The authorization code for the payment.

A1B2C3
Check Number

The check number for the payment.

1042
Connection

The ServiceTitan connection to use.

Export ID

The identifier assigned to the record when it is exported to an external system.

6B29FC40-CA47-1067-B31D-00DD010662DA
Memo

A free-text note recorded against the payment.

Payment for services rendered.
Paid On

The date the payment was paid on.

2021-01-01T00:00:00Z
Payment ID

The ID of the payment.

10978752986
Splits

The splits of the payment.

[
  {
    "invoiceId": 0,
    "amount": 0
  }
]
Status

The status of the payment.

Type ID

The ID of the invoice or payment type to assign, as configured in the ServiceTitan tenant.

0
Example Payload for Update Payment⤓
Loading…

Update Payment Custom Fields​

Update custom fields for specified payments. | key: updatePaymentCustomFields

InputNotesExample
Connection

The ServiceTitan connection to use.

Operations

The operations to perform on the payment.

[
  {
    "objectId": 0,
    "customFields": [
      {
        "name": "string",
        "value": "string"
      }
    ]
  }
]
Example Payload for Update Payment Custom Fields⤓
Loading…

Update Project​

Update a project. | key: updateProject

InputNotesExample
Actual Completion Date

Actual completion date of the project

2021-01-01T00:00:00Z
Connection

The ServiceTitan connection to use.

Custom Fields

Custom fields for the project

[
  {
    "typeId": 0,
    "value": "string"
  }
]
External Data

External data items to attach to the project, grouped under an application GUID.

{
  "applicationGuid": "string",
  "externalData": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
Job IDs

IDs of the project's jobs

1088
Name

Name of the project

Acme Plumbing
Project ID

ID of the project to update

10978752986
Project Manager IDs

IDs of the project's managers

1088
Start

Start date of the project

2021-01-01T00:00:00Z
Status ID

The ID of the project status to set.

1088
Sub Status ID

The ID of the project sub-status to set.

1088
Summary

Summary of the project

A summary related to the invoice.
Target Completion Date

Target completion date of the project

2021-01-01T00:00:00Z
Example Payload for Update Project⤓
Loading…

Update Technician​

Update a technician. | key: updateTechnician

InputNotesExample
Azure Active Directory User ID

The GUID of the technician's user account in Azure Active Directory.

6B29FC40-CA47-1067-B31D-00DD010662DA
Additional Fields

Additional optional fields: includes Team, Daily Goal, Burden Rate, Biography, Job Filter, and Job History Date Filter.

Business Unit ID

The ID of the business unit to which the technician will be assigned

10978752986
Connection

The ServiceTitan connection to use.

Custom Fields

Custom fields for the technician

[
  {
    "typeId": 0,
    "value": "string"
  }
]
Email

Technician's email address

test@technician.us
Address

The home address of the technician

{
  "street": "string",
  "unit": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string"
}
License Type

The type of ServiceTitan license to assign to the technician.

Login Username

Technician's username

technician_us
Memo

Memo for the technician

Payment for services rendered.
Name

The name of the technician

Acme Plumbing
Phone Number

Technician's phone number

1234567890
Positions

List of company positions

Role ID

The ID of the user role to assign to the technician.

7
Technician ID

The ID of the technician to update

10978752986
Example Payload for Update Technician⤓
Loading…

Changelog​

2026-09-15​

  • Fixed optional JSON inputs, including Address, Contacts, Custom Fields, External Data, Location, Attachments, Items, Payments, and Job Generated Lead Source, which pre-filled a placeholder template and then submitted it as real data when the field was left untouched, so renaming a customer could replace their stored address with the template; the templates are now shown as examples only
  • Fixed the New and Updated Records trigger dropping records that shared a timestamp with a record it had already delivered, and advancing its cursor past records it never returned; the cursor now advances only to the newest record actually delivered, and holds when a recurrence returns nothing
  • Added an optional Look-back Date input for performing an initial sync on the New and Updated Records trigger. The initial sync begins on the first recurrence and backfills every record created or modified on or after the specified date, seeding each once and ignoring the trigger's visibility filters; later recurrences are unaffected. Leave it empty to start from the first recurrence with no backfill
  • Added opt-in batching to the New and Updated Records trigger, dispatching each changed record individually or in configured batches so large backlogs drain in one recurrence; enabling it changes the shape a downstream step receives
  • Updated Reason ID and Invoice ID to send whole numbers rather than text on the job and invoice actions, matching the integer types the ServiceTitan API declares for those fields
  • Added output schemas to 47 actions for improved field mapping during configuration
  • Added inline action calling support to 56 actions for improved example output during configuration
  • Updated the Application Key connection field and the technician Password input to masked password inputs, since their values are secrets
  • Updated outbound requests to send a valid Accept header and to report an unauthorized connection as a connection error
  • Updated labels for accuracy: the appointment assignment actions now read Assign Technicians to Appointment, Unassign Technicians from Appointment, and List Appointment Assignments, the invoice item identifier reads Invoice Item ID rather than ID, and the booking provider identifier reads Booking Provider ID rather than Booking Provider
  • Fixed the Raw Request action description, which named an unrelated product instead of ServiceTitan

2026-08-05​

Deprecated the Create Payment action and restructured action inputs into structured objects for an improved user experience:

  • List actions group page and page-size inputs into Pagination; Fetch All stays a top-level toggle
  • Create Invoices and Update Invoice group royalty-related inputs into Royalty Details
  • Update Invoice Items groups miscellaneous optional inputs into Additional Fields
  • Create Installed Equipment and Update Installed Equipment group warranty date inputs into Warranty Dates
  • Create Technician and Update Technician group optional profile inputs into Additional Fields

2026-05-20​

Various modernizations and documentation updates

2026-04-30​

Updated spectral version

2026-04-21​

Added New and Updated Records polling trigger that checks for new and updated jobs, appointments, invoices, customers, and other records in ServiceTitan on a configured schedule

2026-03-13​

Removed the Debug Request input from all action inputs. Debug logging is now controlled internally and no longer appears as a configurable field in actions.

2026-02-26​

Added inline data sources for business units, user roles, job cancel reasons, customer contacts, and payments to enable dynamic dropdown selection