Integrations

Connect ServiceTitan to Laddr

Two-way sync of contacts, jobs, and invoices. OAuth-based, no API keys to copy. Most shops are connected and syncing in 10 minutes.

Colin LawlessColin LawlessCo-founder, CTO7 min readUpdated Apr 24, 2026
On this page

What syncs

  • Customer + location records — synced both ways, with ServiceTitan as system of record by default.
  • Job records — created in ServiceTitan from Laddr-booked appointments; status changes flow back to Laddr.
  • Invoices and balances — read-only from ServiceTitan into Laddr (so Boost can suppress review requests on unpaid jobs).
  • Tag/campaign mapping — Laddr lead sources map to ServiceTitan campaigns one-to-one.

Connect

  1. Open Settings → Integrations → ServiceTitan.
  2. Click Connect. You'll be redirected to ServiceTitan's OAuth screen.
  3. Sign in with a ServiceTitan admin account. The popup must be allowed — check your browser's pop-up blocker if it doesn't open.
  4. Approve the requested scopes (read + write on customers, jobs, invoices).
  5. You'll land back in Laddr with a connected status. The first sync runs immediately.

Admin-only

ServiceTitan requires an admin to authorize the OAuth grant. If you don't have admin access, ask your owner — the connection is per-org, not per-user, so they only need to do it once.

Scope what's shared

By default, all customers and jobs sync. You can narrow this:

  • By business unit — sync only specific BUs (residential, commercial, plumbing, HVAC).
  • By tag — sync only customers with a specific tag (e.g. ServiceTitanReady).
  • By date — sync only jobs scheduled in the last N days, not your full historical archive.
json
{
  "businessUnits": ["BU_PLUMBING", "BU_HVAC"],
  "customerTagFilter": null,
  "jobLookback": "P30D"
}

Sync directions

Each entity has a default direction. You can override per-entity in Settings → Integrations → ServiceTitan → Sync rules.

  • Customers: ServiceTitan → Laddr (default). Reverse to push Laddr-captured leads in.
  • Jobs: Laddr → ServiceTitan when LARA books. ServiceTitan → Laddr for status updates.
  • Invoices: ServiceTitan → Laddr only. Read-only for compliance.
  • Notes: bidirectional. Watch for noise — most shops disable this.

Conflicts and reconciliation

When the same record exists on both sides with different fields, Laddr defaults to ServiceTitan. You'll see conflicts queued in /admin/integrations under "Pending review." Approve, reject, or merge per record.

Phone numbers

Phone formatting differs across systems. Laddr normalizes to E.164 (+17165550100). If you see duplicates, it's almost always because ServiceTitan stored a number as (716) 555-0100 in one record and 7165550100 in another. Run /admin/integrations → Dedupe to merge.

Disconnect

  1. Open Settings → Integrations → ServiceTitan.
  2. Click Disconnect.
  3. Pick whether to keep synced data (keeps everything frozen as-is) or wipe it (deletes Laddr-only copies).
  4. Confirm. The OAuth grant is revoked immediately.

Was this article helpful?

Keep going