Overview
This guide helps NetSuite administrators tune their NetSuite account so the ServiceTitan-to-NetSuite integration keeps pace with their data volume. It explains which NetSuite settings to change when the sync falls behind, and which changes to avoid. Use it to keep your accounting sync current during busy periods without risking data integrity.
Who uses this feature
Administrators and accountants
Applies to all business types
Applies to all trades
Feature configuration
The ServiceTitan-to-NetSuite integration must be set up for your account. The settings in this guide are configured in NetSuite by your NetSuite administrator. If you're a customer with multiple ServiceTitan accounts, contact Technical Support for details.
Things to know
The sync runs once per tenant in a fixed order: customers and vendors first, then the documents that depend on them, such as invoices and payments. This order is required so each document can attach to a customer that already exists in NetSuite.
Within a single tenant, the steps run one after another by design. This is not a sign that the integration is running slowly or single-threaded by mistake.
The main way to process more at once is to run more tenants concurrently. Each tenant has its own independent run.
All tenant runs, plus your own NetSuite background jobs, draw from the same shared pool of SuiteCloud Processors.
Adding SuiteCloud Processors is the single most effective change when the sync falls behind, especially if you run multiple tenants or have other heavy NetSuite automation.
Your NetSuite service tier caps how many processors you're allowed to buy.
Best practices
Add processor capacity before micro-tuning a single tenant. Capacity helps across all tenants and against your other jobs.
Stagger tenant start times so runs enter the processor pool in a steady stream instead of a single pile-up.
Schedule runs during off-peak windows so the integration isn't competing with your other heavy NetSuite work.
Match run frequency to volume. High-volume tenants benefit from smaller, more frequent runs; low-volume tenants can run less often.
Use High priority and Processor Reservation together to reserve a lane for the integration.
If you raise a tenant's Concurrency Limit, raise it gradually and watch the effect on your other jobs.
Leave Buffer Size at 1 to avoid duplicate or double-applied transactions.
Use cases
Multiple tenants fall behind during busy periods, so you add SuiteCloud Plus capacity to sync more of them concurrently.
The sync keeps waiting behind your own NetSuite jobs, so you set it to High priority and reserve a processor lane.
One large tenant's run is slow while processors sit free, so you run it more often or carefully raise its Concurrency Limit.
Large nightly catch-up runs all land at once, so you stagger start times and increase run frequency to shrink each batch.
Add SuiteCloud Processor capacity
NetSuite runs background jobs, including this integration's syncs, through a pool of SuiteCloud Processors. Each processor is like a lane on a highway: more lanes means more jobs travel at once instead of queuing behind each other. This is the main lever for a sync that's falling behind.
Every NetSuite account includes 2 SuiteCloud Processors by default.
Each SuiteCloud Plus license you purchase adds roughly five processors.
More processors let more of your tenants sync concurrently, keep the integration from sitting behind your other background jobs, and help large nightly catch-ups finish sooner.
SuiteCloud Plus licenses are purchased through your NetSuite account representative. This is a NetSuite account change, not something configured inside the integration.
Note: Adding processors is the broad lever, helping across tenants and against your other jobs. It also raises the headroom for the advanced single-tenant tuning below, which draws from this same processor pool.
Check your NetSuite service tier ceiling
How many SuiteCloud Processors you're allowed to buy is capped by your NetSuite service tier. Accounts with no SuiteCloud Plus licenses get the default of 2 processors.
Service tier | Max SuiteCloud Plus licenses | Max SuiteCloud Processors |
|---|---|---|
Standard | 1 | 5 |
Premium | 3 | 15 |
Enterprise | 6 | 30 |
Ultimate | 12 | 60 |
If you've already bought the maximum licenses your tier allows and the sync still can't keep up, your next lever is a service-tier upgrade. Your NetSuite account representative can tell you what tier you're on today and what a higher tier would change.
Schedule and stagger your tenant runs
Each ServiceTitan tenant has its own scheduled run in NetSuite. How you time those runs has a real effect on throughput, because all of them, plus your own NetSuite jobs, draw from the same processor pool. Get these three things right:
Don't start every tenant at the same minute. If all your tenants kick off at 2:00 AM exactly, they rush the processor pool at once and most of them wait. Spread the start times a few minutes apart so they enter the pool in a steady stream.
Prefer off-peak windows. Schedule the integration when your account isn't busy with other heavy work, such as overnight and outside your other scheduled or Map/Reduce jobs and bundle activity.
Match the frequency to your volume. A high-volume tenant benefits from running more often, so each batch is smaller. A low-volume tenant can run less frequently. The goal is to avoid giant, infrequent catch-up runs that all land at once.
You set these schedules on each integration run's deployment record in NetSuite, under Customization > Scripting > Script Deployments, or from the integration's own dashboard. If you're not sure how your runs are currently scheduled, your ServiceTitan contact can help you review them.
Prioritize and reserve a processor lane for the integration
If the integration is healthy but keeps waiting behind your own NetSuite jobs, NetSuite gives you two settings that, used together, can guarantee the sync always has a lane to run in. This is the closest you can get to a dedicated processor for ServiceTitan.
Set the integration to High priority
Every background job has a Priority setting: High, Standard, or Low. NetSuite always hands free processors to higher-priority jobs before lower-priority ones. Setting the integration's runs to High means the sync gets processors ahead of your other Standard or Low background jobs when they free up.
Go to Customization > Scripting > Script Deployments.
Click Edit on each integration deployment record.
Set Priority to High, then save.
Note: This is pure scheduling. It changes when the sync gets a processor, not how it processes anything. The only trade-off is that your other jobs may wait a little longer.
Reserve a lane with Processor Reservation
Priority alone decides who goes first; Processor Reservation can hold processors back so only high-priority work may use them. Combined with High priority, this effectively reserves a lane for the integration.
Go to Setup > Preferences > SuiteCloud Processors > Advanced.
Select Enable Reservation.
Choose how many processors to reserve. NetSuite lets you reserve all but one of your processors.
Once reserved, a high-priority job (your integration, after setting High priority) can use a reserved processor whenever one is free. A standard or low job only runs when there are more free processors than the number reserved. For example, with 10 of 25 reserved, a standard job runs only if 11 or more are free; otherwise it waits. Even on a default two-processor account this works: reserve 1, and you've carved one lane for high-priority ServiceTitan work and left one for everything else.
Caution: This is not a true ServiceTitan-only processor. Reservation is by priority, not by application, so the reserved lane serves any high-priority job in your account. It also reduces throughput for your other jobs, and the Reuse Idle Processors option can temporarily release a reserved lane if the integration sits idle for 24 hours.
Reservation is an account-wide preference, whereas Priority is set per deployment. You generally want both: High priority on the integration's deployments and at least one reserved processor.
Speed up a single tenant with Concurrency Limit
Everything above is about running more tenants at once. This advanced setting speeds up a single tenant's run instead. Within one tenant's run, the integration imports records through NetSuite's Map/Reduce engine. The Concurrency Limit on the import deployment controls how many processors that one run may use at the same time.
Concurrency Limit is set to 1 today, so each tenant imports its records one at a time. Raising it lets NetSuite import multiple records of the same type in parallel, which can finish a large tenant's run faster.
This does not change the order. Customers still import before the invoices and payments that depend on them, because that order is enforced by the integration's own logic, not by this setting.
Raise it gradually, for example from 1 to 2, and watch the effect on your other jobs. If you're unsure what value fits your volume, ask ServiceTitan support for a sensible starting point.
Caution: Concurrency Limit draws from the same processor pool as everything else. Giving one tenant more processors leaves fewer for your other tenants and jobs at that moment. If you're processor-constrained, add capacity before raising concurrency.
Caution: Leave Buffer Size alone. NetSuite recommends leaving it at 1 when processing records, because a higher value risks processing the same record twice if a job is interrupted, which for an accounting sync could mean duplicate or double-applied transactions. Concurrency Limit is the throughput lever, not Buffer Size.
Diagnose a processor shortage
The classic symptom of too few processors for your workload is integration jobs sitting in Pending, queued up and waiting for a free lane, instead of actually running. Check these two places:
Map/Reduce Script Status (Customization > Scripting > Map/Reduce Script Status) lists the integration's import jobs and their state. Lots of jobs stuck in Pending while few are Processing means they're waiting for processors.
SuiteCloud Processors Monitor is NetSuite's built-in dashboard for processor usage. If your processors are consistently at full utilization while jobs pile up Pending, that's your signal to add SuiteCloud Plus capacity.
Use this table as a rule of thumb:
What you see | Likely meaning | What to do |
|---|---|---|
Jobs mostly Pending, processors fully used | Not enough processors for the workload | Add SuiteCloud Plus licenses, and check your tier ceiling |
Jobs mostly Pending, but they all started at the same time | Runs not staggered | Spread out start times |
Jobs Processing but slow, contending with other NetSuite jobs | Running during a busy window | Move to an off-peak schedule |
A single tenant's run is just long, processors free | Large data volume for that tenant | Run it more often so each batch is smaller, or carefully raise its Concurrency Limit |
Sync waits behind your other NetSuite jobs | Priority not set | Set the integration to High priority, and reserve a lane for it |
Changes to avoid
Caution: The following look like speed-ups but won't help, and some will cause problems.
Don't delete the integration's scripts or deployments. They're there for a reason; one import deployment is even titled "DO NOT DELETE." You can safely adjust the settings this guide calls out, but the scripts and deployment records themselves should stay in place.
Don't raise Buffer Size. NetSuite recommends leaving it at 1 when processing records; raising it risks duplicate or double-applied transactions.
Don't run the same tenant twice at the same time. The integration blocks overlapping runs, so a second run won't finish faster and only ties up a processor another tenant could have used.
If you're weighing a change to the integration that this guide doesn't describe, contact ServiceTitan support first.
Still falling behind?
If you've worked through the levers above and the sync still can't keep up, contact Technical Support. Bring the following so support can quickly tell whether the answer is more capacity, a schedule change, or something to look at on the ServiceTitan side:
How many ServiceTitan tenants you sync and roughly how much volume each generates.
Your NetSuite service tier and how many SuiteCloud Plus licenses you currently have.
A screenshot of the Map/Reduce Script Status page during a run, and the SuiteCloud Processors Monitor if you have it.
Want to learn more?
See NetSuite Home