All posts
Integrations · ServiceTitan

How to connect ServiceTitan to Peach AI.

Online booking, real ServiceTitan jobs, and ad-platform attribution — wired together in about 25 minutes.

April 22, 20268 min read

ServiceTitan is the operational source of truth for most large home services operators. If your booking form, voice intake, and ad attribution don't write directly into ServiceTitan, you're chasing leads in spreadsheets and burning ad spend on form fills that never become real jobs.

This guide walks you through connecting ServiceTitan to Peach AI end to end — API access, job-type mapping, slot configuration, and turning on offline conversion sync to Google Ads and Meta. Most operators are live in 5–10 business days; the hands-on configuration on your side takes about 25 minutes.

Before you start

Make sure you have access to all of the following inside ServiceTitan. If any of these is missing, request it from your ServiceTitan admin first — it will save you a back-and-forth later.

  • ServiceTitan account with the Marketing Pro and Integrations API add-ons enabled
  • Admin role (or a role with permissions to manage API applications and Job Types)
  • Tenant ID, Client ID, and Client Secret from ServiceTitan's Integrations settings
  • List of the Job Types you want bookable online (e.g. AC Repair, Furnace Tune-Up, Drain Clog)
  • Business Units, Campaigns, and Technician skill assignments configured for those Job Types

Step 1 · Map your bookable Job Types

Peach books jobs into ServiceTitan as real Job records — not generic leads. That means we need to know exactly which Job Types are bookable from the website, what duration they take, and which Business Unit they belong to.

  1. 1In ServiceTitan, go to Settings → Operations → Job Types.
  2. 2For each Job Type you want bookable online, confirm the Default Duration, Business Unit, and Skill requirements are accurate. These drive technician routing.
  3. 3Decide which Job Types should be available on which service pages of your site (HVAC repair on /ac-repair, drain clog on /drain-clearing, etc.).
  4. 4Export the list (Job Type name, Job Type ID, default duration, BU) and send it to your Peach onboarding contact.

Step 2 · Configure technician availability

The booking form shows live slot availability based on real ServiceTitan capacity, so the slot offered to a homeowner can never be over-booked. To make this work, your dispatch board needs to be the source of truth.

  • Confirm every active technician is in ServiceTitan with correct working hours and skills.
  • Mark non-working time (PTO, training, vehicle service) as a non-job event so capacity is accurate.
  • Set buffer times on Job Types where you want padding between calls (e.g. 30 minutes for an AC diagnostic in 100° heat).
  • Decide whether after-hours slots show in the booking form or roll into the next business day. Most operators show one or two evening windows to capture the after-hours boost.

Step 3 · Generate ServiceTitan API credentials

Peach connects via ServiceTitan's official Integrations API using OAuth 2.0 client credentials. You'll create one application for Peach and share three values with your onboarding contact.

  1. 1Go to Settings → Integrations → API Application Access.
  2. 2Click Add Application. Name it 'Peach AI'.
  3. 3Grant the required scopes: jpm:read/write, crm:read/write, dispatch:read, marketing:read, telecom:read.
  4. 4Copy the Tenant ID, Client ID, and Client Secret immediately — the secret is only shown once.
  5. 5Send these three values to your Peach onboarding contact through the secure share link they provide. Never email a Client Secret in plain text.

Step 4 · Connect tracking numbers and CallRail (optional)

If you're on the Standard plan or above, Dynamic Number Insertion (DNI) swaps the phone number on your site based on the visitor's traffic source so every inbound call is attributed to the exact campaign that produced it.

  • If you already use CallRail, give Peach view access to the account so we can ingest call recordings and attribution metadata.
  • If you don't, Peach provisions tracking numbers via Twilio and pushes the call data into ServiceTitan as the call happens — no CallRail required.
  • Either way, every booked job that started as a phone call is tagged with its originating ad source in ServiceTitan's Marketing tab.

Step 5 · Turn on Google Ads + Meta CAPI offline conversions

This is the step that actually moves your cost per booked job. Once Peach is bookings into ServiceTitan, we push every booked job back to Google Ads as an offline conversion and to Meta via the Conversion API. Your ad platforms stop optimizing for form fills and start optimizing for revenue.

  1. 1Grant Peach access to your Google Ads account (Standard or Admin level).
  2. 2Grant Peach access to your Meta Business Manager (Advertiser role on the relevant ad accounts).
  3. 3Confirm you want bookings, completed jobs, or both pushed back as conversion events. Most operators start with bookings, then add completed-job revenue once the account is stable.
  4. 4Peach configures the offline conversion uploads on a 60-second cadence and validates the first 24 hours of conversions with you before it goes live.

Step 6 · Drop the booking form on your site

The Peach booking form is a single embed snippet. It loads a popup that's tied to your CRM and respects your site's existing design tokens (colors, font, border radius).

<script src="https://app.usepeachai.com/peach-booking-widget.js" defer></script>

<!-- Use the .peach-booking-trigger class on any link or button -->
<a href="/book" class="peach-booking-trigger">Book a tech</a>

On most sites you'll want the trigger on every Service page CTA, the homepage hero, and the navbar. Peach's MutationObserver auto-attaches to anything with the class .peach-booking-trigger, so you don't need to wire each link individually.

Step 7 · Validate before you go live

Before flipping the integration to production, walk through this checklist. We do this together with every customer on the launch call.

  • Submit a test booking through the form. Confirm a real Job appears in ServiceTitan with the right Job Type, BU, technician routing, and customer record.
  • Send an inbound test call to a tracking number. Confirm the call shows up in ServiceTitan and the caller's traffic source is logged correctly.
  • Open Google Ads → Conversions and confirm the new 'Peach: Booked Job' conversion is recording.
  • In Meta Events Manager, confirm the 'Booked Job' server event is received with the right value.
  • Run an abandoned-form test: start a booking, abandon it, and verify the AI SMS recapture flow re-engages the lead.

What changes after go-live

Within 2 weeks of going live, most ServiceTitan operators see online booking conversion lift from 10–20% to 50–65%, a 30–50% drop in cost per booked job as the ad platforms re-learn against real revenue, and 30%+ of new bookings landing outside business hours that would have previously gone to voicemail.

FAQ

Will Peach overwrite anything in ServiceTitan?

No. Peach only creates new Jobs and writes Marketing/Source fields on those Jobs. It never modifies existing Jobs, Customers, or Estimates created by your team.

Can we keep our existing forms during a pilot?

Yes — most operators run Peach on a single service line for the first 30 days (e.g. AC repair only) to compare conversion and CPBJ side-by-side before rolling out site-wide.

What permissions does the API user need?

Peach needs read/write on Job Project Management, read/write on CRM, read on Dispatch and Marketing, and read on Telecom. We never request payroll, accounting, or pricebook write access.

Want to skip the setup?

We do the ServiceTitan integration, ad-platform conversion sync, and booking-form setup for you. Most operators are live in 5–10 business days.