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_attimestamp, 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.