Skip to main content

ServiceTitan API Workflow Documentation

Overview and Integration Goal

Avoca orchestrates post-call workflows, AI responder experiences, scheduling, dispatch, marketing audiences, and messaging by sitting directly on top of ServiceTitan’s APIs. Every major Avoca feature—voice QA, AI booking, Simple Scheduler, dispatch boards, outbound campaigns, texting, and task automation—either reads live ST data or pushes updates back through v2 endpoints. Integration goals
  • Deliver AI-assisted booking, reschedule, and cancellation flows that write directly to ST jobs, appointments, campaigns, tags, and notes.
  • Provide real-time customer, membership, and service-history context to agents and automations during voice or text conversations.
  • Sync Telecom calls, job/technician KPIs, and marketing audiences into Avoca’s analytics layer while feeding ST with reclassification decisions, tasks, and notes.
  • Keep dispatch capacity, zones, technician rosters, and service areas aligned so Avoca scheduling mirrors ST availability.
  • Maintain compliant credential storage (within a managed secrets platform) and scoped API usage for each tenant.

Key Integration Use Cases & Workflows

#Use CaseDescriptionData FlowRequired ST API Endpoint and Data FieldsNecessary API Scopes (Read/Write)
1Booking, rescheduling, or cancelling a jobAI or CSR workflows create jobs, reschedule appointments, cancel/hold jobs, assign campaigns/tags, and append summaries.Avoca ⇌ STPOST /jpm/v2/tenant/{tenant}/jobs, PATCH /jpm/v2/tenant/{tenant}/appointments/{id}/reschedule, PUT /jpm/v2/tenant/{tenant}/jobs/{id}/cancel, POST /crm/v2/tenant/{tenant}/bookings, GET /dispatch/v2/tenant/{tenant}/capacity, GET /jpm/v2/tenant/{tenant}/job-types, GET /settings/v2/tenant/{tenant}/business-unitsREAD: CRM, JPM, Dispatch, Marketing, Settings
WRITE: JPM (jobs/appointments), CRM (bookings)
2Customer & membership intelligence during calls/textsLookups by phone/address determine customer identity, locations, contacts, membership eligibility, tags, and guardrails.ST → AvocaGET /crm/v2/tenant/{tenant}/customers, /locations, /locations/{id}/contacts, GET /memberships/v2/tenant/{tenant}/customer-memberships, GET /settings/v2/tenant/{tenant}/tag-types, GET /jpm/v2/tenant/{tenant}/jobsREAD: CRM, Memberships, JPM, Settings
3Simple Scheduler & booking windowsAvoca reads ACP capacity, arrival windows, shifts, and booking windows before generating ST bookings/jobs.ST → Avoca then Avoca ⇌ ST when bookingPOST /dispatch/v2/tenant/{tenant}/capacity, GET /dispatch/v2/tenant/{tenant}/arrival-windows, /technician-shifts, /non-job-appointments, /zones (final bookings reuse row 1 APIs)READ: Dispatch, Settings
WRITE: CRM/JPM for final booking
4Dispatch board & technician (un)assignmentOps users unassign business units, auto-assign responders, and sync on-call rosters.Avoca ⇌ STGET /settings/v2/tenant/{tenant}/technicians, GET /jpm/v2/tenant/{tenant}/appointments, POST /dispatch/v2/tenant/{tenant}/appointmentassignments/assignTechnicians, /unassignTechnicians, GET /dispatch/v2/tenant/{tenant}/appointment-assignmentsREAD: Dispatch, JPM, Settings
WRITE: Dispatch
5Telecom ingestion & QA analyticsCoach, CSR QA, and cron jobs pull Telecom calls/recordings for evaluation.ST → AvocaGET /telecom/v3/tenant/{tenant}/calls, /calls/{id}, /calls/{id}/recordingREAD: Telecom
6Call reclassification & compliance updatesAvoca writes new call reasons and memos via Telecom APIs after QA or AI review.Avoca ⇌ STGET /jbce/v2/tenant/{tenant}/call-reasons, PUT /telecom/v2/tenant/{tenant}/calls/{id}READ: JBCE, Telecom
WRITE: Telecom
7Technician performance & revenue analyticsJobs/appointments/invoices/estimates sync for dashboards; technician metadata powers UI.ST → AvocaGET /jpm/v2/tenant/{tenant}/jobs, /appointments, GET /accounting/v2/tenant/{tenant}/invoices, GET /estimates/v2/tenant/{tenant}/estimates, GET /dispatch/v2/tenant/{tenant}/appointment-assignments, GET /settings/v2/tenant/{tenant}/techniciansREAD: JPM, Accounting, Dispatch, Settings
8Audience building & outbound campaign enrichmentRecurring services, memberships, customers, campaigns, and jobs feed Avoca audiences and outbound workflows.ST → Avoca (read) then Avoca ⇌ ST for overridesGET /crm/v2/tenant/{tenant}/customers, /locations, GET /memberships/v2/tenant/{tenant}/memberships, /membership-types, /recurring-service-types, GET /marketing/v2/tenant/{tenant}/campaigns, GET /jpm/v2/tenant/{tenant}/jobs, GET /crm/v2/tenant/{tenant}/bookingsREAD: CRM, Memberships, Marketing, JPM
WRITE: None unless a new booking/job is created
9Messaging, notes, and ST Task automationText threads write ST job/customer notes; workflows create ST tasks and fetch metadata.Avoca ⇌ STPOST /jpm/v2/tenant/{tenant}/jobs/{id}/notes, POST /crm/v2/tenant/{tenant}/customers/{id}/notes, POST /taskmanagement/v2/tenant/{tenant}/tasks, GET /taskmanagement/v2/tenant/{tenant}/client-side-dataREAD: CRM, Task Management
WRITE: JPM (job notes), CRM (customer notes), Task Management
10Service areas, zones, and technician dataZones, business units, and technician rosters sync for service areas and on-call rotations.ST → AvocaGET /dispatch/v2/tenant/{tenant}/zones, GET /settings/v2/tenant/{tenant}/business-units, GET /settings/v2/tenant/{tenant}/techniciansREAD: Dispatch, Settings

ServiceTitan API Scopes & Data Objects

Essential READ scopes

ScopePurposeActivity Examples
CRM / READCaller identification, contact lookup, bookings./customers, /locations/{id}/contacts, /bookings/{id}
Dispatch / READCapacity, windows, shifts, zones./capacity, /arrival-windows, /technician-shifts, /zones
JPM / READJobs, job types, cancel/hold reasons./appointments, /jobs, /job-types
Memberships / READMemberships, recurring services./memberships, /recurring-service-events
Marketing / READCampaigns, ST audience exports./campaigns, /audience-lists
Telecom / READCall/recording ingestion./calls, /calls/{id}/recording
Settings / READBusiness units, technicians, tags, booking tags./business-units, /technicians, /tag-types
Task Mgmt / READMetadata for composing tasks./client-side-data
Accounting / READInvoices for revenue & cancellation guardrails./invoices

Essential WRITE scopes

ScopePurposeActivity Examples
JPM / WRITEJob creation, reschedule, cancel, notes, tags.POST /jobs, PATCH /appointments/{id}/reschedule
CRM / WRITECustomer/location upserts, notes.POST /customers, /locations, /customers/{id}/notes
Dispatch / WRITEAssign/unassign technicians./appointmentassignments/assignTechnicians
Bookings / WRITEProvider-based bookings.POST /crm/bookings
Telecom / WRITEReclassification & memos.PUT /telecom/calls/{id}
Task Mgmt / WRITECreate tasks.POST /taskmanagement/tasks
Settings / WRITEAdmin-created tag types.POST /settings/tag-types

ServiceTitan Best Practices

QuestionAnswerAdditional Context
Key rotation frequencyRotated when ServiceTitan issues new credentials or during quarterly reviews.Stored only in a managed secrets vault.
Hard-coded keys?No.Never in source control.
Credential storageManaged secrets platform (US East).Access via backend-only service accounts.
Purging keys on churnServiceTitan app removal or removing secrets from vault; credentials become invalid immediately.Part of formal offboarding.
Purging customer dataNot currently purged automatically.Can be purged on request.