We totally get it — when you see a long list of permissions, it's natural to wonder “why do they need all of this?” This document breaks down every permission we request, explains which ones we actively use, and is upfront about which ones we don't need and plan to remove.
We last audited our permission footprint against our codebase in March 2026. This document reflects that audit.
Our Philosophy
We only use permissions we genuinely need to make the integration work. We don't collect data we don't use, and we don't create or modify anything in ServiceTitan that you haven't asked for. Every piece of this integration exists because it directly enables a feature that helps you sell more HVAC jobs.
When you connect SetSale to ServiceTitan, SetSale becomes a companion to your existing workflow — not a replacement. You still create your jobs and manage your dispatch in ServiceTitan the way you always have. SetSale handles the quoting side and then syncs those quotes as estimates so your field team sees exactly what the customer agreed to.
Common Questions
Will SetSale create or modify job types, cancel reasons, hold reasons, project statuses, or campaigns?
No. We do not call any write endpoints for:
Job types
Cancel reasons
Hold reasons
Project statuses
Project types
Campaigns
These permissions are currently enabled in our app but are not used by our integration. We are working to remove them.
Can we restrict unused permissions to READ, or remove them entirely?
Yes, absolutely.
For the permissions listed above, removing or restricting them will not break anything in our integration today. Further down in this document, we provide the complete list of permissions that are safe to remove and the minimum set we actually require.
What breaks if you limit everything to READ only?
The core integration breaks.
SetSale needs write access to:
Create and update estimates on jobs
Create equipment, material, and service SKUs when no match exists
Create organizational pricebook categories
Manage a SetSale vendor record
Create a fallback technician for sold estimates
Push activity notes to jobs
Assign technicians to appointments
Without write access to these resources, quote sync and estimate selling stop working.
Can we pre-create categories and have SetSale map to those instead of auto-creating?
Yes.
If you create categories named exactly:
SetSale Equipment & Services
SetSale Materials
SetSale will detect and use them instead of creating new ones.
The same applies to vendors — if a vendor named “SetSale” already exists, we'll use it.
Have you audited the minimum permissions needed to run this integration?
Yes. Our most recent audit was completed in March 2026.
We reviewed every API call our integration makes and identified a number of permissions that were enabled but not used. These were over-provisioned during initial development, and we are actively trimming the integration down to the minimum required set.
Permissions We Actively Use (Read and Write)
These permissions require both read and write access. Removing write access for any of these will break core integration features.
Estimates (Read and Write)
What it means:
We can create, read, update, and manage estimates in ServiceTitan.
What we actually do:
This is the core of the integration. Every quote option in SetSale becomes an estimate in ServiceTitan.
Each quote option is created as an Open estimate
When the customer signs, the chosen estimate is marked Sold
Unused options are marked Dismissed (ServiceTitan doesn’t allow deletion)
Estimates update if the quote changes
This ensures your dispatch team always sees exactly what the homeowner approved.
Equipment (Read and Write)
What it means:
We can search your equipment pricebook and create new equipment items.
What we actually do:
Quotes include equipment such as:
Furnaces
Air conditioners
Heat pumps
To place these on a ServiceTitan estimate we must match them to pricebook items.
Workflow:
Search your pricebook first
If a match exists → use it
If not → create a new item
New items go into the category SetSale Equipment & Services.
We also update price and active status for equipment that SetSale originally created.
Materials (Read and Write)
What it means:
We can search your materials pricebook and create new materials.
What we actually do:
Quotes may include parts like:
Filters
Refrigerant
Wire
Misc install materials
We search for existing items first and only create new ones if necessary.
New items are placed into SetSale Materials.
Services (Read and Write)
What it means:
We can search your service pricebook and create service items.
What we actually do:
Service items include things like:
Installation labor
Diagnostics
Add-ons
If the service doesn't exist in your pricebook, we create it.
New services are placed in SetSale Equipment & Services.
Categories (Read and Write)
What it means:
We can read and create pricebook categories.
What we actually do:
When we create items, they need a category.
SetSale creates two dedicated ones:
SetSale Equipment & Services
SetSale Materials
We never modify your existing categories.
If these categories already exist, we use them instead.
Vendors (Read and Write)
What it means:
We can search and manage vendor records.
What we actually do:
We look for a vendor named SetSale.
If it doesn't exist, we create it.
When equipment or materials are created, we link this vendor so your team knows where those items originated.
If vendor creation fails, the pricebook item is still created — just without vendor linkage.
Technicians (Read and Write)
What it means:
We can search for and create technicians.
What we actually do:
When an estimate is marked Sold, it must be assigned to a technician.
We attempt to match the SetSale user to a technician:
Match by email
Match by name
If no match exists, we create a shared technician called SetSale Technician, used as a fallback.
Permissions We Actively Use (Write Only)
Job Notes (Write)
We add notes to jobs when important events happen, such as:
Customer views a quote
Customer signs a quote
Customer requests follow-up
Notes are always labeled with [SetSale] and we never read, modify, or delete existing notes.
Appointment Assignments (Write)
In some cases ServiceTitan requires a technician to be assigned before estimate items can be created.
This permission acts as a fallback mechanism so estimate sync completes successfully. We do not manage your appointment schedule.
Permissions We Actively Use (Read Only)
These permissions are used only to read information from ServiceTitan.
Customers
Used to display customer information when searching for jobs.
Locations
Used to display service addresses when searching for jobs.
Jobs
Used by SetSale’s job search feature so salespeople can link quotes to existing jobs.
Business Units
Used when creating the fallback technician.
User Roles
Used to assign the correct role when creating the fallback technician.
GL Accounts
Used when assigning income and cost-of-sales accounts to newly created pricebook items.
Conditional Permissions
Discounts and Fees (Read and Write)
Only used if Sync Discounts is enabled in SetSale.
When enabled, SetSale creates discount SKUs for:
Team discounts
Cash discounts
Instant rebates
If this feature is not used, the permission can be removed.
Platform Dependencies
Employees (Read and Write)
We do not call employee endpoints directly. However, ServiceTitan requires this permission to be enabled for technician creation to work. This appears to be a platform dependency.
Permissions We Don’t Use
The following permissions are currently enabled but not used by our integration and are safe to remove:
Installed Equipment
Appointments
Job Canceled Logs
Job Cancel Reasons
Job History
Job Hold Reasons
Job Types
Project Notes
Projects
Project Statuses
Project Sub-Statuses
Project Types
Campaigns
Client Specific Pricing
Pricebook Images
Pricebook Bulk Operations
Tag Types
What We Never Do
We never delete your data
Estimates are dismissed rather than deleted.
We never modify your core business records
We do not change customers, job types, or existing pricebook items.
We never manage anything outside of quotes
We do not manage dispatch, service agreements, or marketing campaigns.
We never create items without a purpose
Every item created exists because it was needed for a specific estimate.
Minimum Required Permissions
Read and Write (required)
Estimates
Equipment
Materials
Services
Categories
Vendors
Technicians
Write Only (required)
Job Notes
Appointment Assignments
Read Only (required)
Jobs
Customers
Locations
Business Units
User Roles
GL Accounts
Platform Dependency
Employees (Read and Write)
Conditional
Discounts and Fees (only if Sync Discounts is enabled)
Everything else currently enabled can be removed without affecting the integration.
Questions?
If anything in this document is unclear or you have concerns about a particular permission, our support team would be happy to walk through it with you.
One important note: ServiceTitan does not allow different permission sets per customer, so the permissions requested are applied globally across all SetSale users. We are actively working to remove unused permissions from our configuration so this concern becomes moot for everyone.
