> ## Documentation Index
> Fetch the complete documentation index at: https://docs.avoca.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# How does Avoca pull and push ServiceTitan customer/job data?

> Understand the incremental reads and targeted writes that keep Avoca and ServiceTitan in sync.

We align ServiceTitan customer and job data with Avoca through two complementary flows: incremental reads and targeted writes.

## 1. Incremental Reads

* Background sync jobs authenticate with each tenant’s ServiceTitan account using OAuth.
* We page through the CRM, job-planning, marketing, and settings APIs to capture:
  * Customers, tags, memberships
  * Jobs, job types, campaigns, business units
  * Estimates, invoices, tag types, and other referenced objects
* Each sync remembers the last `modified_at` timestamp, so the next pass only fetches changes since that moment.
* Result: Avoca workflows always operate on the latest customer/job catalog the tenant sees inside ServiceTitan.

## 2. Targeted Writes

* When an Avoca automation books or reschedules work, creates customers/locations, applies tags, reclassifies calls, or generates invoice lines, we immediately call the corresponding ServiceTitan endpoint.
* Our client wrapper handles OAuth token refresh, retries, and error logging.
* After a successful write, we re-fetch the affected records through the same read APIs so Avoca’s cache stays in lockstep with ServiceTitan.

## Why This Matters

* Customer tags, job types, estimates, and other critical fields stay consistent across both systems.
* No manual re-entry is required; Avoca acts as an extension of ServiceTitan rather than a separate silo.
* Workflows can trust that the data they reference (and the updates they produce) reflect the single source of truth in ServiceTitan.

Have a specialized object that needs to sync? Contact your Avoca account team or [support@avoca.ai](mailto:support@avoca.ai) so we can extend the integration.
